{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./frontend/js/actions/actions-filter-toggle.js","webpack:///./frontend/js/actions/actions-form-age.js","webpack:///./frontend/js/actions/actions-form-dynamic.js","webpack:///./frontend/js/actions/actions-form-generic-validate.js","webpack:///./frontend/js/actions/actions-form-toggle.js","webpack:///./frontend/js/actions/actions-form-validate.js","webpack:///./frontend/js/actions/actions-header-button.js","webpack:///./frontend/js/actions/actions-header-search.js","webpack:///./frontend/js/actions/actions-hero-list.js","webpack:///./frontend/js/actions/actions-navigation.js","webpack:///./frontend/js/actions/actions-rollover-component.js","webpack:///./frontend/js/actions/actions.js","webpack:///./frontend/js/app.js","webpack:///./frontend/js/behaviors/gallery.js","webpack:///./frontend/js/behaviors/index.js","webpack:///./frontend/js/behaviors/mainMap.js","webpack:///./frontend/js/behaviors/userIsTabbing.js","webpack:///./frontend/js/bootstrap/carousel.js","webpack:///./frontend/js/bootstrap/collapse.js","webpack:///./frontend/js/bootstrap/modal.js","webpack:///./frontend/js/bootstrap/tab.js","webpack:///./frontend/js/bootstrap/util.js","webpack:///./frontend/js/functions/createBehavior.js","webpack:///./frontend/js/functions/manageBehaviors.js","webpack:///./frontend/js/polyfills/polyfills.js","webpack:///./node_modules/@area17/a17-helpers/dist/prod.js","webpack:///./node_modules/@area17/a17-helpers/index.js","webpack:///./node_modules/jquery-validation/dist/jquery.validate.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js"],"names":["actionsFilterToggle","$","click","toggleClass","toggle","actionsFormAge","$today","Date","$dobYearDifference","$dobMonthDifference","$dobTotalDifference","$dobDayValue","$dobMonthValue","$dobYearValue","$dobDayToday","getDate","$dobMonthToday","getMonth","$dobYearToday","getFullYear","$dobDayInput","$dobMonthInput","$dobYearInput","$dobRestrictedForm","$hideClass","change","val","dobDayAge","actionsForm","$applicationField","e","preventDefault","insertBefore","document","on","closest","remove","actionsFormGenericValidate","$genericForm","submit","find","prop","actionsFormToggle","formRules","hideClass","hiddenTrigger","hiddenElement","forEach","item","actionsFormValidate","$applicationForm","$applicationReset","validator","addMethod","value","element","optional","test","$validate","validate","rules","appPersonalEmail","required","email","appPersonalEmailConfirm","equalTo","appRefereeEmail","appResidenceUKAddress1","postcode","ignore","errorClass","validClass","highlight","removeClass","addClass","unhighlight","submitHandler","form","console","log","attr","reset","trigger","actionsHeaderButton","hover","actionsHeaderSearch","searchURL","resultsBin","resultsContainer","targetInput","keyup","key","searchText","length","handleSearch","target","hide","one","event","off","calledFrom","parentDiv","resultHTML","params","ajax","url","type","contentType","dataType","data","JSON","stringify","success","countResults","each","results","i","title","getSearchResultLinks","link","show","html","actionsHeroList","actionsNavigation","urlParam","URLSearchParams","window","location","search","urlNav","has","append","err","body","triggerMenu","querySelector","scrollUp","scrollDown","lastScroll","addEventListener","classList","scrollDebounce","scrollThreshold","setTimeout","currentScroll","pageYOffset","add","contains","actionsRolloverComponent","newText","index","className","match","join","text","deParent","deTarget","undefined","NCL","browserSpec","Error","manageBehaviors","Behaviors","actions","resized","gallery","createBehavior","updateImage","btn","currentTarget","src","getAttribute","fullSrc","videoUrl","image","setAttribute","caption","removeAttribute","innerHTML","fullImage","hasImageExt","galleryPoster","style","backgroundImage","display","videoImage","appendIframe","thumbs","activeClass","init","node","querySelectorAll","firstThumb","main","expand","close","modalClose","modalTest","getChild","modalIframeC","removeIframe","stopPropagation","addIframe","path","indexOf","galleryIframe","createElement","width","height","id","appendChild","getElementById","iframeEl","removeChild","destroy","removeEventListener","initMap","bounds","google","maps","LatLngBounds","parse","mapData","map","Map","container","zoom","setMarkers","fitBounds","addListenerOnce","getZoom","setZoom","prevWindow","icon","encodeURIComponent","scaledSize","Size","origin","Point","anchor","labelOrigin","gmarkers","mapPoint","latitude","lat","lng","longitude","latLng","LatLng","marker","Marker","position","push","extend","windowContent","address1","address2","city","county","direction","directions","infowindow","InfoWindow","pixelOffset","content","addListener","panTo","getPosition","open","isScriptAlreadyIncluded","scripts","getElementsByTagName","loadScript","callback","head","script","onreadystatechange","onload","loadMaps","userIsNotTabbing","userIsTabbing","nodeName","Carousel","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHEND","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","ITEM","Selector","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","config","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","_config","_getConfig","_element","_indicatorsElement","_addEventListeners","_slide","hidden","is","css","next","Util","supportsTransitionEnd","triggerTransitionEnd","cycle","clearInterval","setInterval","visibilityState","nextWhenVisible","bind","activeIndex","_getItemIndex","to","removeData","typeCheckConfig","_keydown","documentElement","clearTimeout","tagName","which","prev","makeArray","parent","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","nextIndicator","children","activeElementIndex","nextElement","_getItemByDirection","nextElementIndex","isCycling","Boolean","directionalClassName","orderClassName","hasClass","_triggerSlideEvent","isDefaultPrevented","_setActiveIndicatorElement","slidEvent","reflow","TRANSITION_END","emulateTransitionEnd","action","TypeError","selector","getSelectorFromElement","slideIndex","_jQueryInterface","call","_dataApiClickHandler","$carousel","Constructor","noConflict","Collapse","SHOW","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","DATA_TOGGLE","_isTransitioning","_triggerArray","tabToggles","elem","filter","_selector","_parent","_getParent","_addAriaAndCollapsedClass","actives","activesData","not","startEvent","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","toUpperCase","slice","scrollSize","getBoundingClientRect","$elem","isTransitioning","hasWidth","isElement","jquery","_getTargetFromElement","triggerArray","isOpen","$this","$trigger","$target","Modal","BACKDROP_TRANSITION_DURATION","ESCAPE_KEYCODE","backdrop","focus","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","DIALOG","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","NAVBAR_TOGGLER","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","parentNode","nodeType","Node","ELEMENT_NODE","scrollTop","_enforceFocus","shownEvent","transitionComplete","handleUpdate","_resetAdjustments","_resetScrollbar","animate","doAnimate","appendTo","callbackRemove","_removeBackdrop","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","parseFloat","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","clientWidth","Tab","DROPDOWN_MENU","DISABLED","DROPDOWN","NAV_LIST_GROUP","ACTIVE_UL","DROPDOWN_TOGGLE","DROPDOWN_ACTIVE_CHILD","previous","listElement","itemSelector","_activate","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","MAX_UID","toType","obj","toString","toLowerCase","getSpecialTransitionEndEvent","bindType","end","delegateType","handle","handleObj","handler","apply","arguments","transitionEndTest","QUnit","transitionEndEmulator","duration","called","setTransitionEndSupport","special","escapeId","escapeSelector","substr","replace","getUID","prefix","Math","random","charAt","$selector","offsetHeight","componentName","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","valueType","RegExp","Behavior","Element","options","assign","__subBehaviors","__isEnabled","__children","customMethodNames","methodName","freeze","regex","name","attributes","matches","exec","warn","lifecycle","__resizedBind","__resized","mediaQueryUpdated","media","__mediaQueryUpdatedBind","__mediaQueryUpdated","__toggleEnabled","enable","disable","sub","purgeProperties","childName","context","multi","getChildren","isEnabled","enabled","disabled","addSubBehavior","subBehavior","behaviorName","isValidMQ","isBreakpoint","def","args","customProperties","get","writable","defKeys","keys","create","loadedBehaviorsModule","dataAttr","loadedBehaviorNames","loadedBehaviors","activeBehaviors","loopBehaviors","cb","behaviorNodes","concat","behaviorNode","behaviorNames","dataset","split","destroyBehaviors","bName","bNode","nodeBehaviors","createBehaviors","instance","set","observeBehaviors","observer","MutationObserver","mutations","mutation","removedNodes","addedNodes","observe","childList","subtree","characterData","NodeList","Array","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","defineProperty","varArgs","nextSource","nextKey","configurable","queryStringHandler","toObject","qsObj","$0","$1","$2","$3","fromObject","queryString","count","getOwnPropertyNames","updateParameter","re","hash","separator","_typeof","Symbol","iterator","constructor","ajaxRequest","settings","request","XMLHttpRequest","requestUrl","ReferenceError","setRequestHeader","requestHeaders","header","status","onSuccess","responseText","onError","statusText","onerror","send","cookieHandler","days","expires","date","setTime","getTime","toGMTString","cookie","_delete","read","nameEQ","ca","c","substring","copyTextToClipboard","textToCopy","successMsg","navigator","clipboard","protocol","writeText","then","error","textArea","top","border","outline","boxShadow","background","textContent","selection","getSelection","range","createRange","selectNode","removeAllRanges","addRange","successful","execCommand","alert","debounce","func","wait","immediate","timeout","later","callNow","escapeString","str","div","createTextNode","argumentsLength","focusDisplayHandler","touch","mouse","focusMethod","lastFocusMethod","_onKeyDown","_onMouseDown","_onTouchStart","_onFocus","_onBlur","_onWindowBlur","setFocusOnTarget","focusTrap","_focus","_trap","_untrap","triggerCustomEvent","el","initEvent","eventName","dispatchEvent","commonjsGlobal","global","self","createCommonjsModule","module","exports","fontfaceonload","root","factory","TEST_STRING","SANS_SERIF_FONTS","SERIF_FONTS","defaultOptions","tolerance","delay","glyphs","weight","FontFaceOnloadInstance","fontFamily","appended","serif","sansSerif","getMeasurements","offsetWidth","load","startTime","that","dimensions","ref","reference","getStyle","family","sansSerifHtml","serifHtml","firstChild","nextSibling","hasNewDimensions","dims","abs","isTimeout","checkDimensions","requestAnimationFrame","cleanFamilyName","cleanWeight","weightLookup","normal","bold","checkFontFaces","_t","fonts","font","j","FontFaceOnload","fontLoadObserver","counter","total","variants","cookieName","loaded","array","scope","getCurrentMediaQuery","opera","getComputedStyle","getPropertyValue","getIndex","nodeList","nodes","childNodes","nodesLength","n","getMetaContentByName","getOffset","scrollLeft","bottom","getUrlParameterByName","bp","pattern","bps","A17","breakpoints","isArray","currentBp","currentBpIndex","hasModifier","modifier","bpName","bpIndex","jsonpRequest","keyCodes","tab","enter","esc","space","up","down","lazyLoad","opts","pageUpdatedEventName","elements","rootMargin","threshold","maxFrameCount","frameLoop","frameCount","els","elsLength","checkType","_htmlCollectionToArray","collection","a","_elInViewport","innerHeight","_removeDataAttrs","_loaded","_updateEl","srcset","dlazyload","picturefill","_intersection","entries","disconnect","entry","intersectionRatio","unobserve","_setSrcs","lazyloaded","thisEl","splice","IntersectionObserver","_init","cancelAnimationFrame","_lazyLoad","idCounter","searchDomAndInitBehaviors","all","currentElement","_A17BehaviorsActive","behaviors","splittedBehaviors","k","ThisBehavior","behavior","pageUpdated","activeBehaviorObj","thisBehaviorObj","messages","messageVisible","messageTimer","loadMessage","loadMessageType","createMessage","message","span","hideMessage","showMessage","time","newMessage","loadMessageData","objectifyForm","field","len","selected","checked","oritentationChangeFix","userAgent","viewportmeta","resizeTimer","mediaQuery","newMediaQuery","currentMediaQuery","scrollToY","offset","easing","start","now","isDocument","easingEquations","linear","t","easeIn","easeOut","easeInOut","useRequestAnimationFrame","scrollInterval","onComplete","min","b","cancelInterval","scroll","currentTime","easedT","doScroll","sendEventToSegmentio","analyticsReady","tempStore","pushAnalytics","analytics","track","properties","page","category","identify","userID","pushOrStore","pushStored","userInfo","identifyProps","pair","ready","debug","a17helpers","keycodes","require","define","onsubmit","submitButton","cancelSubmit","result","formSubmitted","currentForm","pendingRequest","focusInvalid","valid","errorList","command","argument","isContentEditable","staticRules","existingRules","param","filtered","normalizeRule","method","normalizeRules","classRules","attributeRules","dataRules","remote","trim","expr","pseudos","blank","filled","unchecked","defaults","format","source","unshift","groups","pendingClass","errorElement","focusCleanup","errorContainer","errorLabelContainer","ignoreTitle","onfocusin","lastActive","hideThese","errorsFor","onfocusout","checkable","submitted","onkeyup","excludedKeys","elementValue","inArray","keyCode","invalid","onclick","findByName","setDefaults","dateISO","number","digits","maxlength","minlength","rangelength","max","step","autoCreateRanges","labelContainer","errorContext","containers","valueCache","pending","delegate","eventType","invalidHandler","checkForm","errorMap","triggerHandler","showErrors","prepareForm","currentElements","check","cleanElement","clean","checkElement","validationTargetFor","v","rs","group","prepareElement","testgroup","numberOfInvalids","toHide","errors","successList","grep","defaultShowErrors","resetForm","hideErrors","removeAttr","resetElements","objectLength","addWrapper","size","findLastActive","rulesCache","resetInternals","toShow","$element","idx","validity","badInput","lastIndexOf","rulesCount","dependencyMismatch","rule","normalizer","parameters","methods","formatAndAdd","customDataMessage","customMessage","m","String","findDefined","defaultMessage","theregex","toToggle","wrapper","showLabel","validElements","invalidElements","place","errorID","elementID","idOrName","describedBy","errorPlacement","insertAfter","parents","escapeCssMeta","describer","string","getLength","depend","dependTypes","startRequest","stopRequest","previousValue","old","classRuleSettings","creditcard","addClassRules","classes","normalizeAttributeRule","Number","isNaN","depends","keepRule","parameter","parts","transformed","errorMessage","supportedTypes","notSupported","decimalPlaces","num","toInt","round","pow","decimals","optionDataString","originalMessage","mode","port","response","pendingRequests","ajaxPrefilter","_","xhr","abort","ajaxSettings","w","noGlobal","arr","getProto","getPrototypeOf","flat","class2type","hasOwn","fnToString","ObjectFunctionString","support","isFunction","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","code","doc","version","jQuery","toArray","pushStack","elems","ret","merge","prevObject","first","eq","last","even","_elem","odd","sort","copy","copyIsArray","clone","deep","isPlainObject","expando","isReady","msg","noop","proto","Ctor","isEmptyObject","globalEval","isArrayLike","second","invert","callbackInverse","callbackExpect","arg","guid","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","pop","pushNative","list","booleans","whitespace","identifier","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","dir","seed","nid","newSelector","newContext","ownerDocument","getElementsByClassName","qsa","testContext","toSelector","qsaError","cache","cacheLength","shift","markFunction","assert","addHandle","attrs","attrHandle","siblingCheck","cur","diff","sourceIndex","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","matchIndexes","namespace","namespaceURI","hasCompare","subWindow","defaultView","attachEvent","createComment","getById","getElementsByName","attrId","getAttributeNode","tag","tmp","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","operator","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","useCache","lastChild","uniqueID","pseudo","setFilters","matched","matcher","unmatched","lang","elemLang","hasFocus","href","tabIndex","selectedIndex","_matchIndexes","radio","checkbox","file","password","filters","parseOnly","tokens","soFar","preFilters","cached","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","token","compiled","_name","defaultValue","unique","isXMLDoc","until","truncate","siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","contents","targets","l","prevAll","addBack","sibling","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","reverse","rnothtmlwhite","createOptions","object","flag","Callbacks","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","empty","lock","fireWith","Identity","Thrower","ex","adoptValue","resolve","reject","noValue","promise","fail","Deferred","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","primary","updateFunc","rerrorNames","stack","readyException","readyList","readyWait","completed","readyState","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","camelCase","acceptData","owner","Data","uid","hasData","dataPriv","dataUser","rbrace","rmultiDash","getData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","values","rcheckableType","rtagName","rscriptType","fragment","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","tbody","tfoot","colgroup","th","optgroup","getAll","setGlobalEval","refElements","buildFragment","ignored","attached","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","types","origFn","handleObjIn","eventHandle","events","handlers","namespaces","origType","elemData","triggered","dispatch","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","enumerable","originalEvent","noBubble","leverageNative","beforeunload","returnValue","notAsync","saved","isTrigger","stopImmediatePropagation","props","defaultPrevented","timeStamp","isSimulated","altKey","changedTouches","ctrlKey","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","udataOld","udataCur","fixInput","domManip","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","prepend","before","after","replaceWith","replaceChild","prependTo","replaceAll","original","insert","rnumnonpx","getStyles","opener","swap","rboxStyle","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelBoxStyles","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","parseInt","borderTopWidth","borderBottomWidth","curCSS","computed","minWidth","maxWidth","addGetHookIf","conditionFn","hookFn","cssPrefixes","emptyStyle","vendorProps","vendorPropName","capName","finalPropName","final","cssProps","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","boxModelAdjustment","box","isBorderBox","styles","computedVal","extra","ceil","getWidthOrHeight","boxSizingNeeded","valueIsBorderBox","offsetProp","getClientRects","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","scrollboxSizeBuggy","suffix","expanded","Tween","propHooks","run","percent","eased","pos","fx","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","defaultPrefilter","oldfire","propTween","restoreDisplay","isBox","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","stopped","prefilters","tweens","originalProperties","originalOptions","gotoEnd","timer","tweener","prefilter","speed","opt","speeds","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","removeProp","propFix","tabindex","stripAndCollapse","getClass","classesToArray","curValue","clazz","finalValue","stateVal","isValidValue","classNames","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","s","valueOrFunction","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rlocalProtocol","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","isSuccess","conv2","current","conv","responseFields","dataFilter","lastModified","etag","isLocal","processData","async","accepts","json","ajaxSetup","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeadersNames","strAbort","getAllResponseHeaders","overrideMimeType","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","nativeStatusText","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhrSuccessStatus","xhrSupported","cors","errorCallback","username","xhrFields","onabort","ontimeout","responseType","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","using","win","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","undelegate","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","g","Function","webpackPolyfill","deprecate","paths"],"mappings":"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","file":"app.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 = \"./frontend/js/app.js\");\n","import $ from 'jquery'\n\nfunction actionsFilterToggle() {\n\t$('.m-filter__select').click(function () {\n $(this).toggleClass('active');\n });\n\n $('.icon--search-sidebar').click(function () {\n\t\t$('.search--sidebar-hidden').toggle();\n });\n\n $('.icon--caret--down').click(function () {\n $(\".m-hero__links\").toggleClass(\"active\");\n });\n}\n\n\nexport default actionsFilterToggle\n","import $ from 'jquery'\n\nfunction actionsFormAge() {\n\n\tlet $today = new Date()\n\n\tlet $dobYearDifference = 0\n\tlet $dobMonthDifference = 0\n\tlet $dobTotalDifference = 0\n\n\tlet $dobDayValue = null\n\tlet $dobMonthValue = null\n\tlet $dobYearValue = null\n\n\tlet $dobDayToday = $today.getDate()\n\tlet $dobMonthToday = $today.getMonth()\n\tlet $dobYearToday = $today.getFullYear()\n\n\tlet $dobDayInput = $('#appPersonalDobDay')\n\tlet $dobMonthInput = $('#appPersonalDobMonth')\n\tlet $dobYearInput = $('#appPersonalDobYear')\n\tlet $dobRestrictedForm = $('.application-age')\n\n\tlet $hideClass = 'js-hide'\n\n\t$dobDayInput.change(function () {\n\t\t$dobDayValue = $(this).val()\n\t\tdobDayAge()\n\t})\n\n\t$dobMonthInput.change(function () {\n\t\t$dobMonthValue = $(this).val()\n\t\tdobDayAge()\n\t})\n\n\t$dobYearInput.change(function () {\n\t\t$dobYearValue = $(this).val()\n\t\tdobDayAge()\n\t})\n\n\tfunction dobDayAge() {\n\n\t\t$dobYearDifference = $dobYearToday - $dobYearValue\n\t\t$dobMonthDifference = $dobMonthToday - $dobDayValue\n\n\t\tif ($dobMonthDifference < 0 || ($dobMonthDifference === 0 && $dobDayToday < $dobDayValue)) {\n\t\t\t$dobTotalDifference = $dobYearDifference - 1;\n\t\t}\n\n\t\tif ($dobTotalDifference >= 25) {\n\t\t\t$dobRestrictedForm.toggleClass($hideClass)\n\t\t} else {\n\t\t\t$dobRestrictedForm.toggleClass($hideClass)\n\t\t}\n\n\t}\n}\n\nexport default actionsFormAge\n","import $ from 'jquery'\n\nfunction actionsForm() {\n\n\tlet $applicationField = `\n\t\t
\n\t\t\t
\n\t\t\t\tRemove Me\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\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\t
\n\t\t\t\t\t
\n\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\n\n\t// Click To Add New Fields\n\t$('.app-qualifications-add').click(function (e) {\n\t\te.preventDefault()\n\t\t$($applicationField).insertBefore(this)\n\t});\n\n\t// Click To Remove Fields\n\t$(document).on('click', '.app-qualifications-remove', function (e) {\n\t\te.preventDefault()\n\t\t$(this).closest('.app-form-field').remove()\n\t})\n\n}\n\nexport default actionsForm\n","import $ from 'jquery'\nimport validate from 'jquery-validation'\n\nfunction actionsFormGenericValidate() {\n\n let $genericForm = $('.umbraco-forms-form > form');\n \n $genericForm.submit(function (e) {\n\t\t//alert('submitting');\n\t\t$(this).find('input[type=submit]').prop('disabled', true);\n\t});\n\t\n}\n\nexport default actionsFormGenericValidate\n","import $ from 'jquery'\n\nfunction actionsFormToggle() {\n\n\t// Application Form Show/Hide Sections\n\tlet formRules = [\n\t\t{\n\t\t\t// Application Qualification Subjects Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appQualificationsPredict]',\n\t\t\thiddenElement: '.application-qualifications-subjects'\n\t\t},\n\t\t{\n\t\t\t// Application Qualification Actual Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appQualificationsActual]',\n\t\t\thiddenElement: '.application-qualifications-actual'\n\t\t},\n\t\t{\n\t\t\t// Application Employment Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appEmploymentCurrent]',\n\t\t\thiddenElement: '.application-employment'\n\t\t},\n\t\t{\n\t\t\t// Application Address EU Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appResidenceUK]',\n\t\t\thiddenElement: '.application-eu'\n\t\t},\n\t\t{\n\t\t\t// Application UK Address Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appResidenceUKAddress]',\n\t\t\thiddenElement: '.application-uk-address'\n\t\t},\n\t\t{\n\t\t\t// Application UK Study Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appImmigrationUKstudied]',\n\t\t\thiddenElement: '.application-uk-studied'\n\t\t},\n\t\t{\n\t\t\t// Application UK Study Question\n\t\t\thideClass: 'js-hide',\n\t\t\thiddenTrigger: '[name=appAccommodationArranged]',\n\t\t\thiddenElement: '.application-accommodation'\n\t\t},\n\t]\n\n\t// Loop Through Form and Show/Hide\n\tformRules.forEach(function (item) {\n\t\t$(item.hiddenTrigger).change(function () {\n\t\t\t$(item.hiddenElement).toggleClass(item.hideClass)\n\t\t})\n\t})\n\n}\n\nexport default actionsFormToggle\n","import $ from 'jquery'\nimport validate from 'jquery-validation'\n\nfunction actionsFormValidate() {\n\n let $applicationForm = $('#applicationForm')\n let $applicationReset = $('.application-reset')\n\n // Custom Validation For UK Postcodes\n $.validator.addMethod('postcode', function (value, element) {\n return this.optional(element) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\\s?(0AA))$/i.test(value)\n }, 'Please specify a valid UK postcode')\n\n // Application Form Validation\n let $validate = $applicationForm.validate({\n rules: {\n appPersonalEmail: {\n required: true,\n email: true,\n },\n appPersonalEmailConfirm: {\n email: true,\n required: true,\n equalTo: '#appPersonalEmail'\n },\n appRefereeEmail: {\n email: true,\n required: true,\n },\n appResidenceUKAddress1: {\n required: true,\n postcode: true\n },\n },\n ignore: ':hidden',\n errorClass: 'input-validation-error',\n validClass: 'input-validation-valid',\n highlight: function (element, errorClass, validClass) {\n $(element).removeClass(errorClass).removeClass(validClass).addClass(errorClass)\n },\n unhighlight: function (element, errorClass, validClass) {\n $(element).removeClass(errorClass).removeClass(validClass).addClass(validClass)\n },\n\n /* Doesn't seem to bind properly */\n submitHandler: function (form) {\n console.log('disabling button');\n form.addClass('a-btn--disabled');\n form.find(\"input[type=submit]\").attr(\"disabled\", \"disabled\");\n form.submit();\n }\n })\n\n\t/*\n\t$applicationForm.submit(function (e) {\n\t\talert('submitting');\n\t\t$(this).find('input[type=submit]').prop('disabled', true);\n\t});\n\t*/\n\n $applicationReset.click(function (e) {\n e.preventDefault()\n $validate.reset()\n $applicationForm.trigger('reset')\n $('.input-validation-error').remove()\n $('.form-control').removeClass('input-validation-valid').removeClass('input-validation-error')\n })\n\n}\n\nexport default actionsFormValidate\n","import $ from 'jquery'\n\nfunction actionsHeaderButton() { \n\t$('.a-btn--apply').hover(function () {\n $('.a-btn--apply__modal').toggleClass('active');\n });\n}\n\n\nexport default actionsHeaderButton\n","import $ from 'jquery'\n\nfunction actionsHeaderSearch() {\n\n console.log('site search helper');\n\n var searchURL = '/umbraco/api/sitesearch/search';\n var resultsBin = $('#search-results-list');\n var resultsContainer = $('#search-result-container');\n var targetInput = $('#nav-search-bar');\n\n //making sure that when the user returns to the page the input field has no value \n targetInput.val('');\n\n targetInput.keyup(function (e) {\n\n // Not escape key\n if (e.key != \"Escape\") {\n var searchText = $(this).val();\n\n if (searchText.length >= 2) {\n //console.log('Min length search text: ' + searchText);\n handleSearch(e.target);\n //$('#search-result-container').show();\n }\n else if (searchText.length == 0) {\n resultsContainer.hide();\n }\n }\n\n });\n\n // When focusing on the search box\n targetInput.one('focus', function(){\n\n // Close when click outside\n $(document).on('click', function (event) {\n // If the target is not the container or a child of the container, then process\n // the click event for outside of the container.\n if ($(event.target).closest(\"#search-result-container\").length === 0) {\n resultsContainer.hide();\n console.log('clicked outside element');\n }\n });\n\n // Close when press escape\n $(document).on('keydown', function (event) {\n if (event.key == \"Escape\") {\n resultsContainer.hide();\n console.log('Esc key pressed.');\n }\n });\n\n });\n\n\n //disables the enter key so the user won't be sent to the search page\n targetInput.off('keydown').off('blur');\n\n\n function handleSearch(calledFrom) {\n //build up a querystring\n var parentDiv = $(calledFrom).closest('.click-through-search');\n var resultHTML = \"\";\n var searchText = $(parentDiv).find('input[type=\"text\"]:visible').val();\n var params = { searchText: searchText };\n\n //get any subject areas that match this text search and include them in the filters\n $.ajax({\n url: searchURL,\n type: 'POST',\n contentType: \"application/json; charset=utf-8\",\n dataType: \"json\",\n data: JSON.stringify(params),\n success: function (data) {\n\n if (data !== null) {\n\n if (data.countResults != 0) {\n console.log('RESULTS COUNT: ' + data.countResults);\n\n $.each(data.results, function (i, item) {\n console.log('Result Title: ' + item.title);\n resultHTML += getSearchResultLinks(item.link, item.title);\n });\n resultsContainer.show();\n }\n else {\n console.log('NO RESULTS');\n resultsContainer.hide();\n }\n\n //add links to the container \n resultsBin.html(resultHTML);\n }\n\n }\n });\n }\n\n function getSearchResultLinks(link, title) {\n\n return \"
\"\n + title\n + ''\n + \"
\";\n\n }\n\n}\n\nexport default actionsHeaderSearch","import $ from 'jquery'\n\nfunction actionsHeroList() {\n\t$('.m-hero__list > li').addClass('m-hero__list-child');\n\t$('.m-hero__list-child').hover(function () {\n\t\t$('.m-hero__list-child').removeClass('m-hero__title');\n\t\t$(this).addClass('m-hero__title');\n });\n}\n\nexport default actionsHeroList\n","import $ from 'jquery'\n\nfunction actionsNavigation() {\n\n\t//console.log('this is the actionsNavigation')\n\n try {\n let urlParam = new URLSearchParams(window.location.search)\n\t let urlNav = '
M1M2M3M4M5M6M7M8Search CareersSearch Everything ElseSearch Results No ResultsCourse LeafletEvents IndexFacilities LandingNews Index
'\n\n if(urlParam.has('nav')) {\n $('body').append(urlNav);\n }\n\n $('.icon-onclick').click(function () {\n $('.-dropdown').toggle();\n });\n } catch (err) {\n console.log(err)\n }\n}\n\nconst body = document.body;\nconst triggerMenu = document.querySelector(\".g-header\");\nconst scrollUp = \"scroll-up\";\nconst scrollDown = \"scroll-down\";\nlet lastScroll = 0;\n\ntriggerMenu.addEventListener(\"click\", () => {\n body.classList.toggle(\"menu-open\");\n});\n\nvar scrollDebounce = -1,\n scrollThreshold = 50;\nwindow.addEventListener(\"scroll\", () => {\n\n if(scrollDebounce == -1){\n scrollDebounce = setTimeout(()=> {\n const currentScroll = window.pageYOffset;\n if (currentScroll < 0) {\n body.classList.remove(scrollDown);\n body.classList.add(scrollUp);\n scrollDebounce = -1;\n return;\n }\n \n if (currentScroll > lastScroll + scrollThreshold && !body.classList.contains(scrollDown)) {\n // down\n body.classList.remove(scrollUp);\n body.classList.add(scrollDown);\n } else if (currentScroll < lastScroll - scrollThreshold && body.classList.contains(scrollDown)) {\n // up\n body.classList.remove(scrollDown);\n body.classList.add(scrollUp);\n }\n lastScroll = currentScroll;\n scrollDebounce = -1;\n }, 300);\n }\n});\nexport default actionsNavigation\n","import $ from 'jquery'\n\nfunction actionsRolloverComponent() {\n\t$('.js-toggle-bg li').hover(function () {\n\n var value = $(this).attr('data-src');\n var newText = $(this).attr('data-newtext');\n\tconsole.log(value);\n\n $(this).closest('.js-toggle-bg').find('.m-hero__image').removeClass (function (index, className) {\n return (className.match (/(^|\\s)m-hero__image--\\S+/g) || []).join(' ');\n });\n\n\n $(this).closest('.js-toggle-bg').find('.m-hero__image').addClass(value);\n\t\n\t$(this).closest('.js-toggle-bg').find('.m-hero__image h2').text(newText);\n });\n \n $('.js-toggle-bg-stats li').hover(function () {\n\t \n\t var deParent = $(this).closest('.js-toggle-bg-stats');\n\t var deTarget = $(this).attr('data-targetId');\n\t \n\t $(deParent).find('[data-target-id]').attr('style', 'display:none!important;');\n\t \n\t if(deTarget !== undefined){\n\t\t $(deParent).find('[data-target-id=\"' + deTarget + '\"]').attr('style', '');\n\t } else {\n\t\t $(deParent).find('[data-target-id=\"default\"]').attr('style', ''); \n\t }\n\t\n });\n}\n\nexport default actionsRolloverComponent\n","import actionsFormAge from './actions-form-age'\nimport actionsFormToggle from './actions-form-toggle'\nimport actionsFormDynamic from './actions-form-dynamic'\nimport actionsFormValidate from './actions-form-validate'\nimport actionsFormGenericValidate from './actions-form-generic-validate'\nimport actionsNavigation from './actions-navigation'\nimport actionsFilterToggle from './actions-filter-toggle'\nimport actionsHeroList from './actions-hero-list'\nimport actionsHeaderButton from './actions-header-button'\nimport actionsHeaderSearch from './actions-header-search'\nimport actionsRolloverComponent from './actions-rollover-component'\n\nexport {\n\tactionsFormAge,\n\tactionsFormToggle,\n\tactionsFormDynamic,\n actionsFormValidate,\n actionsFormGenericValidate,\n\tactionsNavigation,\n\tactionsFilterToggle,\n\tactionsHeroList,\n\tactionsHeaderButton,\n\tactionsHeaderSearch,\n\tactionsRolloverComponent\n}\n","import './polyfills/polyfills.js';\nimport './bootstrap/util.js';\nimport './bootstrap/collapse';\nimport './bootstrap/carousel';\nimport './bootstrap/modal';\nimport './bootstrap/tab';\n\nimport * as actions from './actions/actions';\n\nimport {\n\tresized\n} from '@area17/a17-helpers';\nimport * as Behaviors from './behaviors';\nimport {\n\tmanageBehaviors\n} from './functions/manageBehaviors';\n\n// HTML4 browser?\nif (!NCL.browserSpec || NCL.browserSpec === 'html4') {\n\t// lets kill further JS execution of NCL js here\n\tthrow new Error('HTML4');\n}\n\ndocument.addEventListener('DOMContentLoaded', function () {\n\n\t// go go go\n\tmanageBehaviors(Behaviors);\n\n\t// Form Stuff\n\tactions.actionsFormAge();\n\tactions.actionsFormToggle();\n\tactions.actionsFormDynamic();\n\tactions.actionsFormValidate();\n\tactions.actionsNavigation();\n\tactions.actionsFilterToggle();\n\tactions.actionsHeroList();\n\tactions.actionsHeaderButton();\n\tactions.actionsHeaderSearch();\n actions.actionsRolloverComponent();\n\n // Disable on form click\n $('.disable-on-click').click(function (e) {\n console.log('clicked submit');\n $(this).prop('disabled', true);\n $(this).addClass('a-btn--disabled');\n });\n\n\t// on resize, check\n\tresized();\n\n});\n\n","import createBehavior from '../functions/createBehavior';\n\nconst gallery = createBehavior(\n 'gallery',\n {\n updateImage(e) {\n let btn = e.currentTarget;\n\n if (btn === undefined) {\n btn = e;\n }\n\n //preview image src\n let src = btn.getAttribute('data-img-src');\n //large image src\n let fullSrc = btn.getAttribute('data-img-srcFull');\n this.videoUrl = btn.getAttribute('data-video-url');\n let text = btn.getAttribute('data-text');\n\n // On poster button click (this.galleryPoster) \n // iframe (galleryIframe) will have set attribute videoUrl + '?autoplay=1'\n // Hide poster button\n // If there is a video (if videoUrl is filled in) then hide this.fullImg \n // else if there is nothing filled in for video attribute then hide iframe and poster button\n\n this.image.setAttribute('data-video-url', this.videoUrl);\n this.image.setAttribute('src', src);\n this.image.setAttribute('alt', text);\n if(text.length == 0){\n this.caption.setAttribute('style', 'display:none;');\n }else{\n this.caption.removeAttribute('style');\n\n this.caption.innerHTML = text;\n }\n // this.fullImage.setAttribute('src', fullSrc);\n this.fullImage.setAttribute('alt', text);\n\n\n //check if fullSRC has a value (full image)\n if (typeof fullSrc !== \"undefined\" && fullSrc.length > 0) {\n //check the path of \"src\" contains an image extension jpg/jpeg/png/gif\n if (this.hasImageExt(fullSrc)) {\n this.fullImage.setAttribute('src', fullSrc);\n this.galleryPoster.style.backgroundImage = 'url(' + fullSrc + ')';\n }\n } else if (typeof src !== \"undefined\" && src.length > 0) {\n //if fullSRC is empty, use preview media instead (src)\n //check the path of \"src\" contains an image extension jpg/jpeg/png/gif\n if (this.hasImageExt(src)) {\n this.fullImage.setAttribute('src', src);\n this.galleryPoster.style.backgroundImage = 'url(' + src + ')';\n }\n }\n\n //if the button selected as a VIDEO value, then show controls (poster button)\n if ((typeof this.videoUrl !== \"undefined\" && this.videoUrl.length > 0)) {\n //change iframe here\n this.fullImage.style.display = 'none';\n this.galleryPoster.style.display = 'block';\n this.videoImage.style.display = 'block';\n this.appendIframe = true;\n }\n else {\n //if no VIDEO value, then hide the poster image and show static image\n this.fullImage.style.display = 'block';\n this.galleryPoster.style.display = 'none';\n this.videoImage.style.display = 'none';\n }\n\n this.thumbs.forEach(item => {\n item.classList.remove(this.activeClass);\n });\n\n btn.classList.add(this.activeClass);\n },\n init() {\n this.activeClass = \"active\";\n this.thumbs = this.node.querySelectorAll('.m-gallery__btn');\n this.firstThumb = this.thumbs[0];\n this.main = this.node.querySelector('.m-gallery__image');\n this.caption = this.main.querySelector('.m-gallery__caption');\n this.expand = this.main.querySelector('.a-btn--full');\n this.close = this.main.querySelector('.modal-gallery--close');\n this.modalClose = this.main.querySelector('.m-modal--gallery');\n this.modalTest = this.main.querySelector('.modal-test');\n // this.modalBackground = this.main.querySelector('.m-modal--background');\n //preview media image\n this.image = this.getChild('image');\n //full modal image element\n this.fullImage = this.getChild('fullImage');\n this.videoImage = this.main.querySelector('.gallery-video--play');\n this.appendIframe = false;\n this.videoUrl = \"\";\n\n this.fullImage.style.display = 'block';\n\n\n //Iframe for video\n //this.galleryIframe = this.getChild('iframe');\n //iframe container\n this.modalIframeC = this.main.querySelector('.m-modal .iframe-container');\n //Button to trigger video iframe\n this.galleryPoster = this.getChild('poster');\n\n this.updateImage(this.firstThumb);\n\n this.thumbs.forEach(item => {\n item.addEventListener('click', event => {\n this.removeIframe();\n this.updateImage(event);\n event.stopPropagation();\n });\n }); \n\n this.expand.addEventListener('click', event => {\n // this.modalBackground.style.display = 'block';\n this.modalTest.classList.add(\"show\");\n this.modalTest.style.display = 'block';\n if (typeof this.videoUrl !== \"undefined\" && this.videoUrl.length > 0) {\n //this.galleryPoster.style.display = 'block';\n this.addIframe(this.videoUrl + '?autoplay=1');\n //this.appendIframe = true;\n } else if (typeof this.videoUrl === \"undefined\" && this.videoUrl.length < 1) {\n this.galleryPoster.style.display = 'none';\n this.appendIframe = false;\n }\n });\n \n this.close.addEventListener('click', event => {\n // this.modalBackground.style.display = 'none';\n this.modalTest.classList.remove(\"show\");\n this.modalTest.style.display = 'none';\n this.removeIframe();\n });\n\n this.galleryPoster.addEventListener('click', event => {\n if(this.appendIframe && this.videoUrl !== \"\"){\n this.addIframe(this.videoUrl + '?autoplay=1');\n }\n });\n\n },\n hasImageExt(path) {\n return path.indexOf('.gif') > -1 || path.indexOf('.jpg') > -1 || path.indexOf('.png') > -1 || path.indexOf('.jpeg') > -1\n },\n addIframe(videoUrl){\n //create new IFRAME element\n var galleryIframe = document.createElement('iframe');\n\n //add appropriate attributes (including autoplay query string)\n if (videoUrl == \"\") {\n videoUrl = btn.getAttribute('data-video-url');\n }\n\n galleryIframe.setAttribute('src', videoUrl);\n galleryIframe.setAttribute('allow', 'autoplay; encrypted-media; fullscreen');\n galleryIframe.setAttribute('scrolling', 'no');\n galleryIframe.setAttribute('frameborder', '0');\n galleryIframe.style.width = \"100%\";\n galleryIframe.style.height = \"100%\";\n galleryIframe.id = \"modal-gallery-iframe\";\n //append this item inside .m-modal .iframe-container\n \n if(this.modalIframeC.querySelector('iframe') == null){\n this.modalIframeC.appendChild(galleryIframe);\n }\n //this.galleryIframe.setAttribute('src', videoUrl + '?autoplay=1');\n\n\n //hide poster image\n this.galleryPoster.style.display = 'none';\n },\n removeIframe() {\n if (document.getElementById('modal-gallery-iframe') !== null) {\n var iframeEl = document.getElementById('modal-gallery-iframe');\n if(iframeEl !== null){\n this.modalIframeC.removeChild(iframeEl);\n }\n }\n this.appendIframe = false;\n },\n destroy() {\n this.removeIframe();\n this.thumbs.forEach(item => {\n item.classList.remove(this.activeClass);\n item.removeEventListener('click', event => {\n this.updateImage(event);\n })\n })\n },\n }\n);\n\nexport default gallery;\n","export { default as gallery } from './gallery';\nexport { default as mainMap } from './mainMap';\nexport { default as userIsTabbing } from './userIsTabbing';\n","import createBehavior from '../functions/createBehavior';\n\nconst gallery = createBehavior(\n 'gallery',\n {\n initMap(e) {\n let bounds = new google.maps.LatLngBounds();\n const data = JSON.parse(this.mapData);\n const map = new google.maps.Map(this.container, {\n zoom: 10,\n });\n if (data) {\n this.setMarkers(map, data, bounds);\n map.fitBounds(bounds);\n }\n google.maps.event.addListenerOnce(map, 'bounds_changed', function(event) {\n if (this.getZoom() > 15) {\n this.setZoom(15);\n }\n });\n },\n setMarkers(map, data, bounds) {\n let prevWindow = false;\n\n let icon = {\n url: 'data:image/svg+xml;charset=utf-8,' +\n encodeURIComponent(' '),\n scaledSize: new google.maps.Size(58, 81),\n origin: new google.maps.Point(0, 0),\n anchor: new google.maps.Point(29, 81),\n labelOrigin: new google.maps.Point(0, 0),\n };\n\n let gmarkers = [];\n for (let i = 0; i < data.length; i++) {\n let mapPoint = data[i];\n\n if(mapPoint.latitude !== '' && mapPoint.latitude !== ''){\n let lat = mapPoint.latitude;\n let lng = mapPoint.longitude;\n let latLng = new google.maps.LatLng(lat, lng);\n let marker = new google.maps.Marker({map: map, position: latLng, icon: icon});\n gmarkers.push(marker);\n\n bounds.extend(marker.position);\n\n (function (marker, mapPoint) {\n let windowContent = `
\n ${mapPoint.title !== '' ? `

${mapPoint.title}

` : ''}\n \n ${mapPoint.address1 !== '' ? `${mapPoint.address1}
` : ''}\n ${mapPoint.address2 !== '' ? `${mapPoint.address2}
` : ''}\n ${mapPoint.city !== '' ? `${mapPoint.city}
` : ''}\n ${mapPoint.county !== '' ? `${mapPoint.county}
` : ''}\n ${mapPoint.postcode !== '' ? `${mapPoint.postcode}
` : ''}\n
\n ${mapPoint.direction !== '' ? `Get Directions ` : ''}\n
`;\n\n let infowindow = new google.maps.InfoWindow({\n pixelOffset: new google.maps.Size(180, 180),\n content: '
' + windowContent + '
'\n });\n\n // Open info window on click\n google.maps.event.addListener(marker, 'click', function () {\n if (prevWindow) {\n prevWindow.close();\n }\n prevWindow = infowindow;\n map.panTo(this.getPosition());\n infowindow.open(map, marker);\n });\n }(marker, mapPoint));\n }\n\n google.maps.event.trigger(gmarkers[0], 'click');\n }\n },\n isScriptAlreadyIncluded(src){\n let scripts = document.getElementsByTagName('script');\n for(let i = 0; i < scripts.length; i++) {\n if(scripts[i].getAttribute('src') === src) {\n return true;\n }\n }\n return false;\n },\n loadScript(url, callback)\n {\n if(!this.isScriptAlreadyIncluded(url)){\n let head = document.head;\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.onreadystatechange = callback;\n script.onload = callback;\n head.appendChild(script);\n } else {\n callback();\n }\n },\n loadMaps(key) {\n this.loadScript(`https://maps.googleapis.com/maps/api/js?key=${key}`, this.initMap);\n },\n },\n {\n init() {\n this.container = this.node.querySelector('[data-map-container]');\n this.mapData = this.node.getAttribute('data-mapData');\n this.key = 'AIzaSyDXNiwvpZu0XYjW3K5brfdtEXWTi3mrm5g'; // TODO: Change to client's API key\n\n window.addEventListener('load', this.loadMaps(this.key));\n },\n destroy() {\n window.removeEventListener('load', this.loadMaps(this.key));\n },\n }\n);\n\nexport default gallery;\n","function userIsNotTabbing(e) {\n document.body.classList.remove('user-is-tabbing');\n window.addEventListener('keydown', userIsTabbing);\n window.removeEventListener('mousedown', userIsNotTabbing);\n}\n\nfunction userIsTabbing(e) {\n if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA') return;\n document.body.classList.add('user-is-tabbing');\n window.removeEventListener('keydown', userIsTabbing);\n window.addEventListener('mousedown', userIsNotTabbing);\n}\n\nwindow.addEventListener('keydown', userIsTabbing);\n\nexport default userIsTabbing;\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n const TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this.touchTimeout = null\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n Util.supportsTransitionEnd()) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n 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._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\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 }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n if ('ontouchstart' in document.documentElement) {\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 $(this._element).on(Event.TOUCHEND, () => {\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n })\n }\n }\n }\n\n _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 case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\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 const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, 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 data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n})($)\n\nexport default Carousel\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n const tabToggles = $(Selector.DATA_TOGGLE)\n for (let i = 0; i < tabToggles.length; i++) {\n const elem = tabToggles[i]\n const selector = Util.getSelectorFromElement(elem)\n if (selector !== null && $(selector).filter(element).length > 0) {\n this._selector = selector\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 }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray(\n $(this._parent)\n .find(Selector.ACTIVES)\n .filter(`[data-parent=\"${this._config.parent}\"]`)\n )\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length > 0) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n if (this._triggerArray.length > 0) {\n for (let i = 0; i < this._triggerArray.length; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n if (selector !== null) {\n const $elem = $(selector)\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent = null\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = $(this._config.parent)[0]\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length > 0) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.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 data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n $(selector).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n})($)\n\nexport default Collapse\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isTransitioning || this._isShown) {\n return\n }\n\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (this._isTransitioning || !this._isShown) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_KEY)\n\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._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n 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 this._element.removeAttribute('aria-hidden')\n this._element.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n const doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\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 _adjustDialog() {\n const isModalOverflowing =\n 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 _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\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\n // Adjust fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(Selector.STICKY_CONTENT).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $('body').css('padding-right')\n $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n $(`${Selector.STICKY_CONTENT}, ${Selector.NAVBAR_TOGGLER}`).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $('body').data('padding-right')\n if (typeof padding !== 'undefined') {\n $('body').css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Modal.Default,\n ...$(this).data(),\n ...typeof config === 'object' && config\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).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 data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (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, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n})($)\n\nexport default Modal\n","import $ from 'jquery'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n let activeElements\n if (container.nodeName === 'UL') {\n activeElements = $(container).find(Selector.ACTIVE_UL)\n } else {\n activeElements = $(container).children(Selector.ACTIVE)\n }\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n Util.supportsTransitionEnd() &&\n (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(`${ClassName.SHOW} ${ClassName.ACTIVE}`)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.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 data[config]()\n }\n })\n }\n }\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n})($)\n\nexport default Tab\n","import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transition = false\n\n const MAX_UID = 1000000\n\n // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: transition.end,\n delegateType: transition.end,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n }\n\n function transitionEndTest() {\n if (typeof window !== 'undefined' && window.QUnit) {\n return false\n }\n\n return {\n end: 'transitionend'\n }\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n transition = transitionEndTest()\n\n $.fn.emulateTransitionEnd = transitionEndEmulator\n\n if (Util.supportsTransitionEnd()) {\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n }\n\n function escapeId(selector) {\n // We escape IDs in case of special selectors (selector = '#myId:something')\n // $.escapeSelector does not exist in jQuery < 3\n selector = typeof $.escapeSelector === 'function' ? $.escapeSelector(selector).substr(1)\n : selector.replace(/(:|\\.|\\[|\\]|,|=|@)/g, '\\\\$1')\n\n return selector\n }\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n 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 return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n // If it's an ID\n if (selector.charAt(0) === '#') {\n selector = escapeId(selector)\n }\n\n try {\n const $selector = $(document).find(selector)\n return $selector.length > 0 ? selector : null\n } catch (err) {\n return null\n }\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(transition.end)\n },\n\n supportsTransitionEnd() {\n return Boolean(transition)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n})($)\n\nexport default Util\n","import { isBreakpoint, purgeProperties } from '@area17/a17-helpers';\n\n// see https://code.area17.com/a17/fe-boilerplate/wikis/js-functions-createBehavior\n\nfunction Behavior(node, config = {}) {\n if (!node || !(node instanceof Element)) {\n throw new Error('Node argument is required');\n }\n\n this.node = node;\n this.options = Object.assign({}, config.options || {});\n\n this.__subBehaviors = [];\n this.__isEnabled = false;\n this.__children = config.children;\n\n // Auto-bind all custom methods to \"this\"\n this.customMethodNames.forEach(methodName => {\n this[methodName] = this[methodName].bind(this);\n });\n\n return this;\n}\n\nBehavior.prototype = Object.freeze({\n init() {\n // Get options from data attributes on node\n const regex = new RegExp('^data-' + this.name + '-(.*)', 'i');\n for (let i = 0; i < this.node.attributes.length; i++) {\n const attr = this.node.attributes[i];\n const matches = regex.exec(attr.nodeName);\n\n if (matches != null && matches.length >= 2) {\n if (this.options[matches[1]]) {\n console.warn(\n `Ignoring ${\n matches[1]\n } option, as it already exists on the ${name} behavior. Please choose another name.`\n );\n }\n this.options[matches[1]] = attr.value;\n }\n }\n\n // Behavior-specific lifecycle\n if (this.lifecycle.init != null) {\n this.lifecycle.init.call(this);\n }\n\n if (this.lifecycle.resized != null) {\n this.__resizedBind = this.__resized.bind(this);\n window.addEventListener('resized', this.__resizedBind);\n }\n\n if (this.lifecycle.mediaQueryUpdated != null || this.options.media) {\n this.__mediaQueryUpdatedBind = this.__mediaQueryUpdated.bind(this);\n window.addEventListener('mediaQueryUpdated', this.__mediaQueryUpdatedBind);\n }\n\n if (this.options.media) {\n this.__toggleEnabled();\n } else {\n this.enable();\n }\n },\n destroy() {\n if (this.__isEnabled === true) {\n this.disable();\n }\n\n // Behavior-specific lifecycle\n if (this.lifecycle.destroy != null) {\n this.lifecycle.destroy.call(this);\n }\n\n this.__subBehaviors.forEach(sub => {\n sub.destroy();\n });\n\n if (this.lifecycle.resized != null) {\n window.removeEventListener('resized', this.__resizedBind);\n }\n\n if (this.lifecycle.mediaQueryUpdated != null || this.options.media) {\n window.removeEventListener('mediaQueryUpdated', this.__mediaQueryUpdatedBind);\n }\n\n purgeProperties(this);\n },\n getChild(childName, context, multi = false) {\n if (context == null) {\n context = this.node;\n }\n if (this.__children != null && this.__children[childName] != null) {\n return this.__children[childName];\n }\n return context[multi ? 'querySelectorAll' : 'querySelector'](\n '[data-' + this.name.toLowerCase() + '-' + childName.toLowerCase() + ']'\n );\n },\n getChildren(childName, context) {\n return this.getChild(childName, context, true);\n },\n isEnabled() {\n return this.__isEnabled;\n },\n enable() {\n this.__isEnabled = true;\n if (this.lifecycle.enabled != null) {\n this.lifecycle.enabled.call(this);\n }\n },\n disable() {\n this.__isEnabled = false;\n if (this.lifecycle.disabled != null) {\n this.lifecycle.disabled.call(this);\n }\n },\n addSubBehavior(Behavior, node, config = {}) {\n const subBehavior = new Behavior(node, config);\n subBehavior.behaviorName = this.name;\n subBehavior.init();\n this.__subBehaviors.push(subBehavior);\n return subBehavior;\n },\n __toggleEnabled() {\n const isValidMQ = isBreakpoint(this.options.media);\n if (isValidMQ && !this.__isEnabled) {\n this.enable();\n } else if (!isValidMQ && this.__isEnabled) {\n this.disable();\n }\n },\n __mediaQueryUpdated() {\n if (this.lifecycle.mediaQueryUpdated != null) {\n this.lifecycle.mediaQueryUpdated.call(this);\n }\n if (this.options.media) {\n this.__toggleEnabled();\n }\n },\n __resized() {\n if (this.lifecycle.resized != null) {\n this.lifecycle.resized.call(this);\n }\n },\n});\n\nconst createBehavior = (name, def, lifecycle = {}) => {\n const fn = function(...args) {\n Behavior.apply(this, args);\n };\n\n const customMethodNames = [];\n\n const customProperties = {\n name: {\n get() {\n return this.behaviorName;\n },\n },\n behaviorName: {\n value: name,\n writable: true,\n },\n lifecycle: {\n value: lifecycle,\n },\n customMethodNames: {\n value: customMethodNames,\n },\n };\n\n // Expose the definition properties as 'this[methodName]'\n const defKeys = Object.keys(def);\n defKeys.forEach(key => {\n customMethodNames.push(key);\n customProperties[key] = {\n value: def[key],\n writable: true,\n };\n });\n\n fn.prototype = Object.create(Behavior.prototype, customProperties);\n return fn;\n};\n\nexport default createBehavior;\n","export function manageBehaviors(loadedBehaviorsModule, dataAttr = 'behavior') {\n const loadedBehaviorNames = Object.keys(loadedBehaviorsModule);\n const loadedBehaviors = {};\n const activeBehaviors = new Map();\n\n function loopBehaviors(node, cb) {\n if (!('querySelectorAll' in node)) {\n // Ignore text or comment nodes\n return;\n }\n const behaviorNodes = [node].concat(\n [].slice.call(node.querySelectorAll(`[data-${dataAttr}]`))\n );\n for (let i = 0; i < behaviorNodes.length; i++) {\n const behaviorNode = behaviorNodes[i];\n const behaviorNames =\n behaviorNode.dataset &&\n behaviorNode.dataset[dataAttr] &&\n behaviorNode.dataset[dataAttr].split(' ');\n if (behaviorNames) {\n behaviorNames.forEach(name => {\n cb(name, behaviorNode);\n });\n }\n }\n }\n\n function destroyBehaviors(node) {\n loopBehaviors(node, (bName, bNode) => {\n const nodeBehaviors = activeBehaviors.get(bNode);\n if (!nodeBehaviors || !nodeBehaviors[bName]) {\n console.warn(`No behavior ${bName} instance on:`, bNode);\n return;\n }\n nodeBehaviors[bName].destroy();\n delete nodeBehaviors[bName];\n });\n }\n\n function createBehaviors(node) {\n loopBehaviors(node, (bName, bNode) => {\n if (!loadedBehaviors[bName]) {\n console.warn(`No loaded behavior called ${bName}`);\n return;\n }\n\n const instance = new loadedBehaviors[bName](bNode);\n instance.init();\n const nodeBehaviors = activeBehaviors.get(bNode) || {};\n nodeBehaviors[bName] = instance;\n activeBehaviors.set(bNode, nodeBehaviors);\n });\n }\n\n function observeBehaviors() {\n const observer = new MutationObserver(mutations => {\n mutations.forEach(mutation => {\n if (mutation.removedNodes) {\n for (let i = 0; i < mutation.removedNodes.length; i++) {\n const node = mutation.removedNodes[i];\n destroyBehaviors(node);\n }\n }\n });\n\n mutations.forEach(mutation => {\n if (mutation.addedNodes) {\n for (let i = 0; i < mutation.addedNodes.length; i++) {\n const node = mutation.addedNodes[i];\n createBehaviors(node);\n }\n }\n });\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: false,\n characterData: false,\n });\n }\n\n loadedBehaviorNames.forEach(name => {\n loadedBehaviors[name] = loadedBehaviorsModule[name];\n });\n\n createBehaviors(document);\n observeBehaviors();\n}\n\nexport default manageBehaviors;\n","// polyfill NodeList forEach\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n}\n\n// polyfill CustomEvent (IE11 supports it, just not the 'new' constructor)\n(function() {\n if (typeof window.CustomEvent === 'function') {\n return false;\n }\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: null };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent;\n})();\n\n// polyfill Object.assign\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, \"assign\", {\n value: function assign(target, varArgs) { // .length of function is 2\n 'use strict';\n if (target == null) { // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) { // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n },\n writable: true,\n configurable: true\n });\n}\n","'use strict';\n\nvar queryStringHandler = {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/queryStringHandler-toObject\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/queryStringHandler-fromObject\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/queryStringHandler-updateParameter\n\n toObject: function toObject(url) {\n if (typeof url !== 'string') {\n return {};\n }\n\n var qsObj = {};\n var search = url && url.indexOf('?') > -1 ? url.split('?')[1] : location.search;\n search.replace(new RegExp('([^?=&]+)(=([^&]*))?', 'g'), function ($0, $1, $2, $3) {\n qsObj[$1] = $3;\n });\n return qsObj;\n },\n fromObject: function fromObject(obj) {\n var queryString = '';\n var count = 0;\n\n if (Object.getOwnPropertyNames(obj).length > 0) {\n queryString = '?';\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n queryString += (count > 0 ? '&' : '') + key + '=' + encodeURIComponent(obj[key]).replace(/[!'()]/g, '').replace(/\\*/g, '%2A').replace(/%2B/ig, '+');\n count++;\n }\n }\n\n return queryString;\n },\n updateParameter: function updateParameter(url, key, value) {\n var re = new RegExp('([?&])' + key + '=.*?(&|#|$)', 'i');\n if (url.match(re)) {\n return url.replace(re, '$1' + key + '=' + value + '$2');\n } else {\n var hash = '';\n if (url.indexOf('#') !== -1) {\n hash = url.replace(/.*#/, '#');\n url = url.replace(/#.*/, '');\n }\n var separator = url.indexOf('?') !== -1 ? '&' : '?';\n return url + separator + key + '=' + value + hash;\n }\n }\n};\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar ajaxRequest = function ajaxRequest(settings) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/ajaxRequest\n\n var options = settings;\n var request = new XMLHttpRequest();\n var requestUrl = options.url;\n\n options.queryString = '';\n if (options.data !== undefined) {\n if (queryStringHandler.fromObject) {\n options.queryString = queryStringHandler.fromObject(options.data);\n } else {\n throw new ReferenceError('Missing: queryStringHandler.fromObject');\n }\n }\n\n if (options.type !== 'POST') {\n requestUrl += requestUrl.indexOf('?') > 0 ? options.queryString.replace('?', '&') : options.queryString;\n }\n\n request.open(options.type, requestUrl, true);\n\n request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n\n if (options.type === 'POST') {\n request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (options.requestHeaders !== undefined && options.requestHeaders.length > 0) {\n for (var i = 0; i < options.requestHeaders.length; i++) {\n var header = options.requestHeaders[i].header;\n var value = options.requestHeaders[i].value;\n if (header !== undefined && value !== undefined) {\n request.setRequestHeader(header, value);\n }\n }\n }\n\n request.onload = function () {\n if (request.status >= 200 && request.status < 400) {\n\n // Success!\n if (_typeof(options.onSuccess).toLowerCase() === 'function') {\n options.onSuccess.call(this, request.responseText, request.status);\n }\n } else {\n if (_typeof(options.onError).toLowerCase() === 'function') {\n options.onError.call(this, request.responseText, request.status);\n }\n console.log('We reached our target server, but it returned an error: ' + request.statusText);\n }\n };\n\n request.onerror = function () {\n console.log('There was a connection error of some sort');\n if (_typeof(options.onError).toLowerCase() === 'function') {\n options.onError.call(this, request.responseText, request.status);\n }\n };\n\n request.send(options.type === 'POST' ? options.queryString.replace('?', '') : '');\n\n return request;\n};\n\nvar cookieHandler = {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/cookieHandler-create\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/cookieHandler-delete\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/cookieHandler-read\n\n create: function create(name, value, days) {\n var expires = '';\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n expires = '; expires=' + date.toGMTString();\n }\n document.cookie = name + '=' + value + expires + '; path=/';\n },\n delete: function _delete(name) {\n if (name) {\n this.create(name, '', -1);\n }\n },\n read: function read(name) {\n if (name) {\n var nameEQ = name + '=';\n var ca = document.cookie.split(';');\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n if (c.indexOf(nameEQ) === 0) {\n return c.substring(nameEQ.length, c.length);\n }\n }\n return null;\n }\n return null;\n }\n};\n\nvar copyTextToClipboard = function copyTextToClipboard(textToCopy, successMsg) {\n\n // https://code.area17.com/a17/a17-helpers/wikis/copyTextToClipboard\n // http://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript#answer-30810322\n\n // and then\n // https://stackoverflow.com/questions/47879184/document-execcommandcopy-not-working-on-chrome?rq=1&utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n // https://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa\n\n if (navigator.clipboard && 'Promise' in window && window.location.protocol == 'https:') {\n navigator.clipboard.writeText(textToCopy).then(function () {\n console.log(successMsg);\n }, function (err) {\n console.error('Could not copy text: ', err);\n });\n } else {\n var textArea = document.createElement('textarea');\n\n textArea.style.position = 'fixed';\n textArea.style.top = 0;\n textArea.style.left = 0;\n textArea.style.width = '2em';\n textArea.style.height = '2em';\n textArea.style.padding = 0;\n textArea.style.border = 'none';\n textArea.style.outline = 'none';\n textArea.style.boxShadow = 'none';\n textArea.style.background = 'transparent';\n\n //textArea.value = textToCopy;\n textArea.textContent = textToCopy;\n document.body.appendChild(textArea);\n\n var selection = document.getSelection();\n var range = document.createRange();\n range.selectNode(textArea);\n selection.removeAllRanges();\n selection.addRange(range);\n\n try {\n var successful = document.execCommand('copy');\n if (successful) {\n window.alert(successMsg || 'Copied to clipboard');\n } else {\n console.log('Could not copy text');\n }\n } catch (err) {\n console.log('Could not copy text');\n }\n\n document.body.removeChild(textArea);\n }\n};\n\nvar debounce = function debounce(func, wait, immediate) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/debounce\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n var later = function later() {\n timeout = null;\n if (!immediate) {\n func.apply(context, args);\n }\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) {\n func.apply(context, args);\n }\n };\n};\n\nvar escapeString = function escapeString(str) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/escapeString\n\n if (typeof str === 'string') {\n var div = document.createElement('div');\n var text = document.createTextNode(str.replace(/<[^>]*>?/g, ''));\n div.appendChild(text);\n return encodeURIComponent(div.textContent);\n } else {\n return '';\n }\n};\n\nvar extend = function extend() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/extend\n\n var obj = {};\n var i = 0;\n var argumentsLength = arguments.length;\n var key;\n\n for (; i < argumentsLength; i++) {\n for (key in arguments[i]) {\n if (arguments[i].hasOwnProperty(key)) {\n obj[key] = arguments[i][key];\n }\n }\n }\n\n return obj;\n};\n\nvar focusDisplayHandler = function focusDisplayHandler() {\n\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/focusDisplayHandler\n\n var attr = 'data-focus-method';\n var touch = 'touch';\n var mouse = 'mouse';\n var key = 'key';\n\n var focusMethod = false;\n var lastFocusMethod;\n\n function _onKeyDown() {\n focusMethod = key;\n }\n\n function _onMouseDown() {\n if (focusMethod === touch) {\n return;\n }\n focusMethod = mouse;\n }\n\n function _onTouchStart() {\n focusMethod = touch;\n }\n\n function _onFocus(event) {\n if (!focusMethod) {\n focusMethod = lastFocusMethod;\n }\n if (event.target && typeof event.target.setAttribute === 'function') {\n event.target.setAttribute(attr, focusMethod);\n lastFocusMethod = focusMethod;\n focusMethod = false;\n }\n }\n\n function _onBlur(event) {\n if (event.target && typeof event.target.removeAttribute === 'function') {\n event.target.removeAttribute(attr);\n }\n }\n\n function _onWindowBlur() {\n focusMethod = false;\n }\n\n document.addEventListener('keydown', _onKeyDown, true);\n document.addEventListener('mousedown', _onMouseDown, true);\n document.addEventListener('touchstart', _onTouchStart, true);\n document.addEventListener('focus', _onFocus, true);\n document.addEventListener('blur', _onBlur, true);\n window.addEventListener('blur', _onWindowBlur);\n};\n\nvar setFocusOnTarget = function setFocusOnTarget(node) {\n //https://code.area17.com/a17/a17-helpers/wikis/setFocusOnTarget\n node.focus();\n if (node !== document.activeElement) {\n node.setAttribute('tabindex', '-1');\n node.focus();\n }\n};\n\nvar focusTrap = function focusTrap() {\n\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/focusTrap\n\n var element;\n\n function _focus() {\n if (element) {\n if (document.activeElement !== element && !element.contains(document.activeElement)) {\n setFocusOnTarget(element);\n }\n } else {\n document.removeEventListener('focus', _focus, true);\n }\n }\n\n function _trap(event) {\n try {\n document.removeEventListener('focus', _focus, true);\n } catch (err) {}\n\n if (!event && !event.data.element) {\n return;\n }\n\n element = event.data.element;\n document.addEventListener('focus', _focus, true);\n }\n\n function _untrap() {\n document.removeEventListener('focus', _focus, true);\n element = null;\n }\n\n document.addEventListener('focus:trap', _trap, false);\n document.addEventListener('focus:untrap', _untrap, false);\n};\n\nvar triggerCustomEvent = function triggerCustomEvent(el, type, data) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/triggerCustomEvent\n\n var event = document.createEvent('HTMLEvents');\n event.initEvent(type, true, true);\n event.data = data || {};\n event.eventName = type;\n el.dispatchEvent(event);\n};\n\nvar commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar fontfaceonload = createCommonjsModule(function (module, exports) {\n(function (root, factory) {\n\t{\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t}\n}(commonjsGlobal, function () {\n\n\tvar TEST_STRING = 'AxmTYklsjo190QW',\n\t\tSANS_SERIF_FONTS = 'sans-serif',\n\t\tSERIF_FONTS = 'serif',\n\n\t\tdefaultOptions = {\n\t\t\ttolerance: 2, // px\n\t\t\tdelay: 100,\n\t\t\tglyphs: '',\n\t\t\tsuccess: function() {},\n\t\t\terror: function() {},\n\t\t\ttimeout: 5000,\n\t\t\tweight: '400', // normal\n\t\t\tstyle: 'normal',\n\t\t\twindow: window\n\t\t},\n\n\t\t// See https://github.com/typekit/webfontloader/blob/master/src/core/fontruler.js#L41\n\t\tstyle = [\n\t\t\t'display:block',\n\t\t\t'position:absolute',\n\t\t\t'top:-999px',\n\t\t\t'left:-999px',\n\t\t\t'font-size:48px',\n\t\t\t'width:auto',\n\t\t\t'height:auto',\n\t\t\t'line-height:normal',\n\t\t\t'margin:0',\n\t\t\t'padding:0',\n\t\t\t'font-variant:normal',\n\t\t\t'white-space:nowrap'\n\t\t],\n\t\thtml = '
' + TEST_STRING + '
';\n\n\tvar FontFaceOnloadInstance = function() {\n\t\tthis.fontFamily = '';\n\t\tthis.appended = false;\n\t\tthis.serif = undefined;\n\t\tthis.sansSerif = undefined;\n\t\tthis.parent = undefined;\n\t\tthis.options = {};\n\t};\n\n\tFontFaceOnloadInstance.prototype.getMeasurements = function () {\n\t\treturn {\n\t\t\tsansSerif: {\n\t\t\t\twidth: this.sansSerif.offsetWidth,\n\t\t\t\theight: this.sansSerif.offsetHeight\n\t\t\t},\n\t\t\tserif: {\n\t\t\t\twidth: this.serif.offsetWidth,\n\t\t\t\theight: this.serif.offsetHeight\n\t\t\t}\n\t\t};\n\t};\n\n\tFontFaceOnloadInstance.prototype.load = function () {\n\t\tvar startTime = new Date(),\n\t\t\tthat = this,\n\t\t\tserif = that.serif,\n\t\t\tsansSerif = that.sansSerif,\n\t\t\tparent = that.parent,\n\t\t\tappended = that.appended,\n\t\t\tdimensions,\n\t\t\toptions = that.options,\n\t\t\tref = options.reference;\n\n\t\tfunction getStyle( family ) {\n\t\t\treturn style\n\t\t\t\t.concat( [ 'font-weight:' + options.weight, 'font-style:' + options.style ] )\n\t\t\t\t.concat( \"font-family:\" + family )\n\t\t\t\t.join( \";\" );\n\t\t}\n\n\t\tvar sansSerifHtml = html.replace( /\\%s/, getStyle( SANS_SERIF_FONTS ) ),\n\t\t\tserifHtml = html.replace( /\\%s/, getStyle( SERIF_FONTS ) );\n\n\t\tif( !parent ) {\n\t\t\tparent = that.parent = options.window.document.createElement( \"div\" );\n\t\t}\n\n\t\tparent.innerHTML = sansSerifHtml + serifHtml;\n\t\tsansSerif = that.sansSerif = parent.firstChild;\n\t\tserif = that.serif = sansSerif.nextSibling;\n\n\t\tif( options.glyphs ) {\n\t\t\tsansSerif.innerHTML += options.glyphs;\n\t\t\tserif.innerHTML += options.glyphs;\n\t\t}\n\n\t\tfunction hasNewDimensions( dims, el, tolerance ) {\n\t\t\treturn Math.abs( dims.width - el.offsetWidth ) > tolerance ||\n\t\t\t\tMath.abs( dims.height - el.offsetHeight ) > tolerance;\n\t\t}\n\n\t\tfunction isTimeout() {\n\t\t\treturn ( new Date() ).getTime() - startTime.getTime() > options.timeout;\n\t\t}\n\n\t\t(function checkDimensions() {\n\t\t\tif( !ref ) {\n\t\t\t\tref = options.window.document.body;\n\t\t\t}\n\t\t\tif( !appended && ref ) {\n\t\t\t\tref.appendChild( parent );\n\t\t\t\tappended = that.appended = true;\n\n\t\t\t\tdimensions = that.getMeasurements();\n\n\t\t\t\t// Make sure we set the new font-family after we take our initial dimensions:\n\t\t\t\t// handles the case where FontFaceOnload is called after the font has already\n\t\t\t\t// loaded.\n\t\t\t\tsansSerif.style.fontFamily = that.fontFamily + ', ' + SANS_SERIF_FONTS;\n\t\t\t\tserif.style.fontFamily = that.fontFamily + ', ' + SERIF_FONTS;\n\t\t\t}\n\n\t\t\tif( appended && dimensions &&\n\t\t\t\t( hasNewDimensions( dimensions.sansSerif, sansSerif, options.tolerance ) ||\n\t\t\t\thasNewDimensions( dimensions.serif, serif, options.tolerance ) ) ) {\n\n\t\t\t\toptions.success();\n\t\t\t} else if( isTimeout() ) {\n\t\t\t\toptions.error();\n\t\t\t} else {\n\t\t\t\tif( !appended && \"requestAnimationFrame\" in options.window ) {\n\t\t\t\t\toptions.window.requestAnimationFrame( checkDimensions );\n\t\t\t\t} else {\n\t\t\t\t\toptions.window.setTimeout( checkDimensions, options.delay );\n\t\t\t\t}\n\t\t\t}\n\t\t})();\n\t}; // end load()\n\n\tFontFaceOnloadInstance.prototype.cleanFamilyName = function( family ) {\n\t\treturn family.replace( /[\\'\\\"]/g, '' ).toLowerCase();\n\t};\n\n\tFontFaceOnloadInstance.prototype.cleanWeight = function( weight ) {\n\t\t// lighter and bolder not supported\n\t\tvar weightLookup = {\n\t\t\tnormal: '400',\n\t\t\tbold: '700'\n\t\t};\n\n\t\treturn '' + (weightLookup[ weight ] || weight);\n\t};\n\n\tFontFaceOnloadInstance.prototype.checkFontFaces = function( timeout ) {\n\t\tvar _t = this;\n\t\t_t.options.window.document.fonts.forEach(function( font ) {\n\t\t\tif( _t.cleanFamilyName( font.family ) === _t.cleanFamilyName( _t.fontFamily ) &&\n\t\t\t\t_t.cleanWeight( font.weight ) === _t.cleanWeight( _t.options.weight ) &&\n\t\t\t\tfont.style === _t.options.style ) {\n\t\t\t\tfont.load().then(function() {\n\t\t\t\t\t_t.options.success( font );\n\t\t\t\t\t_t.options.window.clearTimeout( timeout );\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t};\n\n\tFontFaceOnloadInstance.prototype.init = function( fontFamily, options ) {\n\t\tvar timeout;\n\n\t\tfor( var j in defaultOptions ) {\n\t\t\tif( !options.hasOwnProperty( j ) ) {\n\t\t\t\toptions[ j ] = defaultOptions[ j ];\n\t\t\t}\n\t\t}\n\n\t\tthis.options = options;\n\t\tthis.fontFamily = fontFamily;\n\n\t\t// For some reason this was failing on afontgarde + icon fonts.\n\t\tif( !options.glyphs && \"fonts\" in options.window.document ) {\n\t\t\tif( options.timeout ) {\n\t\t\t\ttimeout = options.window.setTimeout(function() {\n\t\t\t\t\toptions.error();\n\t\t\t\t}, options.timeout );\n\t\t\t}\n\n\t\t\tthis.checkFontFaces( timeout );\n\t\t} else {\n\t\t\tthis.load();\n\t\t}\n\t};\n\n\tvar FontFaceOnload = function( fontFamily, options ) {\n\t\tvar instance = new FontFaceOnloadInstance();\n\t\tinstance.init(fontFamily, options);\n\n\t\treturn instance;\n\t};\n\n\treturn FontFaceOnload;\n}));\n});\n\nvar fontLoadObserver = function fontLoadObserver(fonts) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/fontLoadObserver\n\n if ((typeof fonts === 'undefined' ? 'undefined' : _typeof(fonts)).toLowerCase() !== 'object') {\n return false;\n }\n\n var counter = 0;\n var total = fonts.variants.length;\n\n // cookie name\n var cookieName = 'A17_fonts_cookie_' + fonts.name;\n\n // check we have cookie of fonts already loaded or not\n var cookie = cookieHandler.read(cookieName) || '';\n\n // when a fonts is determined to be loaded\n function loaded() {\n counter++;\n // if we reached the total\n if (counter >= total) {\n document.documentElement.className += ' s-' + fonts.name + '-loaded';\n cookieHandler.create(cookieName, total, 1);\n triggerCustomEvent(document, 'content:populated');\n }\n }\n\n // if cookie, show fonts (not first page load)\n if (cookie && cookie === total.toString()) {\n counter = cookie;\n loaded();\n } else {\n for (var i = 0; i < total; i++) {\n fontfaceonload(fonts.variants[i].name, {\n success: loaded,\n error: loaded,\n weight: fonts.variants[i].weight || '',\n timeout: 3000\n });\n }\n }\n};\n\nvar forEach = function forEach(array, callback, scope) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/forEach\n for (var i = 0; i < array.length; i++) {\n callback.call(scope, i, array[i]);\n }\n};\n\nvar getCurrentMediaQuery = function getCurrentMediaQuery() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/getCurrentMediaQuery\n\n function parse(str) {\n return str.replace(/'/gi, '').replace(/\"/gi, '');\n }\n\n if (window.opera) {\n return parse(window.getComputedStyle(document.body, ':after').getPropertyValue('content')) || 'large';\n } else if (window.getComputedStyle) {\n return parse(window.getComputedStyle(document.head, null).getPropertyValue('font-family')) || 'large';\n } else {\n return 'large';\n }\n};\n\nvar getIndex = function getIndex(node, nodeList) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/getIndex\n\n var nodes = nodeList || node.parentNode.childNodes;\n var nodesLength = nodes.length;\n var n = 0;\n\n for (var i = 0; i < nodesLength; i++) {\n if (nodes[i] === node) {\n return n;\n }\n if (nodes[i].nodeType === 1) {\n n++;\n }\n }\n\n return -1;\n};\n\nvar getMetaContentByName = function getMetaContentByName(name) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/getMetaContentByName\n\n return document.querySelector('meta[name=\\'' + name + '\\']').getAttribute('content');\n};\n\nvar getOffset = function getOffset(node) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/getOffset\n\n if (node) {\n var rect = node.getBoundingClientRect();\n return {\n top: rect.top + (document.documentElement.scrollTop || document.body.scrollTop),\n left: rect.left + (document.documentElement.scrollLeft || document.body.scrollLeft),\n bottom: rect.bottom + (document.documentElement.scrollTop || document.body.scrollTop),\n right: rect.right + (document.documentElement.scrollLeft || document.body.scrollLeft),\n width: rect.width,\n height: rect.height\n };\n } else {\n return null;\n }\n};\n\nvar getUrlParameterByName = function getUrlParameterByName(name, url) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/getUrlParameterByName\n\n var qsObj = queryStringHandler.toObject(url || undefined);\n return qsObj[name] !== undefined ? qsObj[name] : undefined;\n};\n\nvar isBreakpoint = function isBreakpoint(bp) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/isBreakpoint\n\n // bail if no breakpoint is passed\n if (!bp) {\n console.error('You need to pass a breakpoint name!');\n return false;\n }\n\n // we only want to look for a specific modifier and make sure it is at the end of the string\n var pattern = new RegExp('\\\\+$|\\\\-$');\n\n // bps must be in order from smallest to largest\n var bps = ['xsmall', 'small', 'medium', 'large', 'xlarge', 'xxlarge'];\n\n // override the breakpoints if the option is set on the global A17 object\n if (window.A17 && window.A17.breakpoints) {\n if (Array.isArray(window.A17.breakpoints)) {\n bps = window.A17.breakpoints;\n } else {\n console.warn('A17.breakpoints should be an array. Using defaults.');\n }\n }\n\n // store current breakpoint in use\n var currentBp = getCurrentMediaQuery();\n\n // store the index of the current breakpoint\n var currentBpIndex = bps.indexOf(currentBp);\n\n // check to see if bp has a + or - modifier\n var hasModifier = pattern.exec(bp);\n\n // store modifier value\n var modifier = hasModifier ? hasModifier[0] : false;\n\n // store the trimmed breakpoint name if a modifier exists, if not, store the full queried breakpoint name\n var bpName = hasModifier ? bp.slice(0, -1) : bp;\n\n // store the index of the queried breakpoint\n var bpIndex = bps.indexOf(bpName);\n\n // let people know if the breakpoint name is unrecognized\n if (bpIndex < 0) {\n console.warn('Unrecognized breakpoint. Supported breakpoints are: ' + bps.join(', '));\n return false;\n }\n\n // compare the modifier with the index of the current breakpoint in the bps array with the index of the queried breakpoint.\n // if no modifier is set, compare the queried breakpoint name with the current breakpoint name\n if (modifier === '+' && currentBpIndex >= bpIndex || modifier === '-' && currentBpIndex <= bpIndex || !modifier && bp === currentBp) {\n return true;\n }\n\n // the current breakpoint isn’t the one you’re looking for\n return false;\n};\n\nvar jsonpRequest = function jsonpRequest(settings) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/jsonpRequest\n\n var options = settings;\n var script = document.createElement('script');\n\n // sort out the data object\n options.data = options.data || {};\n options.data.callback = options.callback || 'callback';\n\n // make a query string from the data objects\n options.queryString = '';\n if (options.data !== undefined) {\n if (queryStringHandler.fromObject) {\n options.queryString = queryStringHandler.fromObject(options.data);\n } else {\n console.log('Missing: queryStringHandler.fromObject');\n }\n }\n\n // give the script some attributes\n script.type = 'text/javascript';\n script.src = options.url + options.queryString;\n\n // look for timeouts\n var timeout = setTimeout(function () {\n // wipe callback function\n window[options.data.callback] = function () {};\n\n // run error function if specified\n if (_typeof(options.onError).toLowerCase() === 'function') {\n options.onError.call(this);\n }\n }, (options.timeout || 5) * 1000);\n\n // set up the callback\n window[options.data.callback] = function (data) {\n // no need to clear timeout\n clearTimeout(timeout);\n\n // run success function if specified\n if (_typeof(options.onSuccess).toLowerCase() === 'function') {\n options.onSuccess.call(this, data);\n }\n };\n\n // append the script (or go go go!)\n document.getElementsByTagName('head')[0].appendChild(script);\n};\n\nvar keyCodes = {\n tab: 9,\n enter: 13,\n esc: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40\n};\n\n// A A17-helperised version of: https://github.com/area17/lazyload\n// This version: v2.1.1 - 2018-04-01\n// Doc: https://code.area17.com/a17/a17-helpers/wikis/lazyload\n\nvar lazyLoad = function lazyLoad(opts) {\n var options = {\n pageUpdatedEventName: 'page:updated', // how your app tells the rest of the app an update happened\n elements: 'img[data-src], img[data-srcset], source[data-srcset], iframe[data-src], video[data-src], [data-lazyload]', // maybe you just want images?\n rootMargin: '0px', // IntersectionObserver option\n threshold: 0, // IntersectionObserver option\n maxFrameCount: 10 // 60fps / 10 = 6 times a second\n };\n\n // set up\n var frameLoop;\n var frameCount;\n var els = [];\n var elsLength;\n var observer;\n var checkType;\n\n /**\n * Converts HTML collections to an array\n * @private\n * @param {Array} array to convert\n * a loop will work in more browsers than the slice method\n */\n function _htmlCollectionToArray(collection) {\n var a = [];\n var i = 0;\n for (a = [], i = collection.length; i;) {\n a[--i] = collection[i];\n }\n return a;\n }\n\n /**\n * Checks if an element is in the viewport\n * @private\n * @param {Node} element to check.\n * @returns {Boolean} true/false.\n */\n function _elInViewport(el) {\n el = el.tagName === 'SOURCE' ? el.parentNode : el;\n var rect = el.getBoundingClientRect();\n return rect.bottom > 0 && rect.right > 0 && rect.left < (window.innerWidth || document.documentElement.clientWidth) && rect.top < (window.innerHeight || document.documentElement.clientHeight);\n }\n\n /**\n * Removes data- attributes\n * @private\n * @param {Node} element to update\n */\n function _removeDataAttrs(el) {\n el.removeAttribute('data-src');\n el.removeAttribute('data-srcset');\n el.removeAttribute('data-lazyload');\n }\n\n /**\n * On loaded, removes event listener, removes data- attributes\n * @private\n */\n function _loaded() {\n this.removeEventListener('load', _loaded);\n _removeDataAttrs(this);\n }\n\n /**\n * Update an element\n * @private\n * @param {Node} element to update\n */\n function _updateEl(el) {\n var srcset = el.getAttribute('data-srcset');\n var src = el.getAttribute('data-src');\n var dlazyload = el.getAttribute('data-lazyload') !== null;\n //\n if (srcset) {\n // if source set, update and try picturefill\n el.setAttribute('srcset', srcset);\n if (window.picturefill) {\n window.picturefill({\n elements: [el]\n });\n }\n }\n if (src) {\n // if source set, update\n el.src = src;\n }\n if (dlazyload) {\n el.setAttribute('data-lazyloaded', '');\n el.removeEventListener('load', _loaded);\n _removeDataAttrs(el);\n }\n }\n\n /**\n * The callback from the IntersectionObserver\n * @private\n * @entries {Nodes} elements being observed by the IntersectionObserver\n */\n function _intersection(entries) {\n // Disconnect if we've already loaded all of the images\n if (elsLength === 0) {\n observer.disconnect();\n }\n // Loop through the entries\n for (var i = 0; i < entries.length; i++) {\n var entry = entries[i];\n // Are we in viewport?\n if (entry.intersectionRatio > 0) {\n elsLength--;\n // Stop watching this and load the image\n observer.unobserve(entry.target);\n entry.target.addEventListener('load', _loaded, false);\n _updateEl(entry.target);\n }\n }\n }\n\n /**\n * Loops images, checks if in viewport, updates src/src-set\n * @private\n */\n function _setSrcs() {\n var i;\n // browser capability check\n if (checkType === 'really-old') {\n elsLength = els.length;\n for (i = 0; i < elsLength; i++) {\n if (els[i]) {\n _updateEl(els[i]);\n _removeDataAttrs(els[i]);\n }\n }\n els = [];\n } else if (checkType === 'old') {\n // debounce checking\n if (frameCount === options.maxFrameCount) {\n // update cache of this for the loop\n elsLength = els.length;\n for (i = 0; i < elsLength; i++) {\n // check if this array item exists, hasn't been loaded already and is in the viewport\n if (els[i] && els[i].lazyloaded === undefined && _elInViewport(els[i])) {\n // cache this array item\n var thisEl = els[i];\n // set this array item to be undefined to be cleaned up later\n els[i] = undefined;\n // give this element a property to stop us running twice on one thing\n thisEl.lazyloaded = true;\n // add an event listener to remove data- attributes on load\n thisEl.addEventListener('load', _loaded, false);\n // update\n _updateEl(thisEl);\n }\n }\n // clean up array\n for (i = 0; i < elsLength; i++) {\n if (els[i] === undefined) {\n els.splice(i, 1);\n }\n }\n // reset var to decide if to continue running\n elsLength = els.length;\n // will shortly be set to 0 to start counting\n frameCount = -1;\n }\n\n // run again? kill if not\n if (elsLength > 0) {\n frameCount++;\n frameLoop = window.requestAnimationFrame(_setSrcs);\n }\n } else if (checkType === 'new') {\n observer = new IntersectionObserver(_intersection, {\n rootMargin: options.rootMargin,\n threshold: options.threshold\n });\n elsLength = els.length;\n for (i = 0; i < elsLength; i++) {\n if (els[i] && els[i].lazyloaded === undefined) {\n observer.observe(els[i]);\n }\n }\n }\n }\n\n /**\n * Gets the show on the road\n * @private\n */\n function _init() {\n // kill any old loops if there are any\n if (checkType === 'old') {\n try {\n cancelAnimationFrame(frameLoop);\n } catch (err) {}\n } else if (checkType === 'new') {\n try {\n observer.disconnect();\n } catch (err) {}\n }\n // grab elements to lazy load\n els = _htmlCollectionToArray(document.querySelectorAll(options.elements));\n elsLength = els.length;\n frameCount = options.maxFrameCount;\n // go go go\n _setSrcs();\n }\n\n /**\n * GO GO GO\n * @public\n * @param {object} options (see readme)\n */\n function _lazyLoad() {\n for (var item in opts) {\n if (opts.hasOwnProperty(item)) {\n options[item] = opts[item];\n }\n }\n if (!('addEventListener' in window) || !window.requestAnimationFrame || _typeof(document.body.getBoundingClientRect) === undefined) {\n checkType = 'really-old';\n } else if ('IntersectionObserver' in window) {\n checkType = 'new';\n } else {\n checkType = 'old';\n }\n _init();\n if (options.pageUpdatedEventName) {\n document.addEventListener(options.pageUpdatedEventName, _init, true);\n }\n }\n\n _lazyLoad();\n};\n\n// import * as Behaviors from '../behaviors';\n\nvar manageBehaviors = function manageBehaviors(Behaviors, options) {\n\n var activeBehaviors = {};\n\n /*\n default init listens for event 'page:updated':\n manageBehaviors();\n init for pjax:\n manageBehaviors({pageUpdatedEventName:'pjax:end'});\n init for spf:\n manageBehaviors({pageUpdatedEventName:'spfdone'});\n */\n\n var idCounter = 0;\n var pageUpdatedEventName = options && options.pageUpdatedEventName ? options.pageUpdatedEventName : 'page:updated';\n\n function searchDomAndInitBehaviors(context) {\n if (context === undefined) {\n context = document;\n }\n var all = context.querySelectorAll('[data-behavior]');\n var i = -1;\n while (all[++i]) {\n var currentElement = all[i];\n\n // check to see if this element has had its behaviors already initialized by looking for _A17BehaviorsActive\n if (!currentElement._A17BehaviorsActive) {\n //console.log('initializing behaviors for:\\n', currentElement);\n var behaviors = currentElement.getAttribute('data-behavior');\n var splittedBehaviors = behaviors.split(' ');\n for (var j = 0, k = splittedBehaviors.length; j < k; j++) {\n var ThisBehavior = Behaviors[splittedBehaviors[j]];\n if (typeof ThisBehavior !== 'undefined') {\n try {\n // mark the element as having its behaviors initialized\n currentElement._A17BehaviorsActive = true;\n\n // add this instance to the activeBehaviors object so it can be interrogated if the page is updated later\n activeBehaviors[idCounter] = {\n el: currentElement,\n behavior: new ThisBehavior(currentElement),\n name: splittedBehaviors[j]\n };\n\n try {\n activeBehaviors[idCounter].behavior.init();\n } catch (err) {\n console.warn('failed to init behavior: ', activeBehaviors[idCounter].name, '\\n', err, activeBehaviors[idCounter]);\n }\n\n idCounter++;\n } catch (err) {\n console.error(err, currentElement, ThisBehavior);\n }\n }\n }\n }\n }\n }\n\n function pageUpdated() {\n // first check if anything was removed and clean up\n for (var activeBehaviorObj in activeBehaviors) {\n if (activeBehaviors.hasOwnProperty(activeBehaviorObj)) {\n var thisBehaviorObj = activeBehaviors[activeBehaviorObj];\n\n // check if the element is still there\n if (!document.body.contains(thisBehaviorObj.el)) {\n //console.log('element no longer exists:\\n', thisBehaviorObj.name, thisBehaviorObj);\n\n // trigger its destroy if its gone\n try {\n thisBehaviorObj.behavior.destroy();\n delete activeBehaviors[activeBehaviorObj];\n } catch (err) {\n //console.log('failed to destroy behavior: ', thisBehaviorObj.name, '\\n', err, thisBehaviorObj);\n }\n }\n }\n }\n\n // now look for new behaviors!\n searchDomAndInitBehaviors();\n }\n\n searchDomAndInitBehaviors();\n document.addEventListener(pageUpdatedEventName, pageUpdated);\n document.addEventListener('content:updated', function () {\n searchDomAndInitBehaviors(event.data.el ? event.data.el : '');\n });\n};\n\nvar messages = function messages() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/messages\n\n var target = document.querySelectorAll('[data-message-target]');\n\n if (target.length > 0) {\n target = target[0];\n } else {\n return;\n }\n\n var messageVisible = false;\n var messageTimer;\n var messages = [];\n var loadMessage = target.getAttribute('data-message') || false;\n var loadMessageType = target.getAttribute('data-message-type') || '';\n\n function createMessage(message, type) {\n var div = document.createElement('div');\n var span = document.createElement('span');\n span.textContent = message;\n div.appendChild(span);\n div.className = type !== '' ? 'message message--' + type + ' s-hide' : 'message s-hide';\n return div;\n }\n\n function hideMessage(div) {\n div.className += ' s-hide';\n setTimeout(function () {\n div.parentNode.removeChild(div);\n }, 250);\n }\n\n function showMessage(div, time) {\n messageVisible = true;\n target.appendChild(div);\n div.className = div.className.replace(new RegExp('(^|\\\\b)' + 's-hide'.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n messageTimer = setTimeout(function () {\n hideMessage(div);\n messageVisible = false;\n messages = [];\n }, time || 3000);\n }\n\n function newMessage(data) {\n messages.push(createMessage(data.data.message, data.data.type || ''));\n if (!messageVisible) {\n showMessage(messages[messages.length - 1], data.data.time || false);\n } else {\n clearTimeout(messageTimer);\n hideMessage(messages[messages.length - 2]);\n showMessage(messages[messages.length - 1], data.data.time || false);\n }\n }\n\n document.addEventListener('message', newMessage, false);\n\n if (loadMessage && loadMessage.length > 0) {\n var loadMessageData = {\n data: {\n message: loadMessage,\n time: 5000,\n type: loadMessageType\n }\n };\n newMessage(loadMessageData);\n }\n};\n\nvar objectifyForm = function objectifyForm(form) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/objectifyForm\n\n var field;\n var obj = {};\n\n if ((typeof form === 'undefined' ? 'undefined' : _typeof(form)) === 'object' && form.nodeName === 'FORM') {\n var len = form.elements.length;\n for (var i = 0; i < len; i++) {\n field = form.elements[i];\n if (field.name && !field.disabled && field.type !== 'file' && field.type !== 'reset' && field.type !== 'submit' && field.type !== 'button') {\n if (field.type === 'select-multiple') {\n for (var j = form.elements[i].options.length - 1; j >= 0; j--) {\n if (field.options[j].selected) {\n obj[field.name] = field.options[j].value;\n }\n }\n } else if (field.type !== 'checkbox' && field.type !== 'radio' || field.checked) {\n obj[field.name] = field.value;\n }\n }\n }\n }\n return obj;\n};\n\nvar oritentationChangeFix = function oritentationChangeFix() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/oritentationChangeFix\n\n if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) {\n var viewportmeta = document.querySelector('meta[name=\"viewport\"]');\n if (viewportmeta) {\n viewportmeta.content = 'width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0';\n document.body.addEventListener('gesturestart', function () {\n viewportmeta.content = 'width=device-width, minimum-scale=0.25, maximum-scale=1.6';\n }, false);\n }\n }\n};\n\nvar purgeProperties = function purgeProperties(obj) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/purgeProperties\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n delete obj[prop];\n }\n }\n};\n\nvar resized = function resized() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/resized\n\n var resizeTimer;\n var mediaQuery = getCurrentMediaQuery();\n\n window.addEventListener('resize', function () {\n clearTimeout(resizeTimer);\n resizeTimer = setTimeout(function () {\n // check media query\n var newMediaQuery = getCurrentMediaQuery();\n\n // tell everything resized happened\n triggerCustomEvent(document, 'resized');\n\n // if media query changed, tell everything\n if (newMediaQuery !== mediaQuery) {\n mediaQuery = newMediaQuery;\n if (window.A17) {\n window.A17.currentMediaQuery = newMediaQuery;\n }\n triggerCustomEvent(document, 'mediaQueryUpdated');\n }\n }, 250);\n });\n};\n\nvar scrollToY = function scrollToY(options) {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/scrollToY\n\n var settings = {\n el: document,\n offset: 0,\n duration: 250,\n easing: 'linear'\n };\n var start = Date.now();\n var from = 0;\n var isDocument = false;\n var easingEquations = {\n\n // Easing functions taken from: https://gist.github.com/gre/1650294\n // -\n // no easing, no acceleration\n linear: function linear(t) {\n return t;\n },\n\n // accelerating from zero velocity\n easeIn: function easeIn(t) {\n return t * t * t;\n },\n\n // decelerating to zero velocity\n easeOut: function easeOut(t) {\n return --t * t * t + 1;\n },\n\n // acceleration until halfway, then deceleration\n easeInOut: function easeInOut(t) {\n return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;\n }\n };\n var useRequestAnimationFrame = window.requestAnimationFrame;\n var scrollInterval;\n\n for (var def in options) {\n if (typeof options[def] !== 'undefined') {\n settings[def] = options[def];\n }\n }\n\n if (settings.el === document) {\n isDocument = true;\n settings.el = document.documentElement.scrollTop ? document.documentElement : document.body;\n }\n\n from = settings.el.scrollTop;\n\n if (from === settings.offset) {\n if (_typeof(settings.onComplete).toLowerCase() === 'function') {\n settings.onComplete.call(this);\n }\n\n // Prevent scrolling to the offset point if already there\n return;\n }\n\n function min(a, b) {\n return a < b ? a : b;\n }\n\n function cancelInterval() {\n if (useRequestAnimationFrame) {\n try {\n cancelAnimationFrame(scrollInterval);\n } catch (err) {\n // continue execution in case cancelAnimationFrame fails\n }\n } else {\n clearTimeout(scrollInterval);\n }\n }\n\n function scroll() {\n if (isDocument && from === 0) {\n // eugh Firefox! (https://miketaylr.com/posts/2014/11/document-body-scrollTop.html)\n document.documentElement.scrollTop = 1;\n document.body.scrollTop = 1;\n from = 1;\n settings.el = document.documentElement.scrollTop ? document.documentElement : document.body;\n requestAnimationFrame(scroll);\n } else {\n var currentTime = Date.now();\n var time = min(1, (currentTime - start) / settings.duration);\n var easedT = easingEquations[settings.easing](time);\n\n settings.el.scrollTop = easedT * (settings.offset - from) + from;\n\n if (time < 1) {\n doScroll();\n } else {\n cancelInterval();\n if (_typeof(settings.onComplete).toLowerCase() === 'function') {\n settings.onComplete.call(this);\n }\n }\n }\n }\n\n function doScroll() {\n if (useRequestAnimationFrame) {\n scrollInterval = requestAnimationFrame(scroll);\n } else {\n scrollInterval = setTimeout(function () {\n scroll();\n }, 1000 / 60);\n }\n }\n\n doScroll();\n};\n\nvar sendEventToSegmentio = function sendEventToSegmentio() {\n // Doc: https://code.area17.com/a17/a17-helpers/wikis/sentEventToSegmentio\n\n var analyticsReady = false;\n var tempStore = [];\n\n function pushAnalytics(data) {\n if (Object.getOwnPropertyNames(data).length > 0) {\n switch (data.type.toLowerCase()) {\n case 'track':\n analytics.track(data.name, data.properties || {});\n break;\n case 'page':\n analytics.page(data.category || '', data.name || '', data.properties || {});\n break;\n case 'identify':\n analytics.identify(data.userID || '', data.properties || {});\n break;\n }\n }\n }\n\n function pushOrStore(data) {\n if (analyticsReady) {\n pushAnalytics(data);\n } else {\n tempStore.push(data);\n }\n }\n\n function pushStored() {\n tempStore.forEach(function (obj, i) {\n pushAnalytics(obj);\n tempStore.splice(i, 1);\n });\n }\n\n function identify() {\n var userInfo = document.querySelector('meta[name=\\'' + name + '\\']').getAttribute('content');\n if (userInfo) {\n userInfo = userInfo.split(',');\n var identifyProps = {};\n userInfo.forEach(function (item) {\n var pair = item.split(':');\n identifyProps[pair[0]] = pair[1];\n });\n pushOrStore({\n type: 'identify',\n userID: identifyProps.id || '',\n properties: identifyProps\n });\n }\n }\n\n function init() {\n if ((typeof analytics === 'undefined' ? 'undefined' : _typeof(analytics)) !== undefined) {\n analytics.ready(function () {\n analytics.debug(false);\n analyticsReady = true;\n identify();\n pushStored();\n });\n } else {\n setTimeout(init, 1000);\n }\n }\n\n document.addEventListener('analytics', function (event) {\n pushOrStore(event.data);\n });\n\n document.addEventListener('analytics_identify', identify);\n\n init();\n};\n\nvar a17helpers = {\n ajaxRequest: ajaxRequest,\n cookieHandler: cookieHandler,\n copyTextToClipboard: copyTextToClipboard,\n debounce: debounce,\n escapeString: escapeString,\n extend: extend,\n focusDisplayHandler: focusDisplayHandler,\n focusTrap: focusTrap,\n fontLoadObserver: fontLoadObserver,\n forEach: forEach,\n getCurrentMediaQuery: getCurrentMediaQuery,\n getIndex: getIndex,\n getMetaContentByName: getMetaContentByName,\n getOffset: getOffset,\n getUrlParameterByName: getUrlParameterByName,\n isBreakpoint: isBreakpoint,\n jsonpRequest: jsonpRequest,\n keycodes: keyCodes,\n lazyLoad: lazyLoad,\n manageBehaviors: manageBehaviors,\n messages: messages,\n objectifyForm: objectifyForm,\n oritentationChangeFix: oritentationChangeFix,\n purgeProperties: purgeProperties,\n queryStringHandler: queryStringHandler,\n resized: resized,\n scrollToY: scrollToY,\n sendEventToSegmentio: sendEventToSegmentio,\n setFocusOnTarget: setFocusOnTarget,\n triggerCustomEvent: triggerCustomEvent\n};\n\nmodule.exports = a17helpers;\n","'use strict';\n\nvar a17helpers = require('./dist/prod');\n\nmodule.exports = a17helpers;\n","/*!\r\n * jQuery Validation Plugin v1.19.3\r\n *\r\n * https://jqueryvalidation.org/\r\n *\r\n * Copyright (c) 2021 Jörn Zaefferer\r\n * Released under the MIT license\r\n */\r\n(function( factory ) {\r\n\tif ( typeof define === \"function\" && define.amd ) {\r\n\t\tdefine( [\"jquery\"], factory );\r\n\t} else if (typeof module === \"object\" && module.exports) {\r\n\t\tmodule.exports = factory( require( \"jquery\" ) );\r\n\t} else {\r\n\t\tfactory( jQuery );\r\n\t}\r\n}(function( $ ) {\r\n\r\n$.extend( $.fn, {\n\n\t// https://jqueryvalidation.org/validate/\n\tvalidate: function( options ) {\n\n\t\t// If nothing is selected, return nothing; can't chain anyway\n\t\tif ( !this.length ) {\n\t\t\tif ( options && options.debug && window.console ) {\n\t\t\t\tconsole.warn( \"Nothing selected, can't validate, returning nothing.\" );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if a validator for this form was already created\n\t\tvar validator = $.data( this[ 0 ], \"validator\" );\n\t\tif ( validator ) {\n\t\t\treturn validator;\n\t\t}\n\n\t\t// Add novalidate tag if HTML5.\n\t\tthis.attr( \"novalidate\", \"novalidate\" );\n\n\t\tvalidator = new $.validator( options, this[ 0 ] );\n\t\t$.data( this[ 0 ], \"validator\", validator );\n\n\t\tif ( validator.settings.onsubmit ) {\n\n\t\t\tthis.on( \"click.validate\", \":submit\", function( event ) {\n\n\t\t\t\t// Track the used submit button to properly handle scripted\n\t\t\t\t// submits later.\n\t\t\t\tvalidator.submitButton = event.currentTarget;\n\n\t\t\t\t// Allow suppressing validation by adding a cancel class to the submit button\n\t\t\t\tif ( $( this ).hasClass( \"cancel\" ) ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\n\t\t\t\t// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button\n\t\t\t\tif ( $( this ).attr( \"formnovalidate\" ) !== undefined ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Validate the form on submit\n\t\t\tthis.on( \"submit.validate\", function( event ) {\n\t\t\t\tif ( validator.settings.debug ) {\n\n\t\t\t\t\t// Prevent form submit to be able to see console output\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\n\t\t\t\tfunction handle() {\n\t\t\t\t\tvar hidden, result;\n\n\t\t\t\t\t// Insert a hidden input as a replacement for the missing submit button\n\t\t\t\t\t// The hidden input is inserted in two cases:\n\t\t\t\t\t// - A user defined a `submitHandler`\n\t\t\t\t\t// - There was a pending request due to `remote` method and `stopRequest()`\n\t\t\t\t\t// was called to submit the form in case it's valid\n\t\t\t\t\tif ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) {\n\t\t\t\t\t\thidden = $( \"\" )\n\t\t\t\t\t\t\t.attr( \"name\", validator.submitButton.name )\n\t\t\t\t\t\t\t.val( $( validator.submitButton ).val() )\n\t\t\t\t\t\t\t.appendTo( validator.currentForm );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( validator.settings.submitHandler && !validator.settings.debug ) {\n\t\t\t\t\t\tresult = validator.settings.submitHandler.call( validator, validator.currentForm, event );\n\t\t\t\t\t\tif ( hidden ) {\n\n\t\t\t\t\t\t\t// And clean up afterwards; thanks to no-block-scope, hidden can be referenced\n\t\t\t\t\t\t\thidden.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// Prevent submit for invalid forms or custom submit handlers\n\t\t\t\tif ( validator.cancelSubmit ) {\n\t\t\t\t\tvalidator.cancelSubmit = false;\n\t\t\t\t\treturn handle();\n\t\t\t\t}\n\t\t\t\tif ( validator.form() ) {\n\t\t\t\t\tif ( validator.pendingRequest ) {\n\t\t\t\t\t\tvalidator.formSubmitted = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn handle();\n\t\t\t\t} else {\n\t\t\t\t\tvalidator.focusInvalid();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn validator;\n\t},\n\n\t// https://jqueryvalidation.org/valid/\n\tvalid: function() {\n\t\tvar valid, validator, errorList;\n\n\t\tif ( $( this[ 0 ] ).is( \"form\" ) ) {\n\t\t\tvalid = this.validate().form();\n\t\t} else {\n\t\t\terrorList = [];\n\t\t\tvalid = true;\n\t\t\tvalidator = $( this[ 0 ].form ).validate();\n\t\t\tthis.each( function() {\n\t\t\t\tvalid = validator.element( this ) && valid;\n\t\t\t\tif ( !valid ) {\n\t\t\t\t\terrorList = errorList.concat( validator.errorList );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tvalidator.errorList = errorList;\n\t\t}\n\t\treturn valid;\n\t},\n\n\t// https://jqueryvalidation.org/rules/\n\trules: function( command, argument ) {\n\t\tvar element = this[ 0 ],\n\t\t\tisContentEditable = typeof this.attr( \"contenteditable\" ) !== \"undefined\" && this.attr( \"contenteditable\" ) !== \"false\",\n\t\t\tsettings, staticRules, existingRules, data, param, filtered;\n\n\t\t// If nothing is selected, return empty object; can't chain anyway\n\t\tif ( element == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !element.form && isContentEditable ) {\n\t\t\telement.form = this.closest( \"form\" )[ 0 ];\n\t\t\telement.name = this.attr( \"name\" );\n\t\t}\n\n\t\tif ( element.form == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( command ) {\n\t\t\tsettings = $.data( element.form, \"validator\" ).settings;\n\t\t\tstaticRules = settings.rules;\n\t\t\texistingRules = $.validator.staticRules( element );\n\t\t\tswitch ( command ) {\n\t\t\tcase \"add\":\n\t\t\t\t$.extend( existingRules, $.validator.normalizeRule( argument ) );\n\n\t\t\t\t// Remove messages from rules, but allow them to be set separately\n\t\t\t\tdelete existingRules.messages;\n\t\t\t\tstaticRules[ element.name ] = existingRules;\n\t\t\t\tif ( argument.messages ) {\n\t\t\t\t\tsettings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"remove\":\n\t\t\t\tif ( !argument ) {\n\t\t\t\t\tdelete staticRules[ element.name ];\n\t\t\t\t\treturn existingRules;\n\t\t\t\t}\n\t\t\t\tfiltered = {};\n\t\t\t\t$.each( argument.split( /\\s/ ), function( index, method ) {\n\t\t\t\t\tfiltered[ method ] = existingRules[ method ];\n\t\t\t\t\tdelete existingRules[ method ];\n\t\t\t\t} );\n\t\t\t\treturn filtered;\n\t\t\t}\n\t\t}\n\n\t\tdata = $.validator.normalizeRules(\n\t\t$.extend(\n\t\t\t{},\n\t\t\t$.validator.classRules( element ),\n\t\t\t$.validator.attributeRules( element ),\n\t\t\t$.validator.dataRules( element ),\n\t\t\t$.validator.staticRules( element )\n\t\t), element );\n\n\t\t// Make sure required is at front\n\t\tif ( data.required ) {\n\t\t\tparam = data.required;\n\t\t\tdelete data.required;\n\t\t\tdata = $.extend( { required: param }, data );\n\t\t}\n\n\t\t// Make sure remote is at back\n\t\tif ( data.remote ) {\n\t\t\tparam = data.remote;\n\t\t\tdelete data.remote;\n\t\t\tdata = $.extend( data, { remote: param } );\n\t\t}\n\n\t\treturn data;\n\t}\n} );\n\n// JQuery trim is deprecated, provide a trim method based on String.prototype.trim\nvar trim = function( str ) {\n\n\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim#Polyfill\n\treturn str.replace( /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\" );\n};\n\n// Custom selectors\n$.extend( $.expr.pseudos || $.expr[ \":\" ], {\t\t// '|| $.expr[ \":\" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support\n\n\t// https://jqueryvalidation.org/blank-selector/\n\tblank: function( a ) {\n\t\treturn !trim( \"\" + $( a ).val() );\n\t},\n\n\t// https://jqueryvalidation.org/filled-selector/\n\tfilled: function( a ) {\n\t\tvar val = $( a ).val();\n\t\treturn val !== null && !!trim( \"\" + val );\n\t},\n\n\t// https://jqueryvalidation.org/unchecked-selector/\n\tunchecked: function( a ) {\n\t\treturn !$( a ).prop( \"checked\" );\n\t}\n} );\n\n// Constructor for validator\n$.validator = function( options, form ) {\n\tthis.settings = $.extend( true, {}, $.validator.defaults, options );\n\tthis.currentForm = form;\n\tthis.init();\n};\n\n// https://jqueryvalidation.org/jQuery.validator.format/\n$.validator.format = function( source, params ) {\n\tif ( arguments.length === 1 ) {\n\t\treturn function() {\n\t\t\tvar args = $.makeArray( arguments );\n\t\t\targs.unshift( source );\n\t\t\treturn $.validator.format.apply( this, args );\n\t\t};\n\t}\n\tif ( params === undefined ) {\n\t\treturn source;\n\t}\n\tif ( arguments.length > 2 && params.constructor !== Array ) {\n\t\tparams = $.makeArray( arguments ).slice( 1 );\n\t}\n\tif ( params.constructor !== Array ) {\n\t\tparams = [ params ];\n\t}\n\t$.each( params, function( i, n ) {\n\t\tsource = source.replace( new RegExp( \"\\\\{\" + i + \"\\\\}\", \"g\" ), function() {\n\t\t\treturn n;\n\t\t} );\n\t} );\n\treturn source;\n};\n\n$.extend( $.validator, {\n\n\tdefaults: {\n\t\tmessages: {},\n\t\tgroups: {},\n\t\trules: {},\n\t\terrorClass: \"error\",\n\t\tpendingClass: \"pending\",\n\t\tvalidClass: \"valid\",\n\t\terrorElement: \"label\",\n\t\tfocusCleanup: false,\n\t\tfocusInvalid: true,\n\t\terrorContainer: $( [] ),\n\t\terrorLabelContainer: $( [] ),\n\t\tonsubmit: true,\n\t\tignore: \":hidden\",\n\t\tignoreTitle: false,\n\t\tonfocusin: function( element ) {\n\t\t\tthis.lastActive = element;\n\n\t\t\t// Hide error label and remove error class on focus if enabled\n\t\t\tif ( this.settings.focusCleanup ) {\n\t\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.hideThese( this.errorsFor( element ) );\n\t\t\t}\n\t\t},\n\t\tonfocusout: function( element ) {\n\t\t\tif ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonkeyup: function( element, event ) {\n\n\t\t\t// Avoid revalidate the field when pressing one of the following keys\n\t\t\t// Shift => 16\n\t\t\t// Ctrl => 17\n\t\t\t// Alt => 18\n\t\t\t// Caps lock => 20\n\t\t\t// End => 35\n\t\t\t// Home => 36\n\t\t\t// Left arrow => 37\n\t\t\t// Up arrow => 38\n\t\t\t// Right arrow => 39\n\t\t\t// Down arrow => 40\n\t\t\t// Insert => 45\n\t\t\t// Num lock => 144\n\t\t\t// AltGr key => 225\n\t\t\tvar excludedKeys = [\n\t\t\t\t16, 17, 18, 20, 35, 36, 37,\n\t\t\t\t38, 39, 40, 45, 144, 225\n\t\t\t];\n\n\t\t\tif ( event.which === 9 && this.elementValue( element ) === \"\" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {\n\t\t\t\treturn;\n\t\t\t} else if ( element.name in this.submitted || element.name in this.invalid ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonclick: function( element ) {\n\n\t\t\t// Click on selects, radiobuttons and checkboxes\n\t\t\tif ( element.name in this.submitted ) {\n\t\t\t\tthis.element( element );\n\n\t\t\t// Or option elements, check parent select in that case\n\t\t\t} else if ( element.parentNode.name in this.submitted ) {\n\t\t\t\tthis.element( element.parentNode );\n\t\t\t}\n\t\t},\n\t\thighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).addClass( errorClass ).removeClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).addClass( errorClass ).removeClass( validClass );\n\t\t\t}\n\t\t},\n\t\tunhighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).removeClass( errorClass ).addClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).removeClass( errorClass ).addClass( validClass );\n\t\t\t}\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.setDefaults/\n\tsetDefaults: function( settings ) {\n\t\t$.extend( $.validator.defaults, settings );\n\t},\n\n\tmessages: {\n\t\trequired: \"This field is required.\",\n\t\tremote: \"Please fix this field.\",\n\t\temail: \"Please enter a valid email address.\",\n\t\turl: \"Please enter a valid URL.\",\n\t\tdate: \"Please enter a valid date.\",\n\t\tdateISO: \"Please enter a valid date (ISO).\",\n\t\tnumber: \"Please enter a valid number.\",\n\t\tdigits: \"Please enter only digits.\",\n\t\tequalTo: \"Please enter the same value again.\",\n\t\tmaxlength: $.validator.format( \"Please enter no more than {0} characters.\" ),\n\t\tminlength: $.validator.format( \"Please enter at least {0} characters.\" ),\n\t\trangelength: $.validator.format( \"Please enter a value between {0} and {1} characters long.\" ),\n\t\trange: $.validator.format( \"Please enter a value between {0} and {1}.\" ),\n\t\tmax: $.validator.format( \"Please enter a value less than or equal to {0}.\" ),\n\t\tmin: $.validator.format( \"Please enter a value greater than or equal to {0}.\" ),\n\t\tstep: $.validator.format( \"Please enter a multiple of {0}.\" )\n\t},\n\n\tautoCreateRanges: false,\n\n\tprototype: {\n\n\t\tinit: function() {\n\t\t\tthis.labelContainer = $( this.settings.errorLabelContainer );\n\t\t\tthis.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );\n\t\t\tthis.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );\n\t\t\tthis.submitted = {};\n\t\t\tthis.valueCache = {};\n\t\t\tthis.pendingRequest = 0;\n\t\t\tthis.pending = {};\n\t\t\tthis.invalid = {};\n\t\t\tthis.reset();\n\n\t\t\tvar currentForm = this.currentForm,\n\t\t\t\tgroups = ( this.groups = {} ),\n\t\t\t\trules;\n\t\t\t$.each( this.settings.groups, function( key, value ) {\n\t\t\t\tif ( typeof value === \"string\" ) {\n\t\t\t\t\tvalue = value.split( /\\s/ );\n\t\t\t\t}\n\t\t\t\t$.each( value, function( index, name ) {\n\t\t\t\t\tgroups[ name ] = key;\n\t\t\t\t} );\n\t\t\t} );\n\t\t\trules = this.settings.rules;\n\t\t\t$.each( rules, function( key, value ) {\n\t\t\t\trules[ key ] = $.validator.normalizeRule( value );\n\t\t\t} );\n\n\t\t\tfunction delegate( event ) {\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( !this.form && isContentEditable ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = $( this ).attr( \"name\" );\n\t\t\t\t}\n\n\t\t\t\t// Ignore the element if it belongs to another form. This will happen mainly\n\t\t\t\t// when setting the `form` attribute of an input to the id of another form.\n\t\t\t\tif ( currentForm !== this.form ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar validator = $.data( this.form, \"validator\" ),\n\t\t\t\t\teventType = \"on\" + event.type.replace( /^validate/, \"\" ),\n\t\t\t\t\tsettings = validator.settings;\n\t\t\t\tif ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {\n\t\t\t\t\tsettings[ eventType ].call( validator, this, event );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.on( \"focusin.validate focusout.validate keyup.validate\",\n\t\t\t\t\t\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], \" +\n\t\t\t\t\t\"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], \" +\n\t\t\t\t\t\"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], \" +\n\t\t\t\t\t\"[type='radio'], [type='checkbox'], [contenteditable], [type='button']\", delegate )\n\n\t\t\t\t// Support: Chrome, oldIE\n\t\t\t\t// \"select\" is provided as event.target when clicking a option\n\t\t\t\t.on( \"click.validate\", \"select, option, [type='radio'], [type='checkbox']\", delegate );\n\n\t\t\tif ( this.settings.invalidHandler ) {\n\t\t\t\t$( this.currentForm ).on( \"invalid-form.validate\", this.settings.invalidHandler );\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.form/\n\t\tform: function() {\n\t\t\tthis.checkForm();\n\t\t\t$.extend( this.submitted, this.errorMap );\n\t\t\tthis.invalid = $.extend( {}, this.errorMap );\n\t\t\tif ( !this.valid() ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t}\n\t\t\tthis.showErrors();\n\t\t\treturn this.valid();\n\t\t},\n\n\t\tcheckForm: function() {\n\t\t\tthis.prepareForm();\n\t\t\tfor ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {\n\t\t\t\tthis.check( elements[ i ] );\n\t\t\t}\n\t\t\treturn this.valid();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.element/\n\t\telement: function( element ) {\n\t\t\tvar cleanElement = this.clean( element ),\n\t\t\t\tcheckElement = this.validationTargetFor( cleanElement ),\n\t\t\t\tv = this,\n\t\t\t\tresult = true,\n\t\t\t\trs, group;\n\n\t\t\tif ( checkElement === undefined ) {\n\t\t\t\tdelete this.invalid[ cleanElement.name ];\n\t\t\t} else {\n\t\t\t\tthis.prepareElement( checkElement );\n\t\t\t\tthis.currentElements = $( checkElement );\n\n\t\t\t\t// If this element is grouped, then validate all group elements already\n\t\t\t\t// containing a value\n\t\t\t\tgroup = this.groups[ checkElement.name ];\n\t\t\t\tif ( group ) {\n\t\t\t\t\t$.each( this.groups, function( name, testgroup ) {\n\t\t\t\t\t\tif ( testgroup === group && name !== checkElement.name ) {\n\t\t\t\t\t\t\tcleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );\n\t\t\t\t\t\t\tif ( cleanElement && cleanElement.name in v.invalid ) {\n\t\t\t\t\t\t\t\tv.currentElements.push( cleanElement );\n\t\t\t\t\t\t\t\tresult = v.check( cleanElement ) && result;\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\trs = this.check( checkElement ) !== false;\n\t\t\t\tresult = result && rs;\n\t\t\t\tif ( rs ) {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = true;\n\t\t\t\t}\n\n\t\t\t\tif ( !this.numberOfInvalids() ) {\n\n\t\t\t\t\t// Hide error containers on last error\n\t\t\t\t\tthis.toHide = this.toHide.add( this.containers );\n\t\t\t\t}\n\t\t\t\tthis.showErrors();\n\n\t\t\t\t// Add aria-invalid status for screen readers\n\t\t\t\t$( element ).attr( \"aria-invalid\", !rs );\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.showErrors/\n\t\tshowErrors: function( errors ) {\n\t\t\tif ( errors ) {\n\t\t\t\tvar validator = this;\n\n\t\t\t\t// Add items to error list and map\n\t\t\t\t$.extend( this.errorMap, errors );\n\t\t\t\tthis.errorList = $.map( this.errorMap, function( message, name ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\telement: validator.findByName( name )[ 0 ]\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Remove items from success list\n\t\t\t\tthis.successList = $.grep( this.successList, function( element ) {\n\t\t\t\t\treturn !( element.name in errors );\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif ( this.settings.showErrors ) {\n\t\t\t\tthis.settings.showErrors.call( this, this.errorMap, this.errorList );\n\t\t\t} else {\n\t\t\t\tthis.defaultShowErrors();\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.resetForm/\n\t\tresetForm: function() {\n\t\t\tif ( $.fn.resetForm ) {\n\t\t\t\t$( this.currentForm ).resetForm();\n\t\t\t}\n\t\t\tthis.invalid = {};\n\t\t\tthis.submitted = {};\n\t\t\tthis.prepareForm();\n\t\t\tthis.hideErrors();\n\t\t\tvar elements = this.elements()\n\t\t\t\t.removeData( \"previousValue\" )\n\t\t\t\t.removeAttr( \"aria-invalid\" );\n\n\t\t\tthis.resetElements( elements );\n\t\t},\n\n\t\tresetElements: function( elements ) {\n\t\t\tvar i;\n\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0; elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ],\n\t\t\t\t\t\tthis.settings.errorClass, \"\" );\n\t\t\t\t\tthis.findByName( elements[ i ].name ).removeClass( this.settings.validClass );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\telements\n\t\t\t\t\t.removeClass( this.settings.errorClass )\n\t\t\t\t\t.removeClass( this.settings.validClass );\n\t\t\t}\n\t\t},\n\n\t\tnumberOfInvalids: function() {\n\t\t\treturn this.objectLength( this.invalid );\n\t\t},\n\n\t\tobjectLength: function( obj ) {\n\t\t\t/* jshint unused: false */\n\t\t\tvar count = 0,\n\t\t\t\ti;\n\t\t\tfor ( i in obj ) {\n\n\t\t\t\t// This check allows counting elements with empty error\n\t\t\t\t// message as invalid elements\n\t\t\t\tif ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t},\n\n\t\thideErrors: function() {\n\t\t\tthis.hideThese( this.toHide );\n\t\t},\n\n\t\thideThese: function( errors ) {\n\t\t\terrors.not( this.containers ).text( \"\" );\n\t\t\tthis.addWrapper( errors ).hide();\n\t\t},\n\n\t\tvalid: function() {\n\t\t\treturn this.size() === 0;\n\t\t},\n\n\t\tsize: function() {\n\t\t\treturn this.errorList.length;\n\t\t},\n\n\t\tfocusInvalid: function() {\n\t\t\tif ( this.settings.focusInvalid ) {\n\t\t\t\ttry {\n\t\t\t\t\t$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )\n\t\t\t\t\t.filter( \":visible\" )\n\t\t\t\t\t.trigger( \"focus\" )\n\n\t\t\t\t\t// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find\n\t\t\t\t\t.trigger( \"focusin\" );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// Ignore IE throwing errors when focusing hidden elements\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tfindLastActive: function() {\n\t\t\tvar lastActive = this.lastActive;\n\t\t\treturn lastActive && $.grep( this.errorList, function( n ) {\n\t\t\t\treturn n.element.name === lastActive.name;\n\t\t\t} ).length === 1 && lastActive;\n\t\t},\n\n\t\telements: function() {\n\t\t\tvar validator = this,\n\t\t\t\trulesCache = {};\n\n\t\t\t// Select all valid inputs inside the form (no submit or reset buttons)\n\t\t\treturn $( this.currentForm )\n\t\t\t.find( \"input, select, textarea, [contenteditable]\" )\n\t\t\t.not( \":submit, :reset, :image, :disabled\" )\n\t\t\t.not( this.settings.ignore )\n\t\t\t.filter( function() {\n\t\t\t\tvar name = this.name || $( this ).attr( \"name\" ); // For contenteditable\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\n\n\t\t\t\tif ( !name && validator.settings.debug && window.console ) {\n\t\t\t\t\tconsole.error( \"%o has no name assigned\", this );\n\t\t\t\t}\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( isContentEditable ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = name;\n\t\t\t\t}\n\n\t\t\t\t// Ignore elements that belong to other/nested forms\n\t\t\t\tif ( this.form !== validator.currentForm ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Select only the first element for each name, and only those with rules specified\n\t\t\t\tif ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\trulesCache[ name ] = true;\n\t\t\t\treturn true;\n\t\t\t} );\n\t\t},\n\n\t\tclean: function( selector ) {\n\t\t\treturn $( selector )[ 0 ];\n\t\t},\n\n\t\terrors: function() {\n\t\t\tvar errorClass = this.settings.errorClass.split( \" \" ).join( \".\" );\n\t\t\treturn $( this.settings.errorElement + \".\" + errorClass, this.errorContext );\n\t\t},\n\n\t\tresetInternals: function() {\n\t\t\tthis.successList = [];\n\t\t\tthis.errorList = [];\n\t\t\tthis.errorMap = {};\n\t\t\tthis.toShow = $( [] );\n\t\t\tthis.toHide = $( [] );\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.resetInternals();\n\t\t\tthis.currentElements = $( [] );\n\t\t},\n\n\t\tprepareForm: function() {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errors().add( this.containers );\n\t\t},\n\n\t\tprepareElement: function( element ) {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errorsFor( element );\n\t\t},\n\n\t\telementValue: function( element ) {\n\t\t\tvar $element = $( element ),\n\t\t\t\ttype = element.type,\n\t\t\t\tisContentEditable = typeof $element.attr( \"contenteditable\" ) !== \"undefined\" && $element.attr( \"contenteditable\" ) !== \"false\",\n\t\t\t\tval, idx;\n\n\t\t\tif ( type === \"radio\" || type === \"checkbox\" ) {\n\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).val();\n\t\t\t} else if ( type === \"number\" && typeof element.validity !== \"undefined\" ) {\n\t\t\t\treturn element.validity.badInput ? \"NaN\" : $element.val();\n\t\t\t}\n\n\t\t\tif ( isContentEditable ) {\n\t\t\t\tval = $element.text();\n\t\t\t} else {\n\t\t\t\tval = $element.val();\n\t\t\t}\n\n\t\t\tif ( type === \"file\" ) {\n\n\t\t\t\t// Modern browser (chrome & safari)\n\t\t\t\tif ( val.substr( 0, 12 ) === \"C:\\\\fakepath\\\\\" ) {\n\t\t\t\t\treturn val.substr( 12 );\n\t\t\t\t}\n\n\t\t\t\t// Legacy browsers\n\t\t\t\t// Unix-based path\n\t\t\t\tidx = val.lastIndexOf( \"/\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Windows-based path\n\t\t\t\tidx = val.lastIndexOf( \"\\\\\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Just the file name\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\tif ( typeof val === \"string\" ) {\n\t\t\t\treturn val.replace( /\\r/g, \"\" );\n\t\t\t}\n\t\t\treturn val;\n\t\t},\n\n\t\tcheck: function( element ) {\n\t\t\telement = this.validationTargetFor( this.clean( element ) );\n\n\t\t\tvar rules = $( element ).rules(),\n\t\t\t\trulesCount = $.map( rules, function( n, i ) {\n\t\t\t\t\treturn i;\n\t\t\t\t} ).length,\n\t\t\t\tdependencyMismatch = false,\n\t\t\t\tval = this.elementValue( element ),\n\t\t\t\tresult, method, rule, normalizer;\n\n\t\t\t// Prioritize the local normalizer defined for this element over the global one\n\t\t\t// if the former exists, otherwise user the global one in case it exists.\n\t\t\tif ( typeof rules.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = rules.normalizer;\n\t\t\t} else if (\ttypeof this.settings.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = this.settings.normalizer;\n\t\t\t}\n\n\t\t\t// If normalizer is defined, then call it to retreive the changed value instead\n\t\t\t// of using the real one.\n\t\t\t// Note that `this` in the normalizer is `element`.\n\t\t\tif ( normalizer ) {\n\t\t\t\tval = normalizer.call( element, val );\n\n\t\t\t\t// Delete the normalizer from rules to avoid treating it as a pre-defined method.\n\t\t\t\tdelete rules.normalizer;\n\t\t\t}\n\n\t\t\tfor ( method in rules ) {\n\t\t\t\trule = { method: method, parameters: rules[ method ] };\n\t\t\t\ttry {\n\t\t\t\t\tresult = $.validator.methods[ method ].call( this, val, element, rule.parameters );\n\n\t\t\t\t\t// If a method indicates that the field is optional and therefore valid,\n\t\t\t\t\t// don't mark it as valid when there are no other rules\n\t\t\t\t\tif ( result === \"dependency-mismatch\" && rulesCount === 1 ) {\n\t\t\t\t\t\tdependencyMismatch = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdependencyMismatch = false;\n\n\t\t\t\t\tif ( result === \"pending\" ) {\n\t\t\t\t\t\tthis.toHide = this.toHide.not( this.errorsFor( element ) );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !result ) {\n\t\t\t\t\t\tthis.formatAndAdd( element, rule );\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.log( \"Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\", e );\n\t\t\t\t\t}\n\t\t\t\t\tif ( e instanceof TypeError ) {\n\t\t\t\t\t\te.message += \". Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\";\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dependencyMismatch ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( this.objectLength( rules ) ) {\n\t\t\t\tthis.successList.push( element );\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t// Return the custom message for the given element and validation method\n\t\t// specified in the element's HTML5 data attribute\n\t\t// return the generic message if present and no method specific message is present\n\t\tcustomDataMessage: function( element, method ) {\n\t\t\treturn $( element ).data( \"msg\" + method.charAt( 0 ).toUpperCase() +\n\t\t\t\tmethod.substring( 1 ).toLowerCase() ) || $( element ).data( \"msg\" );\n\t\t},\n\n\t\t// Return the custom message for the given element name and validation method\n\t\tcustomMessage: function( name, method ) {\n\t\t\tvar m = this.settings.messages[ name ];\n\t\t\treturn m && ( m.constructor === String ? m : m[ method ] );\n\t\t},\n\n\t\t// Return the first defined argument, allowing empty strings\n\t\tfindDefined: function() {\n\t\t\tfor ( var i = 0; i < arguments.length; i++ ) {\n\t\t\t\tif ( arguments[ i ] !== undefined ) {\n\t\t\t\t\treturn arguments[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\n\t\t// The second parameter 'rule' used to be a string, and extended to an object literal\n\t\t// of the following form:\n\t\t// rule = {\n\t\t// method: \"method name\",\n\t\t// parameters: \"the given method parameters\"\n\t\t// }\n\t\t//\n\t\t// The old behavior still supported, kept to maintain backward compatibility with\n\t\t// old code, and will be removed in the next major release.\n\t\tdefaultMessage: function( element, rule ) {\n\t\t\tif ( typeof rule === \"string\" ) {\n\t\t\t\trule = { method: rule };\n\t\t\t}\n\n\t\t\tvar message = this.findDefined(\n\t\t\t\t\tthis.customMessage( element.name, rule.method ),\n\t\t\t\t\tthis.customDataMessage( element, rule.method ),\n\n\t\t\t\t\t// 'title' is never undefined, so handle empty string as undefined\n\t\t\t\t\t!this.settings.ignoreTitle && element.title || undefined,\n\t\t\t\t\t$.validator.messages[ rule.method ],\n\t\t\t\t\t\"Warning: No message defined for \" + element.name + \"\"\n\t\t\t\t),\n\t\t\t\ttheregex = /\\$?\\{(\\d+)\\}/g;\n\t\t\tif ( typeof message === \"function\" ) {\n\t\t\t\tmessage = message.call( this, rule.parameters, element );\n\t\t\t} else if ( theregex.test( message ) ) {\n\t\t\t\tmessage = $.validator.format( message.replace( theregex, \"{$1}\" ), rule.parameters );\n\t\t\t}\n\n\t\t\treturn message;\n\t\t},\n\n\t\tformatAndAdd: function( element, rule ) {\n\t\t\tvar message = this.defaultMessage( element, rule );\n\n\t\t\tthis.errorList.push( {\n\t\t\t\tmessage: message,\n\t\t\t\telement: element,\n\t\t\t\tmethod: rule.method\n\t\t\t} );\n\n\t\t\tthis.errorMap[ element.name ] = message;\n\t\t\tthis.submitted[ element.name ] = message;\n\t\t},\n\n\t\taddWrapper: function( toToggle ) {\n\t\t\tif ( this.settings.wrapper ) {\n\t\t\t\ttoToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );\n\t\t\t}\n\t\t\treturn toToggle;\n\t\t},\n\n\t\tdefaultShowErrors: function() {\n\t\t\tvar i, elements, error;\n\t\t\tfor ( i = 0; this.errorList[ i ]; i++ ) {\n\t\t\t\terror = this.errorList[ i ];\n\t\t\t\tif ( this.settings.highlight ) {\n\t\t\t\t\tthis.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.showLabel( error.element, error.message );\n\t\t\t}\n\t\t\tif ( this.errorList.length ) {\n\t\t\t\tthis.toShow = this.toShow.add( this.containers );\n\t\t\t}\n\t\t\tif ( this.settings.success ) {\n\t\t\t\tfor ( i = 0; this.successList[ i ]; i++ ) {\n\t\t\t\t\tthis.showLabel( this.successList[ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toHide = this.toHide.not( this.toShow );\n\t\t\tthis.hideErrors();\n\t\t\tthis.addWrapper( this.toShow ).show();\n\t\t},\n\n\t\tvalidElements: function() {\n\t\t\treturn this.currentElements.not( this.invalidElements() );\n\t\t},\n\n\t\tinvalidElements: function() {\n\t\t\treturn $( this.errorList ).map( function() {\n\t\t\t\treturn this.element;\n\t\t\t} );\n\t\t},\n\n\t\tshowLabel: function( element, message ) {\n\t\t\tvar place, group, errorID, v,\n\t\t\t\terror = this.errorsFor( element ),\n\t\t\t\telementID = this.idOrName( element ),\n\t\t\t\tdescribedBy = $( element ).attr( \"aria-describedby\" );\n\n\t\t\tif ( error.length ) {\n\n\t\t\t\t// Refresh error/success class\n\t\t\t\terror.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );\n\n\t\t\t\t// Replace message on existing label\n\t\t\t\terror.html( message );\n\t\t\t} else {\n\n\t\t\t\t// Create error element\n\t\t\t\terror = $( \"<\" + this.settings.errorElement + \">\" )\n\t\t\t\t\t.attr( \"id\", elementID + \"-error\" )\n\t\t\t\t\t.addClass( this.settings.errorClass )\n\t\t\t\t\t.html( message || \"\" );\n\n\t\t\t\t// Maintain reference to the element to be placed into the DOM\n\t\t\t\tplace = error;\n\t\t\t\tif ( this.settings.wrapper ) {\n\n\t\t\t\t\t// Make sure the element is visible, even in IE\n\t\t\t\t\t// actually showing the wrapped element is handled elsewhere\n\t\t\t\t\tplace = error.hide().show().wrap( \"<\" + this.settings.wrapper + \"/>\" ).parent();\n\t\t\t\t}\n\t\t\t\tif ( this.labelContainer.length ) {\n\t\t\t\t\tthis.labelContainer.append( place );\n\t\t\t\t} else if ( this.settings.errorPlacement ) {\n\t\t\t\t\tthis.settings.errorPlacement.call( this, place, $( element ) );\n\t\t\t\t} else {\n\t\t\t\t\tplace.insertAfter( element );\n\t\t\t\t}\n\n\t\t\t\t// Link error back to the element\n\t\t\t\tif ( error.is( \"label\" ) ) {\n\n\t\t\t\t\t// If the error is a label, then associate using 'for'\n\t\t\t\t\terror.attr( \"for\", elementID );\n\n\t\t\t\t\t// If the element is not a child of an associated label, then it's necessary\n\t\t\t\t\t// to explicitly apply aria-describedby\n\t\t\t\t} else if ( error.parents( \"label[for='\" + this.escapeCssMeta( elementID ) + \"']\" ).length === 0 ) {\n\t\t\t\t\terrorID = error.attr( \"id\" );\n\n\t\t\t\t\t// Respect existing non-error aria-describedby\n\t\t\t\t\tif ( !describedBy ) {\n\t\t\t\t\t\tdescribedBy = errorID;\n\t\t\t\t\t} else if ( !describedBy.match( new RegExp( \"\\\\b\" + this.escapeCssMeta( errorID ) + \"\\\\b\" ) ) ) {\n\n\t\t\t\t\t\t// Add to end of list if not already present\n\t\t\t\t\t\tdescribedBy += \" \" + errorID;\n\t\t\t\t\t}\n\t\t\t\t\t$( element ).attr( \"aria-describedby\", describedBy );\n\n\t\t\t\t\t// If this element is grouped, then assign to all elements in the same group\n\t\t\t\t\tgroup = this.groups[ element.name ];\n\t\t\t\t\tif ( group ) {\n\t\t\t\t\t\tv = this;\n\t\t\t\t\t\t$.each( v.groups, function( name, testgroup ) {\n\t\t\t\t\t\t\tif ( testgroup === group ) {\n\t\t\t\t\t\t\t\t$( \"[name='\" + v.escapeCssMeta( name ) + \"']\", v.currentForm )\n\t\t\t\t\t\t\t\t\t.attr( \"aria-describedby\", error.attr( \"id\" ) );\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\tif ( !message && this.settings.success ) {\n\t\t\t\terror.text( \"\" );\n\t\t\t\tif ( typeof this.settings.success === \"string\" ) {\n\t\t\t\t\terror.addClass( this.settings.success );\n\t\t\t\t} else {\n\t\t\t\t\tthis.settings.success( error, element );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toShow = this.toShow.add( error );\n\t\t},\n\n\t\terrorsFor: function( element ) {\n\t\t\tvar name = this.escapeCssMeta( this.idOrName( element ) ),\n\t\t\t\tdescriber = $( element ).attr( \"aria-describedby\" ),\n\t\t\t\tselector = \"label[for='\" + name + \"'], label[for='\" + name + \"'] *\";\n\n\t\t\t// 'aria-describedby' should directly reference the error element\n\t\t\tif ( describer ) {\n\t\t\t\tselector = selector + \", #\" + this.escapeCssMeta( describer )\n\t\t\t\t\t.replace( /\\s+/g, \", #\" );\n\t\t\t}\n\n\t\t\treturn this\n\t\t\t\t.errors()\n\t\t\t\t.filter( selector );\n\t\t},\n\n\t\t// See https://api.jquery.com/category/selectors/, for CSS\n\t\t// meta-characters that should be escaped in order to be used with JQuery\n\t\t// as a literal part of a name/id or any selector.\n\t\tescapeCssMeta: function( string ) {\n\t\t\treturn string.replace( /([\\\\!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])/g, \"\\\\$1\" );\n\t\t},\n\n\t\tidOrName: function( element ) {\n\t\t\treturn this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );\n\t\t},\n\n\t\tvalidationTargetFor: function( element ) {\n\n\t\t\t// If radio/checkbox, validate first element in group instead\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\telement = this.findByName( element.name );\n\t\t\t}\n\n\t\t\t// Always apply ignore filter\n\t\t\treturn $( element ).not( this.settings.ignore )[ 0 ];\n\t\t},\n\n\t\tcheckable: function( element ) {\n\t\t\treturn ( /radio|checkbox/i ).test( element.type );\n\t\t},\n\n\t\tfindByName: function( name ) {\n\t\t\treturn $( this.currentForm ).find( \"[name='\" + this.escapeCssMeta( name ) + \"']\" );\n\t\t},\n\n\t\tgetLength: function( value, element ) {\n\t\t\tswitch ( element.nodeName.toLowerCase() ) {\n\t\t\tcase \"select\":\n\t\t\t\treturn $( \"option:selected\", element ).length;\n\t\t\tcase \"input\":\n\t\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).length;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value.length;\n\t\t},\n\n\t\tdepend: function( param, element ) {\n\t\t\treturn this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;\n\t\t},\n\n\t\tdependTypes: {\n\t\t\t\"boolean\": function( param ) {\n\t\t\t\treturn param;\n\t\t\t},\n\t\t\t\"string\": function( param, element ) {\n\t\t\t\treturn !!$( param, element.form ).length;\n\t\t\t},\n\t\t\t\"function\": function( param, element ) {\n\t\t\t\treturn param( element );\n\t\t\t}\n\t\t},\n\n\t\toptional: function( element ) {\n\t\t\tvar val = this.elementValue( element );\n\t\t\treturn !$.validator.methods.required.call( this, val, element ) && \"dependency-mismatch\";\n\t\t},\n\n\t\tstartRequest: function( element ) {\n\t\t\tif ( !this.pending[ element.name ] ) {\n\t\t\t\tthis.pendingRequest++;\n\t\t\t\t$( element ).addClass( this.settings.pendingClass );\n\t\t\t\tthis.pending[ element.name ] = true;\n\t\t\t}\n\t\t},\n\n\t\tstopRequest: function( element, valid ) {\n\t\t\tthis.pendingRequest--;\n\n\t\t\t// Sometimes synchronization fails, make sure pendingRequest is never < 0\n\t\t\tif ( this.pendingRequest < 0 ) {\n\t\t\t\tthis.pendingRequest = 0;\n\t\t\t}\n\t\t\tdelete this.pending[ element.name ];\n\t\t\t$( element ).removeClass( this.settings.pendingClass );\n\t\t\tif ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) {\n\t\t\t\t$( this.currentForm ).submit();\n\n\t\t\t\t// Remove the hidden input that was used as a replacement for the\n\t\t\t\t// missing submit button. The hidden input is added by `handle()`\n\t\t\t\t// to ensure that the value of the used submit button is passed on\n\t\t\t\t// for scripted submits triggered by this method\n\t\t\t\tif ( this.submitButton ) {\n\t\t\t\t\t$( \"input:hidden[name='\" + this.submitButton.name + \"']\", this.currentForm ).remove();\n\t\t\t\t}\n\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t}\n\t\t},\n\n\t\tpreviousValue: function( element, method ) {\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\treturn $.data( element, \"previousValue\" ) || $.data( element, \"previousValue\", {\n\t\t\t\told: null,\n\t\t\t\tvalid: true,\n\t\t\t\tmessage: this.defaultMessage( element, { method: method } )\n\t\t\t} );\n\t\t},\n\n\t\t// Cleans up all forms and elements, removes validator-specific events\n\t\tdestroy: function() {\n\t\t\tthis.resetForm();\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.off( \".validate\" )\n\t\t\t\t.removeData( \"validator\" )\n\t\t\t\t.find( \".validate-equalTo-blur\" )\n\t\t\t\t\t.off( \".validate-equalTo\" )\n\t\t\t\t\t.removeClass( \"validate-equalTo-blur\" )\n\t\t\t\t.find( \".validate-lessThan-blur\" )\n\t\t\t\t\t.off( \".validate-lessThan\" )\n\t\t\t\t\t.removeClass( \"validate-lessThan-blur\" )\n\t\t\t\t.find( \".validate-lessThanEqual-blur\" )\n\t\t\t\t\t.off( \".validate-lessThanEqual\" )\n\t\t\t\t\t.removeClass( \"validate-lessThanEqual-blur\" )\n\t\t\t\t.find( \".validate-greaterThanEqual-blur\" )\n\t\t\t\t\t.off( \".validate-greaterThanEqual\" )\n\t\t\t\t\t.removeClass( \"validate-greaterThanEqual-blur\" )\n\t\t\t\t.find( \".validate-greaterThan-blur\" )\n\t\t\t\t\t.off( \".validate-greaterThan\" )\n\t\t\t\t\t.removeClass( \"validate-greaterThan-blur\" );\n\t\t}\n\n\t},\n\n\tclassRuleSettings: {\n\t\trequired: { required: true },\n\t\temail: { email: true },\n\t\turl: { url: true },\n\t\tdate: { date: true },\n\t\tdateISO: { dateISO: true },\n\t\tnumber: { number: true },\n\t\tdigits: { digits: true },\n\t\tcreditcard: { creditcard: true }\n\t},\n\n\taddClassRules: function( className, rules ) {\n\t\tif ( className.constructor === String ) {\n\t\t\tthis.classRuleSettings[ className ] = rules;\n\t\t} else {\n\t\t\t$.extend( this.classRuleSettings, className );\n\t\t}\n\t},\n\n\tclassRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tclasses = $( element ).attr( \"class\" );\n\n\t\tif ( classes ) {\n\t\t\t$.each( classes.split( \" \" ), function() {\n\t\t\t\tif ( this in $.validator.classRuleSettings ) {\n\t\t\t\t\t$.extend( rules, $.validator.classRuleSettings[ this ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeAttributeRule: function( rules, type, method, value ) {\n\n\t\t// Convert the value to a number for number inputs, and for text for backwards compability\n\t\t// allows type=\"date\" and others to be compared as strings\n\t\tif ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {\n\t\t\tvalue = Number( value );\n\n\t\t\t// Support Opera Mini, which returns NaN for undefined minlength\n\t\t\tif ( isNaN( value ) ) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\tif ( value || value === 0 ) {\n\t\t\trules[ method ] = value;\n\t\t} else if ( type === method && type !== \"range\" ) {\n\n\t\t\t// Exception: the jquery validate 'range' method\n\t\t\t// does not test for the html5 'range' type\n\t\t\trules[ method ] = true;\n\t\t}\n\t},\n\n\tattributeRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\n\t\t\t// Support for in both html5 and older browsers\n\t\t\tif ( method === \"required\" ) {\n\t\t\t\tvalue = element.getAttribute( method );\n\n\t\t\t\t// Some browsers return an empty string for the required attribute\n\t\t\t\t// and non-HTML5 browsers might have required=\"\" markup\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\tvalue = true;\n\t\t\t\t}\n\n\t\t\t\t// Force non-HTML5 browsers to return bool\n\t\t\t\tvalue = !!value;\n\t\t\t} else {\n\t\t\t\tvalue = $element.attr( method );\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\n\t\t// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs\n\t\tif ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {\n\t\t\tdelete rules.maxlength;\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\tdataRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\t\t\tvalue = $element.data( \"rule\" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );\n\n\t\t\t// Cast empty attributes like `data-rule-required` to `true`\n\t\t\tif ( value === \"\" ) {\n\t\t\t\tvalue = true;\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tstaticRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tvalidator = $.data( element.form, \"validator\" );\n\n\t\tif ( validator.settings.rules ) {\n\t\t\trules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeRules: function( rules, element ) {\n\n\t\t// Handle dependency check\n\t\t$.each( rules, function( prop, val ) {\n\n\t\t\t// Ignore rule when param is explicitly false, eg. required:false\n\t\t\tif ( val === false ) {\n\t\t\t\tdelete rules[ prop ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( val.param || val.depends ) {\n\t\t\t\tvar keepRule = true;\n\t\t\t\tswitch ( typeof val.depends ) {\n\t\t\t\tcase \"string\":\n\t\t\t\t\tkeepRule = !!$( val.depends, element.form ).length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"function\":\n\t\t\t\t\tkeepRule = val.depends.call( element, element );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( keepRule ) {\n\t\t\t\t\trules[ prop ] = val.param !== undefined ? val.param : true;\n\t\t\t\t} else {\n\t\t\t\t\t$.data( element.form, \"validator\" ).resetElements( $( element ) );\n\t\t\t\t\tdelete rules[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Evaluate parameters\n\t\t$.each( rules, function( rule, parameter ) {\n\t\t\trules[ rule ] = typeof parameter === \"function\" && rule !== \"normalizer\" ? parameter( element ) : parameter;\n\t\t} );\n\n\t\t// Clean number parameters\n\t\t$.each( [ \"minlength\", \"maxlength\" ], function() {\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\trules[ this ] = Number( rules[ this ] );\n\t\t\t}\n\t\t} );\n\t\t$.each( [ \"rangelength\", \"range\" ], function() {\n\t\t\tvar parts;\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\tif ( Array.isArray( rules[ this ] ) ) {\n\t\t\t\t\trules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];\n\t\t\t\t} else if ( typeof rules[ this ] === \"string\" ) {\n\t\t\t\t\tparts = rules[ this ].replace( /[\\[\\]]/g, \"\" ).split( /[\\s,]+/ );\n\t\t\t\t\trules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tif ( $.validator.autoCreateRanges ) {\n\n\t\t\t// Auto-create ranges\n\t\t\tif ( rules.min != null && rules.max != null ) {\n\t\t\t\trules.range = [ rules.min, rules.max ];\n\t\t\t\tdelete rules.min;\n\t\t\t\tdelete rules.max;\n\t\t\t}\n\t\t\tif ( rules.minlength != null && rules.maxlength != null ) {\n\t\t\t\trules.rangelength = [ rules.minlength, rules.maxlength ];\n\t\t\t\tdelete rules.minlength;\n\t\t\t\tdelete rules.maxlength;\n\t\t\t}\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\t// Converts a simple string to a {string: true} rule, e.g., \"required\" to {required:true}\n\tnormalizeRule: function( data ) {\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tvar transformed = {};\n\t\t\t$.each( data.split( /\\s/ ), function() {\n\t\t\t\ttransformed[ this ] = true;\n\t\t\t} );\n\t\t\tdata = transformed;\n\t\t}\n\t\treturn data;\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.addMethod/\n\taddMethod: function( name, method, message ) {\n\t\t$.validator.methods[ name ] = method;\n\t\t$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];\n\t\tif ( method.length < 3 ) {\n\t\t\t$.validator.addClassRules( name, $.validator.normalizeRule( name ) );\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.methods/\n\tmethods: {\n\n\t\t// https://jqueryvalidation.org/required-method/\n\t\trequired: function( value, element, param ) {\n\n\t\t\t// Check if dependency is met\n\t\t\tif ( !this.depend( param, element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\t\t\tif ( element.nodeName.toLowerCase() === \"select\" ) {\n\n\t\t\t\t// Could be an array for select-multiple or a string, both are fine this way\n\t\t\t\tvar val = $( element ).val();\n\t\t\t\treturn val && val.length > 0;\n\t\t\t}\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\treturn this.getLength( value, element ) > 0;\n\t\t\t}\n\t\t\treturn value !== undefined && value !== null && value.length > 0;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/email-method/\n\t\temail: function( value, element ) {\n\n\t\t\t// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address\n\t\t\t// Retrieved 2014-01-14\n\t\t\t// If you have a problem with this implementation, report a bug against the above spec\n\t\t\t// Or use custom methods to implement your own email validation\n\t\t\treturn this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/url-method/\n\t\turl: function( value, element ) {\n\n\t\t\t// Copyright (c) 2010-2013 Diego Perini, MIT licensed\n\t\t\t// https://gist.github.com/dperini/729294\n\t\t\t// see also https://mathiasbynens.be/demo/url-regex\n\t\t\t// modified to allow protocol-relative URLs\n\t\t\treturn this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:\\S+(?::\\S*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/date-method/\n\t\tdate: ( function() {\n\t\t\tvar called = false;\n\n\t\t\treturn function( value, element ) {\n\t\t\t\tif ( !called ) {\n\t\t\t\t\tcalled = true;\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"The `date` method is deprecated and will be removed in version '2.0.0'.\\n\" +\n\t\t\t\t\t\t\t\"Please don't use it, since it relies on the Date constructor, which\\n\" +\n\t\t\t\t\t\t\t\"behaves very differently across browsers and locales. Use `dateISO`\\n\" +\n\t\t\t\t\t\t\t\"instead or one of the locale specific methods in `localizations/`\\n\" +\n\t\t\t\t\t\t\t\"and `additional-methods.js`.\"\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );\n\t\t\t};\n\t\t}() ),\n\n\t\t// https://jqueryvalidation.org/dateISO-method/\n\t\tdateISO: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/number-method/\n\t\tnumber: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/digits-method/\n\t\tdigits: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d+$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/minlength-method/\n\t\tminlength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/maxlength-method/\n\t\tmaxlength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/rangelength-method/\n\t\trangelength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/min-method/\n\t\tmin: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/max-method/\n\t\tmax: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/range-method/\n\t\trange: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/step-method/\n\t\tstep: function( value, element, param ) {\n\t\t\tvar type = $( element ).attr( \"type\" ),\n\t\t\t\terrorMessage = \"Step attribute on input type \" + type + \" is not supported.\",\n\t\t\t\tsupportedTypes = [ \"text\", \"number\", \"range\" ],\n\t\t\t\tre = new RegExp( \"\\\\b\" + type + \"\\\\b\" ),\n\t\t\t\tnotSupported = type && !re.test( supportedTypes.join() ),\n\t\t\t\tdecimalPlaces = function( num ) {\n\t\t\t\t\tvar match = ( \"\" + num ).match( /(?:\\.(\\d+))?$/ );\n\t\t\t\t\tif ( !match ) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Number of digits right of decimal point.\n\t\t\t\t\treturn match[ 1 ] ? match[ 1 ].length : 0;\n\t\t\t\t},\n\t\t\t\ttoInt = function( num ) {\n\t\t\t\t\treturn Math.round( num * Math.pow( 10, decimals ) );\n\t\t\t\t},\n\t\t\t\tvalid = true,\n\t\t\t\tdecimals;\n\n\t\t\t// Works only for text, number and range input types\n\t\t\t// TODO find a way to support input types date, datetime, datetime-local, month, time and week\n\t\t\tif ( notSupported ) {\n\t\t\t\tthrow new Error( errorMessage );\n\t\t\t}\n\n\t\t\tdecimals = decimalPlaces( param );\n\n\t\t\t// Value can't have too many decimals\n\t\t\tif ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) {\n\t\t\t\tvalid = false;\n\t\t\t}\n\n\t\t\treturn this.optional( element ) || valid;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/equalTo-method/\n\t\tequalTo: function( value, element, param ) {\n\n\t\t\t// Bind to the blur event of the target in order to revalidate whenever the target field is updated\n\t\t\tvar target = $( param );\n\t\t\tif ( this.settings.onfocusout && target.not( \".validate-equalTo-blur\" ).length ) {\n\t\t\t\ttarget.addClass( \"validate-equalTo-blur\" ).on( \"blur.validate-equalTo\", function() {\n\t\t\t\t\t$( element ).valid();\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn value === target.val();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/remote-method/\n\t\tremote: function( value, element, param, method ) {\n\t\t\tif ( this.optional( element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\tvar previous = this.previousValue( element, method ),\n\t\t\t\tvalidator, data, optionDataString;\n\n\t\t\tif ( !this.settings.messages[ element.name ] ) {\n\t\t\t\tthis.settings.messages[ element.name ] = {};\n\t\t\t}\n\t\t\tprevious.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];\n\t\t\tthis.settings.messages[ element.name ][ method ] = previous.message;\n\n\t\t\tparam = typeof param === \"string\" && { url: param } || param;\n\t\t\toptionDataString = $.param( $.extend( { data: value }, param.data ) );\n\t\t\tif ( previous.old === optionDataString ) {\n\t\t\t\treturn previous.valid;\n\t\t\t}\n\n\t\t\tprevious.old = optionDataString;\n\t\t\tvalidator = this;\n\t\t\tthis.startRequest( element );\n\t\t\tdata = {};\n\t\t\tdata[ element.name ] = value;\n\t\t\t$.ajax( $.extend( true, {\n\t\t\t\tmode: \"abort\",\n\t\t\t\tport: \"validate\" + element.name,\n\t\t\t\tdataType: \"json\",\n\t\t\t\tdata: data,\n\t\t\t\tcontext: validator.currentForm,\n\t\t\t\tsuccess: function( response ) {\n\t\t\t\t\tvar valid = response === true || response === \"true\",\n\t\t\t\t\t\terrors, message, submitted;\n\n\t\t\t\t\tvalidator.settings.messages[ element.name ][ method ] = previous.originalMessage;\n\t\t\t\t\tif ( valid ) {\n\t\t\t\t\t\tsubmitted = validator.formSubmitted;\n\t\t\t\t\t\tvalidator.resetInternals();\n\t\t\t\t\t\tvalidator.toHide = validator.errorsFor( element );\n\t\t\t\t\t\tvalidator.formSubmitted = submitted;\n\t\t\t\t\t\tvalidator.successList.push( element );\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = false;\n\t\t\t\t\t\tvalidator.showErrors();\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrors = {};\n\t\t\t\t\t\tmessage = response || validator.defaultMessage( element, { method: method, parameters: value } );\n\t\t\t\t\t\terrors[ element.name ] = previous.message = message;\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = true;\n\t\t\t\t\t\tvalidator.showErrors( errors );\n\t\t\t\t\t}\n\t\t\t\t\tprevious.valid = valid;\n\t\t\t\t\tvalidator.stopRequest( element, valid );\n\t\t\t\t}\n\t\t\t}, param ) );\n\t\t\treturn \"pending\";\n\t\t}\n\t}\n\n} );\n\r\n// Ajax mode: abort\n// usage: $.ajax({ mode: \"abort\"[, port: \"uniqueport\"]});\n// if mode:\"abort\" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()\n\nvar pendingRequests = {},\n\tajax;\n\n// Use a prefilter if available (1.5+)\nif ( $.ajaxPrefilter ) {\n\t$.ajaxPrefilter( function( settings, _, xhr ) {\n\t\tvar port = settings.port;\n\t\tif ( settings.mode === \"abort\" ) {\n\t\t\tif ( pendingRequests[ port ] ) {\n\t\t\t\tpendingRequests[ port ].abort();\n\t\t\t}\n\t\t\tpendingRequests[ port ] = xhr;\n\t\t}\n\t} );\n} else {\n\n\t// Proxy ajax\n\tajax = $.ajax;\n\t$.ajax = function( settings ) {\n\t\tvar mode = ( \"mode\" in settings ? settings : $.ajaxSettings ).mode,\n\t\t\tport = ( \"port\" in settings ? settings : $.ajaxSettings ).port;\n\t\tif ( mode === \"abort\" ) {\n\t\t\tif ( pendingRequests[ port ] ) {\n\t\t\t\tpendingRequests[ port ].abort();\n\t\t\t}\n\t\t\tpendingRequests[ port ] = ajax.apply( this, arguments );\n\t\t\treturn pendingRequests[ port ];\n\t\t}\n\t\treturn ajax.apply( this, arguments );\n\t};\n}\nreturn $;\r\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 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 = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\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 to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the 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 = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces \";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting or other required elements.\n\tthead: [ 1, \"\", \"
\" ],\n\tcol: [ 2, \"\", \"
\" ],\n\ttr: [ 2, \"\", \"
\" ],\n\ttd: [ 3, \"\", \"
\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar 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 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 = /\\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( \"