{"version":3,"sources":["jquery.js"],"names":["global","factory","module","exports","document","w","window","this","noGlobal","DOMEval","code","node","doc","i","preservedScriptAttributes","val","script","createElement","text","getAttribute","toType","head","appendChild","parentNode","removeChild","obj","class2type","toString","call","isFunction","Sizzle","type","isWindow","length","nodeName","elem","name","toLowerCase","winnow","constructor","qualifier","find","jQuery","grep","elements","not","nodeType","indexOf","prototype","filter","sibling","cur","dir","locked","createOptions","options","lock","queue","match","rnothtmlwhite","_","flag","object","memory","Identity","v","process","Thrower","ex","stackTrace","resolve","Deferred","noValue","method","value","promise","newDefer","reject","apply","undefined","slice","tuples","completed","removeEventListener","hasData","fcamelCase","_all","letter","toUpperCase","string","attrs","attributes","replace","rdashAlpha","dataAttr","expando","data","dataPriv","tmp","empty","JSON","parse","pnum","key","documentElement","contains","ownerDocument","composed","e","dataUser","set","nodes","context","createTextNode","tween","adjusted","scale","maxIterations","currentValue","tag","wrap","wrapMap","initial","unit","valueParts","cssNumber","prop","lastChild","rcssNum","exec","css","initialInUnit","firstChild","textContent","style","j","rscriptType","scripts","push","rtypenamespace","temp","returnTrue","display","defaultDisplayMap","body","expectSync","showHide","safeActiveElement","show","values","index","origFn","selector","types","on","isHiddenWithinTree","getDefaultDisplay","fn","returnFalse","namespaces","ret","getElementsByTagName","querySelectorAll","handleObj","extend","namespace","refElements","handleObjIn","l","elems","handlers","get","buildFragment","selection","ignored","special","add","attached","createDocumentFragment","event","rhtml","test","origCount","fragment","rtagName","_default","htmlPrefilter","origType","elemData","merge","childNodes","t","remove","delegateType","bindType","splice","setGlobalEval","dispatch","args","activeElement","one","delegateTarget","preDispatch","matched","currentTarget","postDispatch","off","matchedHandlers","arguments","guid","target","each","delegateCount","leverageNative","el","handler","notAsync","result","saved","stopPropagation","rnoInnerhtml","stopImmediatePropagation","rchecked","preventDefault","children","removeAttribute","trigger","Event","dest","pdataOld","manipulationTarget","content","disableScript","insertBefore","restoreScript","after","domManip","src","udataOld","udataCur","events","clone","dataAndEvents","deepDataAndEvents","access","html","fixInput","innerHTML","rcheckableType","checked","defaultValue","callback","flat","first","hasScripts","collection","iNoClone","valueIsFunction","support","self","eq","replaceWith","cleanData","getAll","parent","insertAfter","map","replaceAll","last","pushStack","rnumnonpx","RegExp","view","opener","_evalUrl","noModule","getComputedStyle","nonce","rcleanScript","keepData","isAttached","computeStyleTests","curCSS","computed","width","minWidth","maxWidth","getStyles","getPropertyValue","isCustomProp","finalPropName","origName","pixelBoxStyles","rboxStyle","adjustCSS","addGetHookIf","conditionFn","hookFn","hooks","capName","cssPrefixes","vendorProps","final","vendorPropName","setPositiveNumber","extra","subtract","matches","Math","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","getClientRects","delta","getWidthOrHeight","scrollboxSizeBuggy","scrollboxSize","boxSizingNeeded","cssExpand","parseFloat","getBoundingClientRect","left","ceil","prefix","suffix","cssHooks","expand","boxSizingReliable","valueIsBorderBox","len","offsetProp","reliableTrDimensions","easing","eased","Tween","end","init","schedule","inProgress","hidden","requestAnimationFrame","setTimeout","fx","interval","createFxNow","fxNow","Date","now","animation","opts","start","which","height","anim","includeWidth","tweeners","opacity","tweener","Animation","concat","props","oldfire","propTween","restoreDisplay","isBox","dataShow","prefilters","_queueHooks","prefilter","unqueued","prepend","unshift","fire","speed","complete","always","opt","duration","rfxtypes","toggle","orig","isEmptyObject","overflow","overflowX","overflowY","doAnimation","stop","gotoEnd","clearQueue","stopQueue","timers","dequeue","finish","createTween","camelCase","Array","isArray","slideDown","genFx","slideUp","fadeToggle","specialEasing","animate","properties","stopped","timer","deferred","tick","currentTime","startTime","tweens","run","percent","notifyWith","remaining","speeds","resolveWith","time","originalProperties","originalOptions","clearTimeout","input","optSelected","selected","radioValue","rejectWith","attrHandle","attr","removeAttr","propFilter","bind","nType","progress","done","fail","stripAndCollapse","rfocusMorph","shift","buildParams","traditional","accepts","json","rbracket","xml","responseFields","responseHeaders","func","dataTypeExpression","dataType","dataTypes","setRequestHeader","requestHeaders","structure","inspectPrefiltersOrTransports","jqXHR","inspect","inspected","statusCode","prefilterOrFactory","dataTypeOrTransport","seekingTransport","finalText","statusText","abort","transports","ajaxExtend","deep","flatOptions","ajaxSettings","s","urlAnchor","ajaxHandleResponses","responses","ct","finalDataType","firstDataType","href","crossDomain","mimeType","getResponseHeader","contents","fireGlobals","active","ajaxConvert","response","isSuccess","conv2","current","conv","prev","converters","uncached","url","cacheURL","ifModified","dataFilter","completeDeferred","split","transport","throws","state","error","arr","getProto","getPrototypeOf","array","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","Object","jquery","num","toArray","prevObject","even","_elem","odd","sort","copy","copyIsArray","isPlainObject","random","isReady","proto","msg","Error","noop","Ctor","globalEval","isArrayLike","makeArray","results","inArray","second","callbackInverse","invert","callbackExpect","arg","Symbol","iterator","_i","sortInput","seed","m","documentIsHTML","groups","newSelector","newContext","rquickExpr","getElementById","id","qsa","nonnativeSelectorCache","getElementsByClassName","rbuggyQSA","setAttribute","nid","rdescend","rcombinators","qsaError","testContext","scope","rcssescape","fcssescape","tokenize","toSelector","join","Expr","cache","rtrim","keys","cacheLength","markFunction","assert","addHandle","siblingCheck","a","b","diff","sourceIndex","nextSibling","createDisabledPseudo","disabled","isDisabled","createPositionalPseudo","matchIndexes","argument","isXML","docElem","setFilters","newUnmatched","tokens","setMatcher","postFilter","postFinder","addCombinator","matcher","skip","combinator","next","checkNonElements","base","doneName","postMap","multipleContexts","oldCache","uniqueCache","outerCache","newCache","dirruns","matcherIn","matcherOut","uniqueID","preFilter","matchers","contexts","matcherFromTokens","checkContext","implicitRelative","leadingRelative","relative","unmatched","matchContext","matchAnyContext","elementMatcher","postSelector","preMap","preexisting","condense","elementMatchers","dirrunsUnique","contextBackup","outermost","matchedCount","bySet","setMatched","outermostContext","uniqueSort","compile","cached","compilerCache","matcherFromGroupMatchers","setMatchers","byElement","token","setDocument","compiled","pop","sortStable","detectDuplicates","superMatcher","getText","select","hasDuplicate","rbuggyMatches","sortOrder","preferredDoc","classCache","createCache","tokenCache","pushNative","list","booleans","whitespace","identifier","pseudos","rwhitespace","rcomma","rpseudo","ridentifier","matchExpr","ID","rinputs","CLASS","rheader","TAG","rnative","ATTR","PSEUDO","CHILD","rsibling","bool","runescape","escape","nonHex","asCodePoint","high","String","fromCharCode","ch","inDisabledFieldset","charCodeAt","unloadHandler","els","namespaceURI","subWindow","attachEvent","defaultView","top","addEventListener","getById","attrId","funescape","createComment","getAttributeNode","getElementsByName","className","compareDocumentPosition","hasCompare","adown","bup","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","compare","sortDetached","ap","aup","bp","expr","duplicates","disconnectedMatch","specified","sel","nodeValue","createPseudo",">","excess","unquoted","+","~","nodeNameSelector","operator","forward","nodeIndex","useCache","pattern","check","what","_argument","simple","ofType","_context","idx","lang","elemLang","pseudo","has","hash","root","focus","hasFocus","tabIndex","enabled","createButtonPseudo","selectedIndex","soFar","preFilters","_matchIndexes","parseOnly","lt","gt","file","password","image","submit","reset","filters","truncate","until","siblings","rneedsContext","selectors","unique","isXMLDoc","escapeSelector","parseHTML","is","n","needsContext","rsingleTag","rootjQuery","targets","nextAll","prevAll","ready","reverse","guaranteedUnique","closest","firing","fired","once","firingIndex","addBack","parents","parentsUntil","nextUntil","prevUntil","contentDocument","rparentsprev","Callbacks","stopOnFalse","tuple","returned","then","disable","mightThrow","exceptionHook","that","fireWith","stateString","pipe","fns","notify","onFulfilled","onRejected","onProgress","depth","when","maxDepth","primary","resolveValues","TypeError","rerrorNames","readyException","wait","getStackHook","readyList","chainable","acceptData","Data","uid","singleValue","resolveContexts","updateFunc","defineProperty","owner","configurable","adoptValue","stack","console","warn","message","catch","readyWait","readyState","doScroll","rbrace","emptyGet","raw","bulk","_key","getData","removeData","rmsPrefix","_removeData","startLength","setter","rmultiDash","count","_data","hide","div","checkClone","cloneNode","thead","col","tr","td","defer","source","getRootNode","eventHandle","handle","tbody","tfoot","colgroup","caption","th","option","matchedSelectors","handlerQueue","create","enumerable","triggered","originalEvent","load","noBubble","click","setup","mappedTypes","returnValue","teardown","removeEvent","nativeEvent","fix","isPropagationStopped","isImmediatePropagationStopped","rnamespace","relatedTarget","button","isDefaultPrevented","isSimulated","altKey","hook","bubbles","cancelable","changedTouches","detail","eventPhase","metaKey","pageX","buttons","clientX","clientY","offsetX","offsetY","toElement","touches","addProp","beforeunload","timeStamp","ctrlKey","char","keyCode","pointerId","pointerType","screenX","screenY","targetTouches","blur","srcElements","destElements","mouseleave","pointerenter","cloneCopyEvent","related","detach","container","cssText","pixelPositionVal","divStyle","reliableMarginLeftVal","noCloneChecked","scrollboxSizeVal","roundPixelMeasures","boxSizingReliableVal","pixelBoxStylesVal","inPage","backgroundClip","clearCloneStyle","table","trChild","append","trStyle","reliableTrDimensionsVal","parseInt","before","emptyStyle","replaceChild","appendTo","prependTo","original","insert","rcustomProp","cssShow","position","visibility","cssNormalTransform","swap","old","marginLeft","right","offsetWidth","measure","round","pixelPosition","reliableMarginLeft","borderTopWidth","borderBottomWidth","offsetHeight","rdisplayswap","letterSpacing","fontWeight","animationIterationCount","columnCount","fillOpacity","flexGrow","gridArea","gridColumn","gridColumnEnd","gridColumnStart","step","gridRowEnd","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","rrun","defaultPrefilter","isFinite","margin","padding","border","expanded","parts","propHooks","pos","scrollLeft","linear","p","swing","cos","PI","*","attrHooks","attrNames","getter","rfocusable","fadeTo","rclickable","to","optall","propFix","tabindex","cssFn","getClass","classesToArray","slideToggle","fadeIn","addClass","classes","finalValue","curValue","slow","fast","delay","timeout","clazz","checkOn","boolHook","stateVal","classNames","rreturn","valHooks","lowercaseName","removeProp","for","class","onlyHandlers","bubbleType","eventPath","lastElement","ontype","isValidValue","removeClass","toggleClass","simulate","hasClass","triggerHandler","focusin","attaches","rCRLF","location","rquery","parseXML","param","serializeArray","optionSet","rhash","rantiCache","addToPrefiltersOrTransports","stopPropagationCallback","isTrigger","parentWindow","parserErrorElem","lastModified","DOMParser","parseFromString","etag","isLocal","processData","async","contentType","rsubmitterTypes","rsubmittable","valueOrFunction","encodeURIComponent","ajaxSetup","settings","ajaxTransport","responseHeadersString","timeoutTimer","r20","callbackContext","rheaders","rlocalProtocol","rnoContent","rprotocol","allTypes","originAnchor","protocol","modified","text html","text json","text xml","success","status","nativeStatusText","headers","ajaxPrefilter","send","oldCallbacks","jsonpCallback","responseContainer","jsonProp","jsonp","callbackName","overwritten","globalEventContext","getScript","strAbort","wrapAll","requestHeadersNames","htmlIsFunction","unwrap","XMLHttpRequest","host","xhrSupported","xhr","hasContent","errorCallback","onreadystatechange","beforeSend","getJSON","ajax","keepScripts","text script","parsed","params","firstElementChild","wrapInner","responseText","animated","visible","curLeft","curTop","curOffset","xhrSuccessStatus","0","1223","curElem","offset","curCSSLeft","calculatePosition","curPosition","open","xhrFields","overrideMimeType","onload","onerror","onabort","ontimeout","rect","responseType","parentOffset","getAllResponseHeaders","offsetParent","win","scriptAttrs","charset","defaultExtra","evt","funcName","rjsonp","originalSettings","undelegate","hover","fnOver","fnOut","proxy","implementation","createHTMLDocument","define","noConflict","setOffset","curCSSTop","using","pageYOffset","pageXOffset","scrollTop","scrollTo","Height","Width","","unbind","delegate","mouseenter","holdReady","hold","parseJSON","isNumeric","isNaN","trim","amd","_jQuery","_$","$"],"mappings":"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","file":"jquery.min.js","sourcesContent":["/*!\r\n * jQuery JavaScript Library v3.6.0\r\n * https://jquery.com/\r\n *\r\n * Includes Sizzle.js\r\n * https://sizzlejs.com/\r\n *\r\n * Copyright OpenJS Foundation and other contributors\r\n * Released under the MIT license\r\n * https://jquery.org/license\r\n *\r\n * Date: 2021-03-02T17:08Z\r\n */\r\n( function( global, factory ) {\r\n\r\n\t\"use strict\";\r\n\r\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\r\n\r\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\r\n\t\t// is present, execute the factory and get jQuery.\r\n\t\t// For environments that do not have a `window` with a `document`\r\n\t\t// (such as Node.js), expose a factory as module.exports.\r\n\t\t// This accentuates the need for the creation of a real `window`.\r\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\r\n\t\t// See ticket #14549 for more info.\r\n\t\tmodule.exports = global.document ?\r\n\t\t\tfactory( global, true ) :\r\n\t\t\tfunction( w ) {\r\n\t\t\t\tif ( !w.document ) {\r\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\r\n\t\t\t\t}\r\n\t\t\t\treturn factory( w );\r\n\t\t\t};\r\n\t} else {\r\n\t\tfactory( global );\r\n\t}\r\n\r\n// Pass this if window is not defined yet\r\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\r\n\r\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\r\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\r\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\r\n// enough that all such attempts are guarded in a try block.\r\n\"use strict\";\r\n\r\nvar arr = [];\r\n\r\nvar getProto = Object.getPrototypeOf;\r\n\r\nvar slice = arr.slice;\r\n\r\nvar flat = arr.flat ? function( array ) {\r\n\treturn arr.flat.call( array );\r\n} : function( array ) {\r\n\treturn arr.concat.apply( [], array );\r\n};\r\n\r\n\r\nvar push = arr.push;\r\n\r\nvar indexOf = arr.indexOf;\r\n\r\nvar class2type = {};\r\n\r\nvar toString = class2type.toString;\r\n\r\nvar hasOwn = class2type.hasOwnProperty;\r\n\r\nvar fnToString = hasOwn.toString;\r\n\r\nvar ObjectFunctionString = fnToString.call( Object );\r\n\r\nvar support = {};\r\n\r\nvar isFunction = function isFunction( obj ) {\r\n\r\n\t\t// Support: Chrome <=57, Firefox <=52\r\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\r\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\r\n\t\t// We don't want to classify *any* DOM node as a function.\r\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\r\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\r\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\r\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\r\n\t\t\ttypeof obj.item !== \"function\";\r\n\t};\r\n\r\n\r\nvar isWindow = function isWindow( obj ) {\r\n\t\treturn obj != null && obj === obj.window;\r\n\t};\r\n\r\n\r\nvar document = window.document;\r\n\r\n\r\n\r\n\tvar preservedScriptAttributes = {\r\n\t\ttype: true,\r\n\t\tsrc: true,\r\n\t\tnonce: true,\r\n\t\tnoModule: true\r\n\t};\r\n\r\n\tfunction DOMEval( code, node, doc ) {\r\n\t\tdoc = doc || document;\r\n\r\n\t\tvar i, val,\r\n\t\t\tscript = doc.createElement( \"script\" );\r\n\r\n\t\tscript.text = code;\r\n\t\tif ( node ) {\r\n\t\t\tfor ( i in preservedScriptAttributes ) {\r\n\r\n\t\t\t\t// Support: Firefox 64+, Edge 18+\r\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\r\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\r\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\r\n\t\t\t\t// becomes browsing-context connected.\r\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\r\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\r\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\r\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\r\n\t\t\t\t// via an object.\r\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\r\n\t\t\t\tif ( val ) {\r\n\t\t\t\t\tscript.setAttribute( i, val );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\r\n\t}\r\n\r\n\r\nfunction toType( obj ) {\r\n\tif ( obj == null ) {\r\n\t\treturn obj + \"\";\r\n\t}\r\n\r\n\t// Support: Android <=2.3 only (functionish RegExp)\r\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\r\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\r\n\t\ttypeof obj;\r\n}\r\n/* global Symbol */\r\n// Defining this global in .eslintrc.json would create a danger of using the global\r\n// unguarded in another place, it seems safer to define global only for this module\r\n\r\n\r\n\r\nvar\r\n\tversion = \"3.6.0\",\r\n\r\n\t// Define a local copy of jQuery\r\n\tjQuery = function( selector, context ) {\r\n\r\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\r\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\r\n\t\treturn new jQuery.fn.init( selector, context );\r\n\t};\r\n\r\njQuery.fn = jQuery.prototype = {\r\n\r\n\t// The current version of jQuery being used\r\n\tjquery: version,\r\n\r\n\tconstructor: jQuery,\r\n\r\n\t// The default length of a jQuery object is 0\r\n\tlength: 0,\r\n\r\n\ttoArray: function() {\r\n\t\treturn slice.call( this );\r\n\t},\r\n\r\n\t// Get the Nth element in the matched element set OR\r\n\t// Get the whole matched element set as a clean array\r\n\tget: function( num ) {\r\n\r\n\t\t// Return all the elements in a clean array\r\n\t\tif ( num == null ) {\r\n\t\t\treturn slice.call( this );\r\n\t\t}\r\n\r\n\t\t// Return just the one element from the set\r\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\r\n\t},\r\n\r\n\t// Take an array of elements and push it onto the stack\r\n\t// (returning the new matched element set)\r\n\tpushStack: function( elems ) {\r\n\r\n\t\t// Build a new jQuery matched element set\r\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\r\n\r\n\t\t// Add the old object onto the stack (as a reference)\r\n\t\tret.prevObject = this;\r\n\r\n\t\t// Return the newly-formed element set\r\n\t\treturn ret;\r\n\t},\r\n\r\n\t// Execute a callback for every element in the matched set.\r\n\teach: function( callback ) {\r\n\t\treturn jQuery.each( this, callback );\r\n\t},\r\n\r\n\tmap: function( callback ) {\r\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\r\n\t\t\treturn callback.call( elem, i, elem );\r\n\t\t} ) );\r\n\t},\r\n\r\n\tslice: function() {\r\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\r\n\t},\r\n\r\n\tfirst: function() {\r\n\t\treturn this.eq( 0 );\r\n\t},\r\n\r\n\tlast: function() {\r\n\t\treturn this.eq( -1 );\r\n\t},\r\n\r\n\teven: function() {\r\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\r\n\t\t\treturn ( i + 1 ) % 2;\r\n\t\t} ) );\r\n\t},\r\n\r\n\todd: function() {\r\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\r\n\t\t\treturn i % 2;\r\n\t\t} ) );\r\n\t},\r\n\r\n\teq: function( i ) {\r\n\t\tvar len = this.length,\r\n\t\t\tj = +i + ( i < 0 ? len : 0 );\r\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\r\n\t},\r\n\r\n\tend: function() {\r\n\t\treturn this.prevObject || this.constructor();\r\n\t},\r\n\r\n\t// For internal use only.\r\n\t// Behaves like an Array's method, not like a jQuery method.\r\n\tpush: push,\r\n\tsort: arr.sort,\r\n\tsplice: arr.splice\r\n};\r\n\r\njQuery.extend = jQuery.fn.extend = function() {\r\n\tvar options, name, src, copy, copyIsArray, clone,\r\n\t\ttarget = arguments[ 0 ] || {},\r\n\t\ti = 1,\r\n\t\tlength = arguments.length,\r\n\t\tdeep = false;\r\n\r\n\t// Handle a deep copy situation\r\n\tif ( typeof target === \"boolean\" ) {\r\n\t\tdeep = target;\r\n\r\n\t\t// Skip the boolean and the target\r\n\t\ttarget = arguments[ i ] || {};\r\n\t\ti++;\r\n\t}\r\n\r\n\t// Handle case when target is a string or something (possible in deep copy)\r\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\r\n\t\ttarget = {};\r\n\t}\r\n\r\n\t// Extend jQuery itself if only one argument is passed\r\n\tif ( i === length ) {\r\n\t\ttarget = this;\r\n\t\ti--;\r\n\t}\r\n\r\n\tfor ( ; i < length; i++ ) {\r\n\r\n\t\t// Only deal with non-null/undefined values\r\n\t\tif ( ( options = arguments[ i ] ) != null ) {\r\n\r\n\t\t\t// Extend the base object\r\n\t\t\tfor ( name in options ) {\r\n\t\t\t\tcopy = options[ name ];\r\n\r\n\t\t\t\t// Prevent Object.prototype pollution\r\n\t\t\t\t// Prevent never-ending loop\r\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Recurse if we're merging plain objects or arrays\r\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\r\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\r\n\t\t\t\t\tsrc = target[ name ];\r\n\r\n\t\t\t\t\t// Ensure proper type for the source value\r\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\r\n\t\t\t\t\t\tclone = [];\r\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\r\n\t\t\t\t\t\tclone = {};\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tclone = src;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tcopyIsArray = false;\r\n\r\n\t\t\t\t\t// Never move original objects, clone them\r\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\r\n\r\n\t\t\t\t// Don't bring in undefined values\r\n\t\t\t\t} else if ( copy !== undefined ) {\r\n\t\t\t\t\ttarget[ name ] = copy;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the modified object\r\n\treturn target;\r\n};\r\n\r\njQuery.extend( {\r\n\r\n\t// Unique for each copy of jQuery on the page\r\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\r\n\r\n\t// Assume jQuery is ready without the ready module\r\n\tisReady: true,\r\n\r\n\terror: function( msg ) {\r\n\t\tthrow new Error( msg );\r\n\t},\r\n\r\n\tnoop: function() {},\r\n\r\n\tisPlainObject: function( obj ) {\r\n\t\tvar proto, Ctor;\r\n\r\n\t\t// Detect obvious negatives\r\n\t\t// Use toString instead of jQuery.type to catch host objects\r\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tproto = getProto( obj );\r\n\r\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\r\n\t\tif ( !proto ) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\r\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\r\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\r\n\t},\r\n\r\n\tisEmptyObject: function( obj ) {\r\n\t\tvar name;\r\n\r\n\t\tfor ( name in obj ) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\r\n\t// Evaluates a script in a provided context; falls back to the global one\r\n\t// if not specified.\r\n\tglobalEval: function( code, options, doc ) {\r\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\r\n\t},\r\n\r\n\teach: function( obj, callback ) {\r\n\t\tvar length, i = 0;\r\n\r\n\t\tif ( isArrayLike( obj ) ) {\r\n\t\t\tlength = obj.length;\r\n\t\t\tfor ( ; i < length; i++ ) {\r\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfor ( i in obj ) {\r\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn obj;\r\n\t},\r\n\r\n\t// results is for internal usage only\r\n\tmakeArray: function( arr, results ) {\r\n\t\tvar ret = results || [];\r\n\r\n\t\tif ( arr != null ) {\r\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\r\n\t\t\t\tjQuery.merge( ret,\r\n\t\t\t\t\ttypeof arr === \"string\" ?\r\n\t\t\t\t\t\t[ arr ] : arr\r\n\t\t\t\t);\r\n\t\t\t} else {\r\n\t\t\t\tpush.call( ret, arr );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ret;\r\n\t},\r\n\r\n\tinArray: function( elem, arr, i ) {\r\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\r\n\t},\r\n\r\n\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\tmerge: function( first, second ) {\r\n\t\tvar len = +second.length,\r\n\t\t\tj = 0,\r\n\t\t\ti = first.length;\r\n\r\n\t\tfor ( ; j < len; j++ ) {\r\n\t\t\tfirst[ i++ ] = second[ j ];\r\n\t\t}\r\n\r\n\t\tfirst.length = i;\r\n\r\n\t\treturn first;\r\n\t},\r\n\r\n\tgrep: function( elems, callback, invert ) {\r\n\t\tvar callbackInverse,\r\n\t\t\tmatches = [],\r\n\t\t\ti = 0,\r\n\t\t\tlength = elems.length,\r\n\t\t\tcallbackExpect = !invert;\r\n\r\n\t\t// Go through the array, only saving the items\r\n\t\t// that pass the validator function\r\n\t\tfor ( ; i < length; i++ ) {\r\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\r\n\t\t\tif ( callbackInverse !== callbackExpect ) {\r\n\t\t\t\tmatches.push( elems[ i ] );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn matches;\r\n\t},\r\n\r\n\t// arg is for internal usage only\r\n\tmap: function( elems, callback, arg ) {\r\n\t\tvar length, value,\r\n\t\t\ti = 0,\r\n\t\t\tret = [];\r\n\r\n\t\t// Go through the array, translating each of the items to their new values\r\n\t\tif ( isArrayLike( elems ) ) {\r\n\t\t\tlength = elems.length;\r\n\t\t\tfor ( ; i < length; i++ ) {\r\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\r\n\r\n\t\t\t\tif ( value != null ) {\r\n\t\t\t\t\tret.push( value );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t// Go through every key on the object,\r\n\t\t} else {\r\n\t\t\tfor ( i in elems ) {\r\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\r\n\r\n\t\t\t\tif ( value != null ) {\r\n\t\t\t\t\tret.push( value );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Flatten any nested arrays\r\n\t\treturn flat( ret );\r\n\t},\r\n\r\n\t// A global GUID counter for objects\r\n\tguid: 1,\r\n\r\n\t// jQuery.support is not used in Core but other projects attach their\r\n\t// properties to it so it needs to exist.\r\n\tsupport: support\r\n} );\r\n\r\nif ( typeof Symbol === \"function\" ) {\r\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\r\n}\r\n\r\n// Populate the class2type map\r\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\r\n\tfunction( _i, name ) {\r\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\r\n\t} );\r\n\r\nfunction isArrayLike( obj ) {\r\n\r\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\r\n\t// `in` check used to prevent JIT error (gh-2145)\r\n\t// hasOwn isn't used here due to false negatives\r\n\t// regarding Nodelist length in IE\r\n\tvar length = !!obj && \"length\" in obj && obj.length,\r\n\t\ttype = toType( obj );\r\n\r\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\treturn type === \"array\" || length === 0 ||\r\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\r\n}\r\nvar Sizzle =\r\n/*!\r\n * Sizzle CSS Selector Engine v2.3.6\r\n * https://sizzlejs.com/\r\n *\r\n * Copyright JS Foundation and other contributors\r\n * Released under the MIT license\r\n * https://js.foundation/\r\n *\r\n * Date: 2021-02-16\r\n */\r\n( function( window ) {\r\nvar i,\r\n\tsupport,\r\n\tExpr,\r\n\tgetText,\r\n\tisXML,\r\n\ttokenize,\r\n\tcompile,\r\n\tselect,\r\n\toutermostContext,\r\n\tsortInput,\r\n\thasDuplicate,\r\n\r\n\t// Local document vars\r\n\tsetDocument,\r\n\tdocument,\r\n\tdocElem,\r\n\tdocumentIsHTML,\r\n\trbuggyQSA,\r\n\trbuggyMatches,\r\n\tmatches,\r\n\tcontains,\r\n\r\n\t// Instance-specific data\r\n\texpando = \"sizzle\" + 1 * new Date(),\r\n\tpreferredDoc = window.document,\r\n\tdirruns = 0,\r\n\tdone = 0,\r\n\tclassCache = createCache(),\r\n\ttokenCache = createCache(),\r\n\tcompilerCache = createCache(),\r\n\tnonnativeSelectorCache = createCache(),\r\n\tsortOrder = function( a, b ) {\r\n\t\tif ( a === b ) {\r\n\t\t\thasDuplicate = true;\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// Instance methods\r\n\thasOwn = ( {} ).hasOwnProperty,\r\n\tarr = [],\r\n\tpop = arr.pop,\r\n\tpushNative = arr.push,\r\n\tpush = arr.push,\r\n\tslice = arr.slice,\r\n\r\n\t// Use a stripped-down indexOf as it's faster than native\r\n\t// https://jsperf.com/thor-indexof-vs-for/5\r\n\tindexOf = function( list, elem ) {\r\n\t\tvar i = 0,\r\n\t\t\tlen = list.length;\r\n\t\tfor ( ; i < len; i++ ) {\r\n\t\t\tif ( list[ i ] === elem ) {\r\n\t\t\t\treturn i;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn -1;\r\n\t},\r\n\r\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\r\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\r\n\r\n\t// Regular expressions\r\n\r\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\r\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\r\n\r\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\r\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\r\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\r\n\r\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\r\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\r\n\r\n\t\t// Operator (capture 2)\r\n\t\t\"*([*^$|!~]?=)\" + whitespace +\r\n\r\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\r\n\t\t// or strings [capture 3 or capture 4]\"\r\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\r\n\t\twhitespace + \"*\\\\]\",\r\n\r\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\r\n\r\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\r\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\r\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\r\n\r\n\t\t// 2. simple (capture 6)\r\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\r\n\r\n\t\t// 3. anything else (capture 2)\r\n\t\t\".*\" +\r\n\t\t\")\\\\)|)\",\r\n\r\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\r\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\r\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\r\n\t\twhitespace + \"+$\", \"g\" ),\r\n\r\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\r\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\r\n\t\t\"*\" ),\r\n\trdescend = new RegExp( whitespace + \"|>\" ),\r\n\r\n\trpseudo = new RegExp( pseudos ),\r\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\r\n\r\n\tmatchExpr = {\r\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\r\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\r\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\r\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\r\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\r\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\r\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\r\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\r\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\r\n\r\n\t\t// For use in libraries implementing .is()\r\n\t\t// We use this for POS matching in `select`\r\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\r\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\r\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\r\n\t},\r\n\r\n\trhtml = /HTML$/i,\r\n\trinputs = /^(?:input|select|textarea|button)$/i,\r\n\trheader = /^h\\d$/i,\r\n\r\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\r\n\r\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\r\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\r\n\r\n\trsibling = /[+~]/,\r\n\r\n\t// CSS escapes\r\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\r\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\r\n\tfunescape = function( escape, nonHex ) {\r\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\r\n\r\n\t\treturn nonHex ?\r\n\r\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\r\n\t\t\tnonHex :\r\n\r\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\r\n\t\t\t// Support: IE <=11+\r\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\r\n\t\t\t// surrogate pair\r\n\t\t\thigh < 0 ?\r\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\r\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\r\n\t},\r\n\r\n\t// CSS string/identifier serialization\r\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\r\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\r\n\tfcssescape = function( ch, asCodePoint ) {\r\n\t\tif ( asCodePoint ) {\r\n\r\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\r\n\t\t\tif ( ch === \"\\0\" ) {\r\n\t\t\t\treturn \"\\uFFFD\";\r\n\t\t\t}\r\n\r\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\r\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\r\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\r\n\t\t}\r\n\r\n\t\t// Other potentially-special ASCII characters get backslash-escaped\r\n\t\treturn \"\\\\\" + ch;\r\n\t},\r\n\r\n\t// Used for iframes\r\n\t// See setDocument()\r\n\t// Removing the function wrapper causes a \"Permission Denied\"\r\n\t// error in IE\r\n\tunloadHandler = function() {\r\n\t\tsetDocument();\r\n\t},\r\n\r\n\tinDisabledFieldset = addCombinator(\r\n\t\tfunction( elem ) {\r\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\r\n\t\t},\r\n\t\t{ dir: \"parentNode\", next: \"legend\" }\r\n\t);\r\n\r\n// Optimize for push.apply( _, NodeList )\r\ntry {\r\n\tpush.apply(\r\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\r\n\t\tpreferredDoc.childNodes\r\n\t);\r\n\r\n\t// Support: Android<4.0\r\n\t// Detect silently failing push.apply\r\n\t// eslint-disable-next-line no-unused-expressions\r\n\tarr[ preferredDoc.childNodes.length ].nodeType;\r\n} catch ( e ) {\r\n\tpush = { apply: arr.length ?\r\n\r\n\t\t// Leverage slice if possible\r\n\t\tfunction( target, els ) {\r\n\t\t\tpushNative.apply( target, slice.call( els ) );\r\n\t\t} :\r\n\r\n\t\t// Support: IE<9\r\n\t\t// Otherwise append directly\r\n\t\tfunction( target, els ) {\r\n\t\t\tvar j = target.length,\r\n\t\t\t\ti = 0;\r\n\r\n\t\t\t// Can't trust NodeList.length\r\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\r\n\t\t\ttarget.length = j - 1;\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction Sizzle( selector, context, results, seed ) {\r\n\tvar m, i, elem, nid, match, groups, newSelector,\r\n\t\tnewContext = context && context.ownerDocument,\r\n\r\n\t\t// nodeType defaults to 9, since context defaults to document\r\n\t\tnodeType = context ? context.nodeType : 9;\r\n\r\n\tresults = results || [];\r\n\r\n\t// Return early from calls with invalid selector or context\r\n\tif ( typeof selector !== \"string\" || !selector ||\r\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\r\n\r\n\t\treturn results;\r\n\t}\r\n\r\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\r\n\tif ( !seed ) {\r\n\t\tsetDocument( context );\r\n\t\tcontext = context || document;\r\n\r\n\t\tif ( documentIsHTML ) {\r\n\r\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\r\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\r\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\r\n\r\n\t\t\t\t// ID selector\r\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\r\n\r\n\t\t\t\t\t// Document context\r\n\t\t\t\t\tif ( nodeType === 9 ) {\r\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\r\n\r\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\r\n\t\t\t\t\t\t\t// TODO: identify versions\r\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\r\n\t\t\t\t\t\t\tif ( elem.id === m ) {\r\n\t\t\t\t\t\t\t\tresults.push( elem );\r\n\t\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Element context\r\n\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\r\n\t\t\t\t\t\t// TODO: identify versions\r\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\r\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\r\n\t\t\t\t\t\t\tcontains( context, elem ) &&\r\n\t\t\t\t\t\t\telem.id === m ) {\r\n\r\n\t\t\t\t\t\t\tresults.push( elem );\r\n\t\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t// Type selector\r\n\t\t\t\t} else if ( match[ 2 ] ) {\r\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\r\n\t\t\t\t\treturn results;\r\n\r\n\t\t\t\t// Class selector\r\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\r\n\t\t\t\t\tcontext.getElementsByClassName ) {\r\n\r\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\r\n\t\t\t\t\treturn results;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Take advantage of querySelectorAll\r\n\t\t\tif ( support.qsa &&\r\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\r\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\r\n\r\n\t\t\t\t// Support: IE 8 only\r\n\t\t\t\t// Exclude object elements\r\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\r\n\r\n\t\t\t\tnewSelector = selector;\r\n\t\t\t\tnewContext = context;\r\n\r\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\r\n\t\t\t\t// descendant combinators, which is not what we want.\r\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\r\n\t\t\t\t// list with an ID selector referencing the scope context.\r\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\r\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\r\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\r\n\t\t\t\tif ( nodeType === 1 &&\r\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\r\n\r\n\t\t\t\t\t// Expand context for sibling selectors\r\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\r\n\t\t\t\t\t\tcontext;\r\n\r\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\r\n\t\t\t\t\t// supports it & if we're not changing the context.\r\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\r\n\r\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\r\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\r\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Prefix every selector in the list\r\n\t\t\t\t\tgroups = tokenize( selector );\r\n\t\t\t\t\ti = groups.length;\r\n\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\r\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tnewSelector = groups.join( \",\" );\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tpush.apply( results,\r\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\r\n\t\t\t\t\t);\r\n\t\t\t\t\treturn results;\r\n\t\t\t\t} catch ( qsaError ) {\r\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\r\n\t\t\t\t} finally {\r\n\t\t\t\t\tif ( nid === expando ) {\r\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// All others\r\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\r\n}\r\n\r\n/**\r\n * Create key-value caches of limited size\r\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\r\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\r\n *\tdeleting the oldest entry\r\n */\r\nfunction createCache() {\r\n\tvar keys = [];\r\n\r\n\tfunction cache( key, value ) {\r\n\r\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\r\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\r\n\r\n\t\t\t// Only keep the most recent entries\r\n\t\t\tdelete cache[ keys.shift() ];\r\n\t\t}\r\n\t\treturn ( cache[ key + \" \" ] = value );\r\n\t}\r\n\treturn cache;\r\n}\r\n\r\n/**\r\n * Mark a function for special use by Sizzle\r\n * @param {Function} fn The function to mark\r\n */\r\nfunction markFunction( fn ) {\r\n\tfn[ expando ] = true;\r\n\treturn fn;\r\n}\r\n\r\n/**\r\n * Support testing using an element\r\n * @param {Function} fn Passed the created element and returns a boolean result\r\n */\r\nfunction assert( fn ) {\r\n\tvar el = document.createElement( \"fieldset\" );\r\n\r\n\ttry {\r\n\t\treturn !!fn( el );\r\n\t} catch ( e ) {\r\n\t\treturn false;\r\n\t} finally {\r\n\r\n\t\t// Remove from its parent by default\r\n\t\tif ( el.parentNode ) {\r\n\t\t\tel.parentNode.removeChild( el );\r\n\t\t}\r\n\r\n\t\t// release memory in IE\r\n\t\tel = null;\r\n\t}\r\n}\r\n\r\n/**\r\n * Adds the same handler for all of the specified attrs\r\n * @param {String} attrs Pipe-separated list of attributes\r\n * @param {Function} handler The method that will be applied\r\n */\r\nfunction addHandle( attrs, handler ) {\r\n\tvar arr = attrs.split( \"|\" ),\r\n\t\ti = arr.length;\r\n\r\n\twhile ( i-- ) {\r\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\r\n\t}\r\n}\r\n\r\n/**\r\n * Checks document order of two siblings\r\n * @param {Element} a\r\n * @param {Element} b\r\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\r\n */\r\nfunction siblingCheck( a, b ) {\r\n\tvar cur = b && a,\r\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\r\n\t\t\ta.sourceIndex - b.sourceIndex;\r\n\r\n\t// Use IE sourceIndex if available on both nodes\r\n\tif ( diff ) {\r\n\t\treturn diff;\r\n\t}\r\n\r\n\t// Check if b follows a\r\n\tif ( cur ) {\r\n\t\twhile ( ( cur = cur.nextSibling ) ) {\r\n\t\t\tif ( cur === b ) {\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn a ? 1 : -1;\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for input types\r\n * @param {String} type\r\n */\r\nfunction createInputPseudo( type ) {\r\n\treturn function( elem ) {\r\n\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\treturn name === \"input\" && elem.type === type;\r\n\t};\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for buttons\r\n * @param {String} type\r\n */\r\nfunction createButtonPseudo( type ) {\r\n\treturn function( elem ) {\r\n\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\r\n\t};\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for :enabled/:disabled\r\n * @param {Boolean} disabled true for :disabled; false for :enabled\r\n */\r\nfunction createDisabledPseudo( disabled ) {\r\n\r\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\r\n\treturn function( elem ) {\r\n\r\n\t\t// Only certain elements can match :enabled or :disabled\r\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\r\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\r\n\t\tif ( \"form\" in elem ) {\r\n\r\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\r\n\t\t\t// * listed form-associated elements in a disabled fieldset\r\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\r\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\r\n\t\t\t// * option elements in a disabled optgroup\r\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\r\n\t\t\t// All such elements have a \"form\" property.\r\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\r\n\r\n\t\t\t\t// Option elements defer to a parent optgroup if present\r\n\t\t\t\tif ( \"label\" in elem ) {\r\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\r\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn elem.disabled === disabled;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Support: IE 6 - 11\r\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\r\n\t\t\t\treturn elem.isDisabled === disabled ||\r\n\r\n\t\t\t\t\t// Where there is no isDisabled, check manually\r\n\t\t\t\t\t/* jshint -W018 */\r\n\t\t\t\t\telem.isDisabled !== !disabled &&\r\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\r\n\t\t\t}\r\n\r\n\t\t\treturn elem.disabled === disabled;\r\n\r\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\r\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\r\n\t\t// even exist on them, let alone have a boolean value.\r\n\t\t} else if ( \"label\" in elem ) {\r\n\t\t\treturn elem.disabled === disabled;\r\n\t\t}\r\n\r\n\t\t// Remaining elements are neither :enabled nor :disabled\r\n\t\treturn false;\r\n\t};\r\n}\r\n\r\n/**\r\n * Returns a function to use in pseudos for positionals\r\n * @param {Function} fn\r\n */\r\nfunction createPositionalPseudo( fn ) {\r\n\treturn markFunction( function( argument ) {\r\n\t\targument = +argument;\r\n\t\treturn markFunction( function( seed, matches ) {\r\n\t\t\tvar j,\r\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\r\n\t\t\t\ti = matchIndexes.length;\r\n\r\n\t\t\t// Match elements found at the specified indexes\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\r\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\t} );\r\n}\r\n\r\n/**\r\n * Checks a node for validity as a Sizzle context\r\n * @param {Element|Object=} context\r\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\r\n */\r\nfunction testContext( context ) {\r\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\r\n}\r\n\r\n// Expose support vars for convenience\r\nsupport = Sizzle.support = {};\r\n\r\n/**\r\n * Detects XML nodes\r\n * @param {Element|Object} elem An element or a document\r\n * @returns {Boolean} True iff elem is a non-HTML XML node\r\n */\r\nisXML = Sizzle.isXML = function( elem ) {\r\n\tvar namespace = elem && elem.namespaceURI,\r\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\r\n\r\n\t// Support: IE <=8\r\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\r\n\t// https://bugs.jquery.com/ticket/4833\r\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\r\n};\r\n\r\n/**\r\n * Sets document-related variables once based on the current document\r\n * @param {Element|Object} [doc] An element or document object to use to set the document\r\n * @returns {Object} Returns the current document\r\n */\r\nsetDocument = Sizzle.setDocument = function( node ) {\r\n\tvar hasCompare, subWindow,\r\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\r\n\r\n\t// Return early if doc is invalid or already selected\r\n\t// Support: IE 11+, Edge 17 - 18+\r\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t// two documents; shallow comparisons work.\r\n\t// eslint-disable-next-line eqeqeq\r\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\r\n\t\treturn document;\r\n\t}\r\n\r\n\t// Update global variables\r\n\tdocument = doc;\r\n\tdocElem = document.documentElement;\r\n\tdocumentIsHTML = !isXML( document );\r\n\r\n\t// Support: IE 9 - 11+, Edge 12 - 18+\r\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\r\n\t// Support: IE 11+, Edge 17 - 18+\r\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t// two documents; shallow comparisons work.\r\n\t// eslint-disable-next-line eqeqeq\r\n\tif ( preferredDoc != document &&\r\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\r\n\r\n\t\t// Support: IE 11, Edge\r\n\t\tif ( subWindow.addEventListener ) {\r\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\r\n\r\n\t\t// Support: IE 9 - 10 only\r\n\t\t} else if ( subWindow.attachEvent ) {\r\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\r\n\t\t}\r\n\t}\r\n\r\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\r\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\r\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\r\n\t// Support: Safari 6.0 only\r\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\r\n\tsupport.scope = assert( function( el ) {\r\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\r\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\r\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\r\n\t} );\r\n\r\n\t/* Attributes\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// Support: IE<8\r\n\t// Verify that getAttribute really returns attributes and not properties\r\n\t// (excepting IE8 booleans)\r\n\tsupport.attributes = assert( function( el ) {\r\n\t\tel.className = \"i\";\r\n\t\treturn !el.getAttribute( \"className\" );\r\n\t} );\r\n\r\n\t/* getElement(s)By*\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// Check if getElementsByTagName(\"*\") returns only elements\r\n\tsupport.getElementsByTagName = assert( function( el ) {\r\n\t\tel.appendChild( document.createComment( \"\" ) );\r\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\r\n\t} );\r\n\r\n\t// Support: IE<9\r\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\r\n\r\n\t// Support: IE<10\r\n\t// Check if getElementById returns elements by name\r\n\t// The broken getElementById methods don't pick up programmatically-set names,\r\n\t// so use a roundabout getElementsByName test\r\n\tsupport.getById = assert( function( el ) {\r\n\t\tdocElem.appendChild( el ).id = expando;\r\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\r\n\t} );\r\n\r\n\t// ID filter and find\r\n\tif ( support.getById ) {\r\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\r\n\t\t\tvar attrId = id.replace( runescape, funescape );\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\r\n\t\t\t};\r\n\t\t};\r\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\r\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\r\n\t\t\t\tvar elem = context.getElementById( id );\r\n\t\t\t\treturn elem ? [ elem ] : [];\r\n\t\t\t}\r\n\t\t};\r\n\t} else {\r\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\r\n\t\t\tvar attrId = id.replace( runescape, funescape );\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\r\n\t\t\t\t\telem.getAttributeNode( \"id\" );\r\n\t\t\t\treturn node && node.value === attrId;\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\t// Support: IE 6 - 7 only\r\n\t\t// getElementById is not reliable as a find shortcut\r\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\r\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\r\n\t\t\t\tvar node, i, elems,\r\n\t\t\t\t\telem = context.getElementById( id );\r\n\r\n\t\t\t\tif ( elem ) {\r\n\r\n\t\t\t\t\t// Verify the id attribute\r\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\r\n\t\t\t\t\tif ( node && node.value === id ) {\r\n\t\t\t\t\t\treturn [ elem ];\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Fall back on getElementsByName\r\n\t\t\t\t\telems = context.getElementsByName( id );\r\n\t\t\t\t\ti = 0;\r\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\r\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\r\n\t\t\t\t\t\tif ( node && node.value === id ) {\r\n\t\t\t\t\t\t\treturn [ elem ];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn [];\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\t// Tag\r\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\r\n\t\tfunction( tag, context ) {\r\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\r\n\t\t\t\treturn context.getElementsByTagName( tag );\r\n\r\n\t\t\t// DocumentFragment nodes don't have gEBTN\r\n\t\t\t} else if ( support.qsa ) {\r\n\t\t\t\treturn context.querySelectorAll( tag );\r\n\t\t\t}\r\n\t\t} :\r\n\r\n\t\tfunction( tag, context ) {\r\n\t\t\tvar elem,\r\n\t\t\t\ttmp = [],\r\n\t\t\t\ti = 0,\r\n\r\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\r\n\t\t\t\tresults = context.getElementsByTagName( tag );\r\n\r\n\t\t\t// Filter out possible comments\r\n\t\t\tif ( tag === \"*\" ) {\r\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\r\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\r\n\t\t\t\t\t\ttmp.push( elem );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn tmp;\r\n\t\t\t}\r\n\t\t\treturn results;\r\n\t\t};\r\n\r\n\t// Class\r\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\r\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\r\n\t\t\treturn context.getElementsByClassName( className );\r\n\t\t}\r\n\t};\r\n\r\n\t/* QSA/matchesSelector\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// QSA and matchesSelector support\r\n\r\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\r\n\trbuggyMatches = [];\r\n\r\n\t// qSa(:focus) reports false when true (Chrome 21)\r\n\t// We allow this because of a bug in IE8/9 that throws an error\r\n\t// whenever `document.activeElement` is accessed on an iframe\r\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\r\n\t// See https://bugs.jquery.com/ticket/13378\r\n\trbuggyQSA = [];\r\n\r\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\r\n\r\n\t\t// Build QSA regex\r\n\t\t// Regex strategy adopted from Diego Perini\r\n\t\tassert( function( el ) {\r\n\r\n\t\t\tvar input;\r\n\r\n\t\t\t// Select is set to empty string on purpose\r\n\t\t\t// This is to test IE's treatment of not explicitly\r\n\t\t\t// setting a boolean content attribute,\r\n\t\t\t// since its presence should be enough\r\n\t\t\t// https://bugs.jquery.com/ticket/12359\r\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\r\n\t\t\t\t\"\";\r\n\r\n\t\t\t// Support: IE8, Opera 11-12.16\r\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\r\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\r\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\r\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE8\r\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\r\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\r\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \"~=\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE 11+, Edge 15 - 18+\r\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\r\n\t\t\t// Adding a temporary attribute to the document before the selection works\r\n\t\t\t// around the issue.\r\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\r\n\t\t\tinput = document.createElement( \"input\" );\r\n\t\t\tinput.setAttribute( \"name\", \"\" );\r\n\t\t\tel.appendChild( input );\r\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\r\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Webkit/Opera - :checked should return selected option elements\r\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r\n\t\t\t// IE8 throws error here and will not see later tests\r\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \":checked\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: Safari 8+, iOS 8+\r\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\r\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\r\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: Firefox <=3.6 - 5 only\r\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\r\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\r\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\r\n\t\t} );\r\n\r\n\t\tassert( function( el ) {\r\n\t\t\tel.innerHTML = \"\" +\r\n\t\t\t\t\"\";\r\n\r\n\t\t\t// Support: Windows 8 Native Apps\r\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\r\n\t\t\tvar input = document.createElement( \"input\" );\r\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\r\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\r\n\r\n\t\t\t// Support: IE8\r\n\t\t\t// Enforce case-sensitivity of name attribute\r\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\r\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\r\n\t\t\t}\r\n\r\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\r\n\t\t\t// IE8 throws error here and will not see later tests\r\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\r\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE9-11+\r\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\r\n\t\t\tdocElem.appendChild( el ).disabled = true;\r\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\r\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Support: Opera 10 - 11 only\r\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\r\n\t\t\tel.querySelectorAll( \"*,:x\" );\r\n\t\t\trbuggyQSA.push( \",.*:\" );\r\n\t\t} );\r\n\t}\r\n\r\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\r\n\t\tdocElem.webkitMatchesSelector ||\r\n\t\tdocElem.mozMatchesSelector ||\r\n\t\tdocElem.oMatchesSelector ||\r\n\t\tdocElem.msMatchesSelector ) ) ) ) {\r\n\r\n\t\tassert( function( el ) {\r\n\r\n\t\t\t// Check to see if it's possible to do matchesSelector\r\n\t\t\t// on a disconnected node (IE 9)\r\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\r\n\r\n\t\t\t// This should fail with an exception\r\n\t\t\t// Gecko does not error, returns false instead\r\n\t\t\tmatches.call( el, \"[s!='']:x\" );\r\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\r\n\t\t} );\r\n\t}\r\n\r\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\r\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\r\n\r\n\t/* Contains\r\n\t---------------------------------------------------------------------- */\r\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\r\n\r\n\t// Element contains another\r\n\t// Purposefully self-exclusive\r\n\t// As in, an element does not contain itself\r\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\r\n\t\tfunction( a, b ) {\r\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\r\n\t\t\t\tbup = b && b.parentNode;\r\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\r\n\t\t\t\tadown.contains ?\r\n\t\t\t\t\tadown.contains( bup ) :\r\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\r\n\t\t\t) );\r\n\t\t} :\r\n\t\tfunction( a, b ) {\r\n\t\t\tif ( b ) {\r\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\r\n\t\t\t\t\tif ( b === a ) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n\r\n\t/* Sorting\r\n\t---------------------------------------------------------------------- */\r\n\r\n\t// Document order sorting\r\n\tsortOrder = hasCompare ?\r\n\tfunction( a, b ) {\r\n\r\n\t\t// Flag for duplicate removal\r\n\t\tif ( a === b ) {\r\n\t\t\thasDuplicate = true;\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Sort on method existence if only one input has compareDocumentPosition\r\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\r\n\t\tif ( compare ) {\r\n\t\t\treturn compare;\r\n\t\t}\r\n\r\n\t\t// Calculate position if both inputs belong to the same document\r\n\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t// two documents; shallow comparisons work.\r\n\t\t// eslint-disable-next-line eqeqeq\r\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\r\n\t\t\ta.compareDocumentPosition( b ) :\r\n\r\n\t\t\t// Otherwise we know they are disconnected\r\n\t\t\t1;\r\n\r\n\t\t// Disconnected nodes\r\n\t\tif ( compare & 1 ||\r\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\r\n\r\n\t\t\t// Choose the first element that is related to our preferred document\r\n\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\r\n\t\t\t\tcontains( preferredDoc, a ) ) {\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\r\n\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\r\n\t\t\t\tcontains( preferredDoc, b ) ) {\r\n\t\t\t\treturn 1;\r\n\t\t\t}\r\n\r\n\t\t\t// Maintain original order\r\n\t\t\treturn sortInput ?\r\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\r\n\t\t\t\t0;\r\n\t\t}\r\n\r\n\t\treturn compare & 4 ? -1 : 1;\r\n\t} :\r\n\tfunction( a, b ) {\r\n\r\n\t\t// Exit early if the nodes are identical\r\n\t\tif ( a === b ) {\r\n\t\t\thasDuplicate = true;\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tvar cur,\r\n\t\t\ti = 0,\r\n\t\t\taup = a.parentNode,\r\n\t\t\tbup = b.parentNode,\r\n\t\t\tap = [ a ],\r\n\t\t\tbp = [ b ];\r\n\r\n\t\t// Parentless nodes are either documents or disconnected\r\n\t\tif ( !aup || !bup ) {\r\n\r\n\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t/* eslint-disable eqeqeq */\r\n\t\t\treturn a == document ? -1 :\r\n\t\t\t\tb == document ? 1 :\r\n\t\t\t\t/* eslint-enable eqeqeq */\r\n\t\t\t\taup ? -1 :\r\n\t\t\t\tbup ? 1 :\r\n\t\t\t\tsortInput ?\r\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\r\n\t\t\t\t0;\r\n\r\n\t\t// If the nodes are siblings, we can do a quick check\r\n\t\t} else if ( aup === bup ) {\r\n\t\t\treturn siblingCheck( a, b );\r\n\t\t}\r\n\r\n\t\t// Otherwise we need full lists of their ancestors for comparison\r\n\t\tcur = a;\r\n\t\twhile ( ( cur = cur.parentNode ) ) {\r\n\t\t\tap.unshift( cur );\r\n\t\t}\r\n\t\tcur = b;\r\n\t\twhile ( ( cur = cur.parentNode ) ) {\r\n\t\t\tbp.unshift( cur );\r\n\t\t}\r\n\r\n\t\t// Walk down the tree looking for a discrepancy\r\n\t\twhile ( ap[ i ] === bp[ i ] ) {\r\n\t\t\ti++;\r\n\t\t}\r\n\r\n\t\treturn i ?\r\n\r\n\t\t\t// Do a sibling check if the nodes have a common ancestor\r\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\r\n\r\n\t\t\t// Otherwise nodes in our document sort first\r\n\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t/* eslint-disable eqeqeq */\r\n\t\t\tap[ i ] == preferredDoc ? -1 :\r\n\t\t\tbp[ i ] == preferredDoc ? 1 :\r\n\t\t\t/* eslint-enable eqeqeq */\r\n\t\t\t0;\r\n\t};\r\n\r\n\treturn document;\r\n};\r\n\r\nSizzle.matches = function( expr, elements ) {\r\n\treturn Sizzle( expr, null, null, elements );\r\n};\r\n\r\nSizzle.matchesSelector = function( elem, expr ) {\r\n\tsetDocument( elem );\r\n\r\n\tif ( support.matchesSelector && documentIsHTML &&\r\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\r\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\r\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\r\n\r\n\t\ttry {\r\n\t\t\tvar ret = matches.call( elem, expr );\r\n\r\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\r\n\t\t\tif ( ret || support.disconnectedMatch ||\r\n\r\n\t\t\t\t// As well, disconnected nodes are said to be in a document\r\n\t\t\t\t// fragment in IE 9\r\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\t\t} catch ( e ) {\r\n\t\t\tnonnativeSelectorCache( expr, true );\r\n\t\t}\r\n\t}\r\n\r\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\r\n};\r\n\r\nSizzle.contains = function( context, elem ) {\r\n\r\n\t// Set document vars if needed\r\n\t// Support: IE 11+, Edge 17 - 18+\r\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t// two documents; shallow comparisons work.\r\n\t// eslint-disable-next-line eqeqeq\r\n\tif ( ( context.ownerDocument || context ) != document ) {\r\n\t\tsetDocument( context );\r\n\t}\r\n\treturn contains( context, elem );\r\n};\r\n\r\nSizzle.attr = function( elem, name ) {\r\n\r\n\t// Set document vars if needed\r\n\t// Support: IE 11+, Edge 17 - 18+\r\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t// two documents; shallow comparisons work.\r\n\t// eslint-disable-next-line eqeqeq\r\n\tif ( ( elem.ownerDocument || elem ) != document ) {\r\n\t\tsetDocument( elem );\r\n\t}\r\n\r\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\r\n\r\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\r\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\r\n\t\t\tfn( elem, name, !documentIsHTML ) :\r\n\t\t\tundefined;\r\n\r\n\treturn val !== undefined ?\r\n\t\tval :\r\n\t\tsupport.attributes || !documentIsHTML ?\r\n\t\t\telem.getAttribute( name ) :\r\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\r\n\t\t\t\tval.value :\r\n\t\t\t\tnull;\r\n};\r\n\r\nSizzle.escape = function( sel ) {\r\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\r\n};\r\n\r\nSizzle.error = function( msg ) {\r\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\r\n};\r\n\r\n/**\r\n * Document sorting and removing duplicates\r\n * @param {ArrayLike} results\r\n */\r\nSizzle.uniqueSort = function( results ) {\r\n\tvar elem,\r\n\t\tduplicates = [],\r\n\t\tj = 0,\r\n\t\ti = 0;\r\n\r\n\t// Unless we *know* we can detect duplicates, assume their presence\r\n\thasDuplicate = !support.detectDuplicates;\r\n\tsortInput = !support.sortStable && results.slice( 0 );\r\n\tresults.sort( sortOrder );\r\n\r\n\tif ( hasDuplicate ) {\r\n\t\twhile ( ( elem = results[ i++ ] ) ) {\r\n\t\t\tif ( elem === results[ i ] ) {\r\n\t\t\t\tj = duplicates.push( i );\r\n\t\t\t}\r\n\t\t}\r\n\t\twhile ( j-- ) {\r\n\t\t\tresults.splice( duplicates[ j ], 1 );\r\n\t\t}\r\n\t}\r\n\r\n\t// Clear input after sorting to release objects\r\n\t// See https://github.com/jquery/sizzle/pull/225\r\n\tsortInput = null;\r\n\r\n\treturn results;\r\n};\r\n\r\n/**\r\n * Utility function for retrieving the text value of an array of DOM nodes\r\n * @param {Array|Element} elem\r\n */\r\ngetText = Sizzle.getText = function( elem ) {\r\n\tvar node,\r\n\t\tret = \"\",\r\n\t\ti = 0,\r\n\t\tnodeType = elem.nodeType;\r\n\r\n\tif ( !nodeType ) {\r\n\r\n\t\t// If no nodeType, this is expected to be an array\r\n\t\twhile ( ( node = elem[ i++ ] ) ) {\r\n\r\n\t\t\t// Do not traverse comment nodes\r\n\t\t\tret += getText( node );\r\n\t\t}\r\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\r\n\r\n\t\t// Use textContent for elements\r\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\r\n\t\tif ( typeof elem.textContent === \"string\" ) {\r\n\t\t\treturn elem.textContent;\r\n\t\t} else {\r\n\r\n\t\t\t// Traverse its children\r\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\r\n\t\t\t\tret += getText( elem );\r\n\t\t\t}\r\n\t\t}\r\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\r\n\t\treturn elem.nodeValue;\r\n\t}\r\n\r\n\t// Do not include comment or processing instruction nodes\r\n\r\n\treturn ret;\r\n};\r\n\r\nExpr = Sizzle.selectors = {\r\n\r\n\t// Can be adjusted by the user\r\n\tcacheLength: 50,\r\n\r\n\tcreatePseudo: markFunction,\r\n\r\n\tmatch: matchExpr,\r\n\r\n\tattrHandle: {},\r\n\r\n\tfind: {},\r\n\r\n\trelative: {\r\n\t\t\">\": { dir: \"parentNode\", first: true },\r\n\t\t\" \": { dir: \"parentNode\" },\r\n\t\t\"+\": { dir: \"previousSibling\", first: true },\r\n\t\t\"~\": { dir: \"previousSibling\" }\r\n\t},\r\n\r\n\tpreFilter: {\r\n\t\t\"ATTR\": function( match ) {\r\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\r\n\r\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\r\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\r\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\r\n\r\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\r\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\r\n\t\t\t}\r\n\r\n\t\t\treturn match.slice( 0, 4 );\r\n\t\t},\r\n\r\n\t\t\"CHILD\": function( match ) {\r\n\r\n\t\t\t/* matches from matchExpr[\"CHILD\"]\r\n\t\t\t\t1 type (only|nth|...)\r\n\t\t\t\t2 what (child|of-type)\r\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\r\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\r\n\t\t\t\t5 sign of xn-component\r\n\t\t\t\t6 x of xn-component\r\n\t\t\t\t7 sign of y-component\r\n\t\t\t\t8 y of y-component\r\n\t\t\t*/\r\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\r\n\r\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\r\n\r\n\t\t\t\t// nth-* requires argument\r\n\t\t\t\tif ( !match[ 3 ] ) {\r\n\t\t\t\t\tSizzle.error( match[ 0 ] );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\r\n\t\t\t\t// remember that false/true cast respectively to 0/1\r\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\r\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\r\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\r\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\r\n\r\n\t\t\t\t// other types prohibit arguments\r\n\t\t\t} else if ( match[ 3 ] ) {\r\n\t\t\t\tSizzle.error( match[ 0 ] );\r\n\t\t\t}\r\n\r\n\t\t\treturn match;\r\n\t\t},\r\n\r\n\t\t\"PSEUDO\": function( match ) {\r\n\t\t\tvar excess,\r\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\r\n\r\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\t// Accept quoted arguments as-is\r\n\t\t\tif ( match[ 3 ] ) {\r\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\r\n\r\n\t\t\t// Strip excess characters from unquoted arguments\r\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\r\n\r\n\t\t\t\t// Get excess from tokenize (recursively)\r\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\r\n\r\n\t\t\t\t// advance to the next closing parenthesis\r\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\r\n\r\n\t\t\t\t// excess is a negative index\r\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\r\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\r\n\t\t\t}\r\n\r\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\r\n\t\t\treturn match.slice( 0, 3 );\r\n\t\t}\r\n\t},\r\n\r\n\tfilter: {\r\n\r\n\t\t\"TAG\": function( nodeNameSelector ) {\r\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\r\n\t\t\treturn nodeNameSelector === \"*\" ?\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t} :\r\n\t\t\t\tfunction( elem ) {\r\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\r\n\t\t\t\t};\r\n\t\t},\r\n\r\n\t\t\"CLASS\": function( className ) {\r\n\t\t\tvar pattern = classCache[ className + \" \" ];\r\n\r\n\t\t\treturn pattern ||\r\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\r\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\r\n\t\t\t\t\t\tclassName, function( elem ) {\r\n\t\t\t\t\t\t\treturn pattern.test(\r\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\r\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\r\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\r\n\t\t\t\t\t\t\t\t\"\"\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t} );\r\n\t\t},\r\n\r\n\t\t\"ATTR\": function( name, operator, check ) {\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\tvar result = Sizzle.attr( elem, name );\r\n\r\n\t\t\t\tif ( result == null ) {\r\n\t\t\t\t\treturn operator === \"!=\";\r\n\t\t\t\t}\r\n\t\t\t\tif ( !operator ) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tresult += \"\";\r\n\r\n\t\t\t\t/* eslint-disable max-len */\r\n\r\n\t\t\t\treturn operator === \"=\" ? result === check :\r\n\t\t\t\t\toperator === \"!=\" ? result !== check :\r\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\r\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\r\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\r\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\r\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\r\n\t\t\t\t\tfalse;\r\n\t\t\t\t/* eslint-enable max-len */\r\n\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\r\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\r\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\r\n\t\t\t\tofType = what === \"of-type\";\r\n\r\n\t\t\treturn first === 1 && last === 0 ?\r\n\r\n\t\t\t\t// Shortcut for :nth-*(n)\r\n\t\t\t\tfunction( elem ) {\r\n\t\t\t\t\treturn !!elem.parentNode;\r\n\t\t\t\t} :\r\n\r\n\t\t\t\tfunction( elem, _context, xml ) {\r\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\r\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\r\n\t\t\t\t\t\tparent = elem.parentNode,\r\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\r\n\t\t\t\t\t\tuseCache = !xml && !ofType,\r\n\t\t\t\t\t\tdiff = false;\r\n\r\n\t\t\t\t\tif ( parent ) {\r\n\r\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\r\n\t\t\t\t\t\tif ( simple ) {\r\n\t\t\t\t\t\t\twhile ( dir ) {\r\n\t\t\t\t\t\t\t\tnode = elem;\r\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\r\n\t\t\t\t\t\t\t\t\tif ( ofType ?\r\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\r\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\r\n\r\n\t\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\r\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\r\n\r\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\r\n\t\t\t\t\t\tif ( forward && useCache ) {\r\n\r\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\r\n\r\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\r\n\t\t\t\t\t\t\tnode = parent;\r\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\r\n\r\n\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\r\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\r\n\r\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\r\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\r\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\r\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\r\n\r\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\r\n\r\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\r\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\r\n\r\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\r\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\r\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\r\n\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// Use previously-cached element index if available\r\n\t\t\t\t\t\t\tif ( useCache ) {\r\n\r\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\r\n\t\t\t\t\t\t\t\tnode = elem;\r\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\r\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\r\n\r\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\r\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\r\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// xml :nth-child(...)\r\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\r\n\t\t\t\t\t\t\tif ( diff === false ) {\r\n\r\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\r\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\r\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\r\n\r\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\r\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\r\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\r\n\t\t\t\t\t\t\t\t\t\t++diff ) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\r\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\r\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\r\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\r\n\t\t\t\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\r\n\t\t\t\t\t\tdiff -= last;\r\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t},\r\n\r\n\t\t\"PSEUDO\": function( pseudo, argument ) {\r\n\r\n\t\t\t// pseudo-class names are case-insensitive\r\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\r\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\r\n\t\t\t// Remember that setFilters inherits from pseudos\r\n\t\t\tvar args,\r\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\r\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\r\n\r\n\t\t\t// The user may use createPseudo to indicate that\r\n\t\t\t// arguments are needed to create the filter function\r\n\t\t\t// just as Sizzle does\r\n\t\t\tif ( fn[ expando ] ) {\r\n\t\t\t\treturn fn( argument );\r\n\t\t\t}\r\n\r\n\t\t\t// But maintain support for old signatures\r\n\t\t\tif ( fn.length > 1 ) {\r\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\r\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\r\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\r\n\t\t\t\t\t\tvar idx,\r\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\r\n\t\t\t\t\t\t\ti = matched.length;\r\n\t\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\r\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} ) :\r\n\t\t\t\t\tfunction( elem ) {\r\n\t\t\t\t\t\treturn fn( elem, 0, args );\r\n\t\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\treturn fn;\r\n\t\t}\r\n\t},\r\n\r\n\tpseudos: {\r\n\r\n\t\t// Potentially complex pseudos\r\n\t\t\"not\": markFunction( function( selector ) {\r\n\r\n\t\t\t// Trim the selector passed to compile\r\n\t\t\t// to avoid treating leading and trailing\r\n\t\t\t// spaces as combinators\r\n\t\t\tvar input = [],\r\n\t\t\t\tresults = [],\r\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\r\n\r\n\t\t\treturn matcher[ expando ] ?\r\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\r\n\t\t\t\t\tvar elem,\r\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\r\n\t\t\t\t\t\ti = seed.length;\r\n\r\n\t\t\t\t\t// Match elements unmatched by `matcher`\r\n\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\r\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} ) :\r\n\t\t\t\tfunction( elem, _context, xml ) {\r\n\t\t\t\t\tinput[ 0 ] = elem;\r\n\t\t\t\t\tmatcher( input, null, xml, results );\r\n\r\n\t\t\t\t\t// Don't keep the element (issue #299)\r\n\t\t\t\t\tinput[ 0 ] = null;\r\n\t\t\t\t\treturn !results.pop();\r\n\t\t\t\t};\r\n\t\t} ),\r\n\r\n\t\t\"has\": markFunction( function( selector ) {\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\r\n\t\t\t};\r\n\t\t} ),\r\n\r\n\t\t\"contains\": markFunction( function( text ) {\r\n\t\t\ttext = text.replace( runescape, funescape );\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\r\n\t\t\t};\r\n\t\t} ),\r\n\r\n\t\t// \"Whether an element is represented by a :lang() selector\r\n\t\t// is based solely on the element's language value\r\n\t\t// being equal to the identifier C,\r\n\t\t// or beginning with the identifier C immediately followed by \"-\".\r\n\t\t// The matching of C against the element's language value is performed case-insensitively.\r\n\t\t// The identifier C does not have to be a valid language name.\"\r\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\r\n\t\t\"lang\": markFunction( function( lang ) {\r\n\r\n\t\t\t// lang value must be a valid identifier\r\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\r\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\r\n\t\t\t}\r\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\r\n\t\t\treturn function( elem ) {\r\n\t\t\t\tvar elemLang;\r\n\t\t\t\tdo {\r\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\r\n\t\t\t\t\t\telem.lang :\r\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\r\n\r\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\r\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\r\n\t\t\t\treturn false;\r\n\t\t\t};\r\n\t\t} ),\r\n\r\n\t\t// Miscellaneous\r\n\t\t\"target\": function( elem ) {\r\n\t\t\tvar hash = window.location && window.location.hash;\r\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\r\n\t\t},\r\n\r\n\t\t\"root\": function( elem ) {\r\n\t\t\treturn elem === docElem;\r\n\t\t},\r\n\r\n\t\t\"focus\": function( elem ) {\r\n\t\t\treturn elem === document.activeElement &&\r\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\r\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\r\n\t\t},\r\n\r\n\t\t// Boolean properties\r\n\t\t\"enabled\": createDisabledPseudo( false ),\r\n\t\t\"disabled\": createDisabledPseudo( true ),\r\n\r\n\t\t\"checked\": function( elem ) {\r\n\r\n\t\t\t// In CSS3, :checked should return both checked and selected elements\r\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\r\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\r\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\r\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\r\n\t\t},\r\n\r\n\t\t\"selected\": function( elem ) {\r\n\r\n\t\t\t// Accessing this property makes selected-by-default\r\n\t\t\t// options in Safari work properly\r\n\t\t\tif ( elem.parentNode ) {\r\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\r\n\t\t\t\telem.parentNode.selectedIndex;\r\n\t\t\t}\r\n\r\n\t\t\treturn elem.selected === true;\r\n\t\t},\r\n\r\n\t\t// Contents\r\n\t\t\"empty\": function( elem ) {\r\n\r\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\r\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\r\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\r\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\r\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\r\n\t\t\t\tif ( elem.nodeType < 6 ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t},\r\n\r\n\t\t\"parent\": function( elem ) {\r\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\r\n\t\t},\r\n\r\n\t\t// Element/input types\r\n\t\t\"header\": function( elem ) {\r\n\t\t\treturn rheader.test( elem.nodeName );\r\n\t\t},\r\n\r\n\t\t\"input\": function( elem ) {\r\n\t\t\treturn rinputs.test( elem.nodeName );\r\n\t\t},\r\n\r\n\t\t\"button\": function( elem ) {\r\n\t\t\tvar name = elem.nodeName.toLowerCase();\r\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\r\n\t\t},\r\n\r\n\t\t\"text\": function( elem ) {\r\n\t\t\tvar attr;\r\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\r\n\t\t\t\telem.type === \"text\" &&\r\n\r\n\t\t\t\t// Support: IE<8\r\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\r\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\r\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\r\n\t\t},\r\n\r\n\t\t// Position-in-collection\r\n\t\t\"first\": createPositionalPseudo( function() {\r\n\t\t\treturn [ 0 ];\r\n\t\t} ),\r\n\r\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\r\n\t\t\treturn [ length - 1 ];\r\n\t\t} ),\r\n\r\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\r\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\r\n\t\t} ),\r\n\r\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\r\n\t\t\tvar i = 0;\r\n\t\t\tfor ( ; i < length; i += 2 ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t} ),\r\n\r\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\r\n\t\t\tvar i = 1;\r\n\t\t\tfor ( ; i < length; i += 2 ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t} ),\r\n\r\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\r\n\t\t\tvar i = argument < 0 ?\r\n\t\t\t\targument + length :\r\n\t\t\t\targument > length ?\r\n\t\t\t\t\tlength :\r\n\t\t\t\t\targument;\r\n\t\t\tfor ( ; --i >= 0; ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t} ),\r\n\r\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\r\n\t\t\tvar i = argument < 0 ? argument + length : argument;\r\n\t\t\tfor ( ; ++i < length; ) {\r\n\t\t\t\tmatchIndexes.push( i );\r\n\t\t\t}\r\n\t\t\treturn matchIndexes;\r\n\t\t} )\r\n\t}\r\n};\r\n\r\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\r\n\r\n// Add button/input type pseudos\r\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\r\n\tExpr.pseudos[ i ] = createInputPseudo( i );\r\n}\r\nfor ( i in { submit: true, reset: true } ) {\r\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\r\n}\r\n\r\n// Easy API for creating new setFilters\r\nfunction setFilters() {}\r\nsetFilters.prototype = Expr.filters = Expr.pseudos;\r\nExpr.setFilters = new setFilters();\r\n\r\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\r\n\tvar matched, match, tokens, type,\r\n\t\tsoFar, groups, preFilters,\r\n\t\tcached = tokenCache[ selector + \" \" ];\r\n\r\n\tif ( cached ) {\r\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\r\n\t}\r\n\r\n\tsoFar = selector;\r\n\tgroups = [];\r\n\tpreFilters = Expr.preFilter;\r\n\r\n\twhile ( soFar ) {\r\n\r\n\t\t// Comma and first run\r\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\r\n\t\t\tif ( match ) {\r\n\r\n\t\t\t\t// Don't consume trailing commas as valid\r\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\r\n\t\t\t}\r\n\t\t\tgroups.push( ( tokens = [] ) );\r\n\t\t}\r\n\r\n\t\tmatched = false;\r\n\r\n\t\t// Combinators\r\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\r\n\t\t\tmatched = match.shift();\r\n\t\t\ttokens.push( {\r\n\t\t\t\tvalue: matched,\r\n\r\n\t\t\t\t// Cast descendant combinators to space\r\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\r\n\t\t\t} );\r\n\t\t\tsoFar = soFar.slice( matched.length );\r\n\t\t}\r\n\r\n\t\t// Filters\r\n\t\tfor ( type in Expr.filter ) {\r\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\r\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\r\n\t\t\t\tmatched = match.shift();\r\n\t\t\t\ttokens.push( {\r\n\t\t\t\t\tvalue: matched,\r\n\t\t\t\t\ttype: type,\r\n\t\t\t\t\tmatches: match\r\n\t\t\t\t} );\r\n\t\t\t\tsoFar = soFar.slice( matched.length );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( !matched ) {\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the length of the invalid excess\r\n\t// if we're just parsing\r\n\t// Otherwise, throw an error or return tokens\r\n\treturn parseOnly ?\r\n\t\tsoFar.length :\r\n\t\tsoFar ?\r\n\t\t\tSizzle.error( selector ) :\r\n\r\n\t\t\t// Cache the tokens\r\n\t\t\ttokenCache( selector, groups ).slice( 0 );\r\n};\r\n\r\nfunction toSelector( tokens ) {\r\n\tvar i = 0,\r\n\t\tlen = tokens.length,\r\n\t\tselector = \"\";\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tselector += tokens[ i ].value;\r\n\t}\r\n\treturn selector;\r\n}\r\n\r\nfunction addCombinator( matcher, combinator, base ) {\r\n\tvar dir = combinator.dir,\r\n\t\tskip = combinator.next,\r\n\t\tkey = skip || dir,\r\n\t\tcheckNonElements = base && key === \"parentNode\",\r\n\t\tdoneName = done++;\r\n\r\n\treturn combinator.first ?\r\n\r\n\t\t// Check against closest ancestor/preceding element\r\n\t\tfunction( elem, context, xml ) {\r\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\r\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\r\n\t\t\t\t\treturn matcher( elem, context, xml );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t} :\r\n\r\n\t\t// Check against all ancestor/preceding elements\r\n\t\tfunction( elem, context, xml ) {\r\n\t\t\tvar oldCache, uniqueCache, outerCache,\r\n\t\t\t\tnewCache = [ dirruns, doneName ];\r\n\r\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\r\n\t\t\tif ( xml ) {\r\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\r\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\r\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\r\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\r\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\r\n\r\n\t\t\t\t\t\t// Support: IE <9 only\r\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\r\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\r\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\r\n\r\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\r\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\r\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\r\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\r\n\r\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\r\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\r\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\r\n\r\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\r\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\r\n\t\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn false;\r\n\t\t};\r\n}\r\n\r\nfunction elementMatcher( matchers ) {\r\n\treturn matchers.length > 1 ?\r\n\t\tfunction( elem, context, xml ) {\r\n\t\t\tvar i = matchers.length;\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn true;\r\n\t\t} :\r\n\t\tmatchers[ 0 ];\r\n}\r\n\r\nfunction multipleContexts( selector, contexts, results ) {\r\n\tvar i = 0,\r\n\t\tlen = contexts.length;\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tSizzle( selector, contexts[ i ], results );\r\n\t}\r\n\treturn results;\r\n}\r\n\r\nfunction condense( unmatched, map, filter, context, xml ) {\r\n\tvar elem,\r\n\t\tnewUnmatched = [],\r\n\t\ti = 0,\r\n\t\tlen = unmatched.length,\r\n\t\tmapped = map != null;\r\n\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tif ( ( elem = unmatched[ i ] ) ) {\r\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\r\n\t\t\t\tnewUnmatched.push( elem );\r\n\t\t\t\tif ( mapped ) {\r\n\t\t\t\t\tmap.push( i );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn newUnmatched;\r\n}\r\n\r\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\r\n\tif ( postFilter && !postFilter[ expando ] ) {\r\n\t\tpostFilter = setMatcher( postFilter );\r\n\t}\r\n\tif ( postFinder && !postFinder[ expando ] ) {\r\n\t\tpostFinder = setMatcher( postFinder, postSelector );\r\n\t}\r\n\treturn markFunction( function( seed, results, context, xml ) {\r\n\t\tvar temp, i, elem,\r\n\t\t\tpreMap = [],\r\n\t\t\tpostMap = [],\r\n\t\t\tpreexisting = results.length,\r\n\r\n\t\t\t// Get initial elements from seed or context\r\n\t\t\telems = seed || multipleContexts(\r\n\t\t\t\tselector || \"*\",\r\n\t\t\t\tcontext.nodeType ? [ context ] : context,\r\n\t\t\t\t[]\r\n\t\t\t),\r\n\r\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\r\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\r\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\r\n\t\t\t\telems,\r\n\r\n\t\t\tmatcherOut = matcher ?\r\n\r\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\r\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\r\n\r\n\t\t\t\t\t// ...intermediate processing is necessary\r\n\t\t\t\t\t[] :\r\n\r\n\t\t\t\t\t// ...otherwise use results directly\r\n\t\t\t\t\tresults :\r\n\t\t\t\tmatcherIn;\r\n\r\n\t\t// Find primary matches\r\n\t\tif ( matcher ) {\r\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\r\n\t\t}\r\n\r\n\t\t// Apply postFilter\r\n\t\tif ( postFilter ) {\r\n\t\t\ttemp = condense( matcherOut, postMap );\r\n\t\t\tpostFilter( temp, [], context, xml );\r\n\r\n\t\t\t// Un-match failing elements by moving them back to matcherIn\r\n\t\t\ti = temp.length;\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\r\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( seed ) {\r\n\t\t\tif ( postFinder || preFilter ) {\r\n\t\t\t\tif ( postFinder ) {\r\n\r\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\r\n\t\t\t\t\ttemp = [];\r\n\t\t\t\t\ti = matcherOut.length;\r\n\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\r\n\r\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\r\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\r\n\t\t\t\ti = matcherOut.length;\r\n\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\r\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\r\n\r\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t// Add elements to results, through postFinder if defined\r\n\t\t} else {\r\n\t\t\tmatcherOut = condense(\r\n\t\t\t\tmatcherOut === results ?\r\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\r\n\t\t\t\t\tmatcherOut\r\n\t\t\t);\r\n\t\t\tif ( postFinder ) {\r\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\r\n\t\t\t} else {\r\n\t\t\t\tpush.apply( results, matcherOut );\r\n\t\t\t}\r\n\t\t}\r\n\t} );\r\n}\r\n\r\nfunction matcherFromTokens( tokens ) {\r\n\tvar checkContext, matcher, j,\r\n\t\tlen = tokens.length,\r\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\r\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\r\n\t\ti = leadingRelative ? 1 : 0,\r\n\r\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\r\n\t\tmatchContext = addCombinator( function( elem ) {\r\n\t\t\treturn elem === checkContext;\r\n\t\t}, implicitRelative, true ),\r\n\t\tmatchAnyContext = addCombinator( function( elem ) {\r\n\t\t\treturn indexOf( checkContext, elem ) > -1;\r\n\t\t}, implicitRelative, true ),\r\n\t\tmatchers = [ function( elem, context, xml ) {\r\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\r\n\t\t\t\t( checkContext = context ).nodeType ?\r\n\t\t\t\t\tmatchContext( elem, context, xml ) :\r\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\r\n\r\n\t\t\t// Avoid hanging onto element (issue #299)\r\n\t\t\tcheckContext = null;\r\n\t\t\treturn ret;\r\n\t\t} ];\r\n\r\n\tfor ( ; i < len; i++ ) {\r\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\r\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\r\n\t\t} else {\r\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\r\n\r\n\t\t\t// Return special upon seeing a positional matcher\r\n\t\t\tif ( matcher[ expando ] ) {\r\n\r\n\t\t\t\t// Find the next relative operator (if any) for proper handling\r\n\t\t\t\tj = ++i;\r\n\t\t\t\tfor ( ; j < len; j++ ) {\r\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn setMatcher(\r\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\r\n\t\t\t\t\ti > 1 && toSelector(\r\n\r\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\r\n\t\t\t\t\ttokens\r\n\t\t\t\t\t\t.slice( 0, i - 1 )\r\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\r\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\r\n\t\t\t\t\tmatcher,\r\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\r\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\r\n\t\t\t\t\tj < len && toSelector( tokens )\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\tmatchers.push( matcher );\r\n\t\t}\r\n\t}\r\n\r\n\treturn elementMatcher( matchers );\r\n}\r\n\r\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\r\n\tvar bySet = setMatchers.length > 0,\r\n\t\tbyElement = elementMatchers.length > 0,\r\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\r\n\t\t\tvar elem, j, matcher,\r\n\t\t\t\tmatchedCount = 0,\r\n\t\t\t\ti = \"0\",\r\n\t\t\t\tunmatched = seed && [],\r\n\t\t\t\tsetMatched = [],\r\n\t\t\t\tcontextBackup = outermostContext,\r\n\r\n\t\t\t\t// We must always have either seed elements or outermost context\r\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\r\n\r\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\r\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\r\n\t\t\t\tlen = elems.length;\r\n\r\n\t\t\tif ( outermost ) {\r\n\r\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\toutermostContext = context == document || context || outermost;\r\n\t\t\t}\r\n\r\n\t\t\t// Add elements passing elementMatchers directly to results\r\n\t\t\t// Support: IE<9, Safari\r\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\r\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\r\n\t\t\t\tif ( byElement && elem ) {\r\n\t\t\t\t\tj = 0;\r\n\r\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\r\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\r\n\t\t\t\t\t// two documents; shallow comparisons work.\r\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\r\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\r\n\t\t\t\t\t\tsetDocument( elem );\r\n\t\t\t\t\t\txml = !documentIsHTML;\r\n\t\t\t\t\t}\r\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\r\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\r\n\t\t\t\t\t\t\tresults.push( elem );\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( outermost ) {\r\n\t\t\t\t\t\tdirruns = dirrunsUnique;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Track unmatched elements for set filters\r\n\t\t\t\tif ( bySet ) {\r\n\r\n\t\t\t\t\t// They will have gone through all possible matchers\r\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\r\n\t\t\t\t\t\tmatchedCount--;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Lengthen the array for every element, matched or not\r\n\t\t\t\t\tif ( seed ) {\r\n\t\t\t\t\t\tunmatched.push( elem );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\r\n\t\t\t// makes the latter nonnegative.\r\n\t\t\tmatchedCount += i;\r\n\r\n\t\t\t// Apply set filters to unmatched elements\r\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\r\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\r\n\t\t\t// no element matchers and no seed.\r\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\r\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\r\n\t\t\t// numerically zero.\r\n\t\t\tif ( bySet && i !== matchedCount ) {\r\n\t\t\t\tj = 0;\r\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\r\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( seed ) {\r\n\r\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\r\n\t\t\t\t\tif ( matchedCount > 0 ) {\r\n\t\t\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\r\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\r\n\t\t\t\t\tsetMatched = condense( setMatched );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Add matches to results\r\n\t\t\t\tpush.apply( results, setMatched );\r\n\r\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\r\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\r\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\r\n\r\n\t\t\t\t\tSizzle.uniqueSort( results );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Override manipulation of globals by nested matchers\r\n\t\t\tif ( outermost ) {\r\n\t\t\t\tdirruns = dirrunsUnique;\r\n\t\t\t\toutermostContext = contextBackup;\r\n\t\t\t}\r\n\r\n\t\t\treturn unmatched;\r\n\t\t};\r\n\r\n\treturn bySet ?\r\n\t\tmarkFunction( superMatcher ) :\r\n\t\tsuperMatcher;\r\n}\r\n\r\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\r\n\tvar i,\r\n\t\tsetMatchers = [],\r\n\t\telementMatchers = [],\r\n\t\tcached = compilerCache[ selector + \" \" ];\r\n\r\n\tif ( !cached ) {\r\n\r\n\t\t// Generate a function of recursive functions that can be used to check each element\r\n\t\tif ( !match ) {\r\n\t\t\tmatch = tokenize( selector );\r\n\t\t}\r\n\t\ti = match.length;\r\n\t\twhile ( i-- ) {\r\n\t\t\tcached = matcherFromTokens( match[ i ] );\r\n\t\t\tif ( cached[ expando ] ) {\r\n\t\t\t\tsetMatchers.push( cached );\r\n\t\t\t} else {\r\n\t\t\t\telementMatchers.push( cached );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Cache the compiled function\r\n\t\tcached = compilerCache(\r\n\t\t\tselector,\r\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\r\n\t\t);\r\n\r\n\t\t// Save selector and tokenization\r\n\t\tcached.selector = selector;\r\n\t}\r\n\treturn cached;\r\n};\r\n\r\n/**\r\n * A low-level selection function that works with Sizzle's compiled\r\n * selector functions\r\n * @param {String|Function} selector A selector or a pre-compiled\r\n * selector function built with Sizzle.compile\r\n * @param {Element} context\r\n * @param {Array} [results]\r\n * @param {Array} [seed] A set of elements to match against\r\n */\r\nselect = Sizzle.select = function( selector, context, results, seed ) {\r\n\tvar i, tokens, token, type, find,\r\n\t\tcompiled = typeof selector === \"function\" && selector,\r\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\r\n\r\n\tresults = results || [];\r\n\r\n\t// Try to minimize operations if there is only one selector in the list and no seed\r\n\t// (the latter of which guarantees us context)\r\n\tif ( match.length === 1 ) {\r\n\r\n\t\t// Reduce context if the leading compound selector is an ID\r\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\r\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\r\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\r\n\r\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\r\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\r\n\t\t\tif ( !context ) {\r\n\t\t\t\treturn results;\r\n\r\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\r\n\t\t\t} else if ( compiled ) {\r\n\t\t\t\tcontext = context.parentNode;\r\n\t\t\t}\r\n\r\n\t\t\tselector = selector.slice( tokens.shift().value.length );\r\n\t\t}\r\n\r\n\t\t// Fetch a seed set for right-to-left matching\r\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\r\n\t\twhile ( i-- ) {\r\n\t\t\ttoken = tokens[ i ];\r\n\r\n\t\t\t// Abort if we hit a combinator\r\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\r\n\r\n\t\t\t\t// Search, expanding context for leading sibling combinators\r\n\t\t\t\tif ( ( seed = find(\r\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\r\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\r\n\t\t\t\t\t\tcontext\r\n\t\t\t\t) ) ) {\r\n\r\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\r\n\t\t\t\t\ttokens.splice( i, 1 );\r\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\r\n\t\t\t\t\tif ( !selector ) {\r\n\t\t\t\t\t\tpush.apply( results, seed );\r\n\t\t\t\t\t\treturn results;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Compile and execute a filtering function if one is not provided\r\n\t// Provide `match` to avoid retokenization if we modified the selector above\r\n\t( compiled || compile( selector, match ) )(\r\n\t\tseed,\r\n\t\tcontext,\r\n\t\t!documentIsHTML,\r\n\t\tresults,\r\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\r\n\t);\r\n\treturn results;\r\n};\r\n\r\n// One-time assignments\r\n\r\n// Sort stability\r\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\r\n\r\n// Support: Chrome 14-35+\r\n// Always assume duplicates if they aren't passed to the comparison function\r\nsupport.detectDuplicates = !!hasDuplicate;\r\n\r\n// Initialize against the default document\r\nsetDocument();\r\n\r\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\r\n// Detached nodes confoundingly follow *each other*\r\nsupport.sortDetached = assert( function( el ) {\r\n\r\n\t// Should return 1, but returns 4 (following)\r\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\r\n} );\r\n\r\n// Support: IE<8\r\n// Prevent attribute/property \"interpolation\"\r\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\r\nif ( !assert( function( el ) {\r\n\tel.innerHTML = \"\";\r\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\r\n} ) ) {\r\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\r\n\t\tif ( !isXML ) {\r\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\r\n\t\t}\r\n\t} );\r\n}\r\n\r\n// Support: IE<9\r\n// Use defaultValue in place of getAttribute(\"value\")\r\nif ( !support.attributes || !assert( function( el ) {\r\n\tel.innerHTML = \"\";\r\n\tel.firstChild.setAttribute( \"value\", \"\" );\r\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\r\n} ) ) {\r\n\taddHandle( \"value\", function( elem, _name, isXML ) {\r\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\r\n\t\t\treturn elem.defaultValue;\r\n\t\t}\r\n\t} );\r\n}\r\n\r\n// Support: IE<9\r\n// Use getAttributeNode to fetch booleans when getAttribute lies\r\nif ( !assert( function( el ) {\r\n\treturn el.getAttribute( \"disabled\" ) == null;\r\n} ) ) {\r\n\taddHandle( booleans, function( elem, name, isXML ) {\r\n\t\tvar val;\r\n\t\tif ( !isXML ) {\r\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\r\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\r\n\t\t\t\t\tval.value :\r\n\t\t\t\t\tnull;\r\n\t\t}\r\n\t} );\r\n}\r\n\r\nreturn Sizzle;\r\n\r\n} )( window );\r\n\r\n\r\n\r\njQuery.find = Sizzle;\r\njQuery.expr = Sizzle.selectors;\r\n\r\n// Deprecated\r\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\r\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\r\njQuery.text = Sizzle.getText;\r\njQuery.isXMLDoc = Sizzle.isXML;\r\njQuery.contains = Sizzle.contains;\r\njQuery.escapeSelector = Sizzle.escape;\r\n\r\n\r\n\r\n\r\nvar dir = function( elem, dir, until ) {\r\n\tvar matched = [],\r\n\t\ttruncate = until !== undefined;\r\n\r\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\r\n\t\tif ( elem.nodeType === 1 ) {\r\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tmatched.push( elem );\r\n\t\t}\r\n\t}\r\n\treturn matched;\r\n};\r\n\r\n\r\nvar siblings = function( n, elem ) {\r\n\tvar matched = [];\r\n\r\n\tfor ( ; n; n = n.nextSibling ) {\r\n\t\tif ( n.nodeType === 1 && n !== elem ) {\r\n\t\t\tmatched.push( n );\r\n\t\t}\r\n\t}\r\n\r\n\treturn matched;\r\n};\r\n\r\n\r\nvar rneedsContext = jQuery.expr.match.needsContext;\r\n\r\n\r\n\r\nfunction nodeName( elem, name ) {\r\n\r\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\r\n\r\n}\r\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\r\n\r\n\r\n\r\n// Implement the identical functionality for filter and not\r\nfunction winnow( elements, qualifier, not ) {\r\n\tif ( isFunction( qualifier ) ) {\r\n\t\treturn jQuery.grep( elements, function( elem, i ) {\r\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\r\n\t\t} );\r\n\t}\r\n\r\n\t// Single element\r\n\tif ( qualifier.nodeType ) {\r\n\t\treturn jQuery.grep( elements, function( elem ) {\r\n\t\t\treturn ( elem === qualifier ) !== not;\r\n\t\t} );\r\n\t}\r\n\r\n\t// Arraylike of elements (jQuery, arguments, Array)\r\n\tif ( typeof qualifier !== \"string\" ) {\r\n\t\treturn jQuery.grep( elements, function( elem ) {\r\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\r\n\t\t} );\r\n\t}\r\n\r\n\t// Filtered directly for both simple and complex selectors\r\n\treturn jQuery.filter( qualifier, elements, not );\r\n}\r\n\r\njQuery.filter = function( expr, elems, not ) {\r\n\tvar elem = elems[ 0 ];\r\n\r\n\tif ( not ) {\r\n\t\texpr = \":not(\" + expr + \")\";\r\n\t}\r\n\r\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\r\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\r\n\t}\r\n\r\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\r\n\t\treturn elem.nodeType === 1;\r\n\t} ) );\r\n};\r\n\r\njQuery.fn.extend( {\r\n\tfind: function( selector ) {\r\n\t\tvar i, ret,\r\n\t\t\tlen = this.length,\r\n\t\t\tself = this;\r\n\r\n\t\tif ( typeof selector !== \"string\" ) {\r\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\r\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\r\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} ) );\r\n\t\t}\r\n\r\n\t\tret = this.pushStack( [] );\r\n\r\n\t\tfor ( i = 0; i < len; i++ ) {\r\n\t\t\tjQuery.find( selector, self[ i ], ret );\r\n\t\t}\r\n\r\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\r\n\t},\r\n\tfilter: function( selector ) {\r\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\r\n\t},\r\n\tnot: function( selector ) {\r\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\r\n\t},\r\n\tis: function( selector ) {\r\n\t\treturn !!winnow(\r\n\t\t\tthis,\r\n\r\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\r\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\r\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\r\n\t\t\t\tjQuery( selector ) :\r\n\t\t\t\tselector || [],\r\n\t\t\tfalse\r\n\t\t).length;\r\n\t}\r\n} );\r\n\r\n\r\n// Initialize a jQuery object\r\n\r\n\r\n// A central reference to the root jQuery(document)\r\nvar rootjQuery,\r\n\r\n\t// A simple way to check for HTML strings\r\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\r\n\t// Strict HTML recognition (#11290: must start with <)\r\n\t// Shortcut simple #id case for speed\r\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\r\n\r\n\tinit = jQuery.fn.init = function( selector, context, root ) {\r\n\t\tvar match, elem;\r\n\r\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\r\n\t\tif ( !selector ) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\t// Method init() accepts an alternate rootjQuery\r\n\t\t// so migrate can support jQuery.sub (gh-2101)\r\n\t\troot = root || rootjQuery;\r\n\r\n\t\t// Handle HTML strings\r\n\t\tif ( typeof selector === \"string\" ) {\r\n\t\t\tif ( selector[ 0 ] === \"<\" &&\r\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\r\n\t\t\t\tselector.length >= 3 ) {\r\n\r\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\r\n\t\t\t\tmatch = [ null, selector, null ];\r\n\r\n\t\t\t} else {\r\n\t\t\t\tmatch = rquickExpr.exec( selector );\r\n\t\t\t}\r\n\r\n\t\t\t// Match html or make sure no context is specified for #id\r\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\r\n\r\n\t\t\t\t// HANDLE: $(html) -> $(array)\r\n\t\t\t\tif ( match[ 1 ] ) {\r\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\r\n\r\n\t\t\t\t\t// Option to run scripts is true for back-compat\r\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\r\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\r\n\t\t\t\t\t\tmatch[ 1 ],\r\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\r\n\t\t\t\t\t\ttrue\r\n\t\t\t\t\t) );\r\n\r\n\t\t\t\t\t// HANDLE: $(html, props)\r\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\r\n\t\t\t\t\t\tfor ( match in context ) {\r\n\r\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\r\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\r\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\r\n\r\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn this;\r\n\r\n\t\t\t\t// HANDLE: $(#id)\r\n\t\t\t\t} else {\r\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\r\n\r\n\t\t\t\t\tif ( elem ) {\r\n\r\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\r\n\t\t\t\t\t\tthis[ 0 ] = elem;\r\n\t\t\t\t\t\tthis.length = 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\r\n\t\t\t// HANDLE: $(expr, $(...))\r\n\t\t\t} else if ( !context || context.jquery ) {\r\n\t\t\t\treturn ( context || root ).find( selector );\r\n\r\n\t\t\t// HANDLE: $(expr, context)\r\n\t\t\t// (which is just equivalent to: $(context).find(expr)\r\n\t\t\t} else {\r\n\t\t\t\treturn this.constructor( context ).find( selector );\r\n\t\t\t}\r\n\r\n\t\t// HANDLE: $(DOMElement)\r\n\t\t} else if ( selector.nodeType ) {\r\n\t\t\tthis[ 0 ] = selector;\r\n\t\t\tthis.length = 1;\r\n\t\t\treturn this;\r\n\r\n\t\t// HANDLE: $(function)\r\n\t\t// Shortcut for document ready\r\n\t\t} else if ( isFunction( selector ) ) {\r\n\t\t\treturn root.ready !== undefined ?\r\n\t\t\t\troot.ready( selector ) :\r\n\r\n\t\t\t\t// Execute immediately if ready is not present\r\n\t\t\t\tselector( jQuery );\r\n\t\t}\r\n\r\n\t\treturn jQuery.makeArray( selector, this );\r\n\t};\r\n\r\n// Give the init function the jQuery prototype for later instantiation\r\ninit.prototype = jQuery.fn;\r\n\r\n// Initialize central reference\r\nrootjQuery = jQuery( document );\r\n\r\n\r\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\r\n\r\n\t// Methods guaranteed to produce a unique set when starting from a unique set\r\n\tguaranteedUnique = {\r\n\t\tchildren: true,\r\n\t\tcontents: true,\r\n\t\tnext: true,\r\n\t\tprev: true\r\n\t};\r\n\r\njQuery.fn.extend( {\r\n\thas: function( target ) {\r\n\t\tvar targets = jQuery( target, this ),\r\n\t\t\tl = targets.length;\r\n\r\n\t\treturn this.filter( function() {\r\n\t\t\tvar i = 0;\r\n\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tclosest: function( selectors, context ) {\r\n\t\tvar cur,\r\n\t\t\ti = 0,\r\n\t\t\tl = this.length,\r\n\t\t\tmatched = [],\r\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\r\n\r\n\t\t// Positional selectors never match, since there's no _selection_ context\r\n\t\tif ( !rneedsContext.test( selectors ) ) {\r\n\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\r\n\r\n\t\t\t\t\t// Always skip document fragments\r\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\r\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\r\n\r\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\r\n\t\t\t\t\t\tcur.nodeType === 1 &&\r\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\r\n\r\n\t\t\t\t\t\tmatched.push( cur );\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\r\n\t},\r\n\r\n\t// Determine the position of an element within the set\r\n\tindex: function( elem ) {\r\n\r\n\t\t// No argument, return index in parent\r\n\t\tif ( !elem ) {\r\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\r\n\t\t}\r\n\r\n\t\t// Index in selector\r\n\t\tif ( typeof elem === \"string\" ) {\r\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\r\n\t\t}\r\n\r\n\t\t// Locate the position of the desired element\r\n\t\treturn indexOf.call( this,\r\n\r\n\t\t\t// If it receives a jQuery object, the first element is used\r\n\t\t\telem.jquery ? elem[ 0 ] : elem\r\n\t\t);\r\n\t},\r\n\r\n\tadd: function( selector, context ) {\r\n\t\treturn this.pushStack(\r\n\t\t\tjQuery.uniqueSort(\r\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\r\n\t\t\t)\r\n\t\t);\r\n\t},\r\n\r\n\taddBack: function( selector ) {\r\n\t\treturn this.add( selector == null ?\r\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\r\n\t\t);\r\n\t}\r\n} );\r\n\r\nfunction sibling( cur, dir ) {\r\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\r\n\treturn cur;\r\n}\r\n\r\njQuery.each( {\r\n\tparent: function( elem ) {\r\n\t\tvar parent = elem.parentNode;\r\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\r\n\t},\r\n\tparents: function( elem ) {\r\n\t\treturn dir( elem, \"parentNode\" );\r\n\t},\r\n\tparentsUntil: function( elem, _i, until ) {\r\n\t\treturn dir( elem, \"parentNode\", until );\r\n\t},\r\n\tnext: function( elem ) {\r\n\t\treturn sibling( elem, \"nextSibling\" );\r\n\t},\r\n\tprev: function( elem ) {\r\n\t\treturn sibling( elem, \"previousSibling\" );\r\n\t},\r\n\tnextAll: function( elem ) {\r\n\t\treturn dir( elem, \"nextSibling\" );\r\n\t},\r\n\tprevAll: function( elem ) {\r\n\t\treturn dir( elem, \"previousSibling\" );\r\n\t},\r\n\tnextUntil: function( elem, _i, until ) {\r\n\t\treturn dir( elem, \"nextSibling\", until );\r\n\t},\r\n\tprevUntil: function( elem, _i, until ) {\r\n\t\treturn dir( elem, \"previousSibling\", until );\r\n\t},\r\n\tsiblings: function( elem ) {\r\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\r\n\t},\r\n\tchildren: function( elem ) {\r\n\t\treturn siblings( elem.firstChild );\r\n\t},\r\n\tcontents: function( elem ) {\r\n\t\tif ( elem.contentDocument != null &&\r\n\r\n\t\t\t// Support: IE 11+\r\n\t\t\t// elements with no `data` attribute has an object\r\n\t\t\t// `contentDocument` with a `null` prototype.\r\n\t\t\tgetProto( elem.contentDocument ) ) {\r\n\r\n\t\t\treturn elem.contentDocument;\r\n\t\t}\r\n\r\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\r\n\t\t// Treat the template element as a regular one in browsers that\r\n\t\t// don't support it.\r\n\t\tif ( nodeName( elem, \"template\" ) ) {\r\n\t\t\telem = elem.content || elem;\r\n\t\t}\r\n\r\n\t\treturn jQuery.merge( [], elem.childNodes );\r\n\t}\r\n}, function( name, fn ) {\r\n\tjQuery.fn[ name ] = function( until, selector ) {\r\n\t\tvar matched = jQuery.map( this, fn, until );\r\n\r\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\r\n\t\t\tselector = until;\r\n\t\t}\r\n\r\n\t\tif ( selector && typeof selector === \"string\" ) {\r\n\t\t\tmatched = jQuery.filter( selector, matched );\r\n\t\t}\r\n\r\n\t\tif ( this.length > 1 ) {\r\n\r\n\t\t\t// Remove duplicates\r\n\t\t\tif ( !guaranteedUnique[ name ] ) {\r\n\t\t\t\tjQuery.uniqueSort( matched );\r\n\t\t\t}\r\n\r\n\t\t\t// Reverse order for parents* and prev-derivatives\r\n\t\t\tif ( rparentsprev.test( name ) ) {\r\n\t\t\t\tmatched.reverse();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.pushStack( matched );\r\n\t};\r\n} );\r\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\r\n\r\n\r\n\r\n// Convert String-formatted options into Object-formatted ones\r\nfunction createOptions( options ) {\r\n\tvar object = {};\r\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\r\n\t\tobject[ flag ] = true;\r\n\t} );\r\n\treturn object;\r\n}\r\n\r\n/*\r\n * Create a callback list using the following parameters:\r\n *\r\n *\toptions: an optional list of space-separated options that will change how\r\n *\t\t\tthe callback list behaves or a more traditional option object\r\n *\r\n * By default a callback list will act like an event callback list and can be\r\n * \"fired\" multiple times.\r\n *\r\n * Possible options:\r\n *\r\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\r\n *\r\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\r\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\r\n *\t\t\t\t\tvalues (like a Deferred)\r\n *\r\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\r\n *\r\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\r\n *\r\n */\r\njQuery.Callbacks = function( options ) {\r\n\r\n\t// Convert options from String-formatted to Object-formatted if needed\r\n\t// (we check in cache first)\r\n\toptions = typeof options === \"string\" ?\r\n\t\tcreateOptions( options ) :\r\n\t\tjQuery.extend( {}, options );\r\n\r\n\tvar // Flag to know if list is currently firing\r\n\t\tfiring,\r\n\r\n\t\t// Last fire value for non-forgettable lists\r\n\t\tmemory,\r\n\r\n\t\t// Flag to know if list was already fired\r\n\t\tfired,\r\n\r\n\t\t// Flag to prevent firing\r\n\t\tlocked,\r\n\r\n\t\t// Actual callback list\r\n\t\tlist = [],\r\n\r\n\t\t// Queue of execution data for repeatable lists\r\n\t\tqueue = [],\r\n\r\n\t\t// Index of currently firing callback (modified by add/remove as needed)\r\n\t\tfiringIndex = -1,\r\n\r\n\t\t// Fire callbacks\r\n\t\tfire = function() {\r\n\r\n\t\t\t// Enforce single-firing\r\n\t\t\tlocked = locked || options.once;\r\n\r\n\t\t\t// Execute callbacks for all pending executions,\r\n\t\t\t// respecting firingIndex overrides and runtime changes\r\n\t\t\tfired = firing = true;\r\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\r\n\t\t\t\tmemory = queue.shift();\r\n\t\t\t\twhile ( ++firingIndex < list.length ) {\r\n\r\n\t\t\t\t\t// Run callback and check for early termination\r\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\r\n\t\t\t\t\t\toptions.stopOnFalse ) {\r\n\r\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\r\n\t\t\t\t\t\tfiringIndex = list.length;\r\n\t\t\t\t\t\tmemory = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Forget the data if we're done with it\r\n\t\t\tif ( !options.memory ) {\r\n\t\t\t\tmemory = false;\r\n\t\t\t}\r\n\r\n\t\t\tfiring = false;\r\n\r\n\t\t\t// Clean up if we're done firing for good\r\n\t\t\tif ( locked ) {\r\n\r\n\t\t\t\t// Keep an empty list if we have data for future add calls\r\n\t\t\t\tif ( memory ) {\r\n\t\t\t\t\tlist = [];\r\n\r\n\t\t\t\t// Otherwise, this object is spent\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlist = \"\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Actual Callbacks object\r\n\t\tself = {\r\n\r\n\t\t\t// Add a callback or a collection of callbacks to the list\r\n\t\t\tadd: function() {\r\n\t\t\t\tif ( list ) {\r\n\r\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\r\n\t\t\t\t\tif ( memory && !firing ) {\r\n\t\t\t\t\t\tfiringIndex = list.length - 1;\r\n\t\t\t\t\t\tqueue.push( memory );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t( function add( args ) {\r\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\r\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\r\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\r\n\t\t\t\t\t\t\t\t\tlist.push( arg );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\r\n\r\n\t\t\t\t\t\t\t\t// Inspect recursively\r\n\t\t\t\t\t\t\t\tadd( arg );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} );\r\n\t\t\t\t\t} )( arguments );\r\n\r\n\t\t\t\t\tif ( memory && !firing ) {\r\n\t\t\t\t\t\tfire();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t// Remove a callback from the list\r\n\t\t\tremove: function() {\r\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\r\n\t\t\t\t\tvar index;\r\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\r\n\t\t\t\t\t\tlist.splice( index, 1 );\r\n\r\n\t\t\t\t\t\t// Handle firing indexes\r\n\t\t\t\t\t\tif ( index <= firingIndex ) {\r\n\t\t\t\t\t\t\tfiringIndex--;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} );\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t// Check if a given callback is in the list.\r\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\r\n\t\t\thas: function( fn ) {\r\n\t\t\t\treturn fn ?\r\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\r\n\t\t\t\t\tlist.length > 0;\r\n\t\t\t},\r\n\r\n\t\t\t// Remove all callbacks from the list\r\n\t\t\tempty: function() {\r\n\t\t\t\tif ( list ) {\r\n\t\t\t\t\tlist = [];\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t// Disable .fire and .add\r\n\t\t\t// Abort any current/pending executions\r\n\t\t\t// Clear all callbacks and values\r\n\t\t\tdisable: function() {\r\n\t\t\t\tlocked = queue = [];\r\n\t\t\t\tlist = memory = \"\";\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\tdisabled: function() {\r\n\t\t\t\treturn !list;\r\n\t\t\t},\r\n\r\n\t\t\t// Disable .fire\r\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\r\n\t\t\t// Abort any pending executions\r\n\t\t\tlock: function() {\r\n\t\t\t\tlocked = queue = [];\r\n\t\t\t\tif ( !memory && !firing ) {\r\n\t\t\t\t\tlist = memory = \"\";\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\t\t\tlocked: function() {\r\n\t\t\t\treturn !!locked;\r\n\t\t\t},\r\n\r\n\t\t\t// Call all callbacks with the given context and arguments\r\n\t\t\tfireWith: function( context, args ) {\r\n\t\t\t\tif ( !locked ) {\r\n\t\t\t\t\targs = args || [];\r\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\r\n\t\t\t\t\tqueue.push( args );\r\n\t\t\t\t\tif ( !firing ) {\r\n\t\t\t\t\t\tfire();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t// Call all the callbacks with the given arguments\r\n\t\t\tfire: function() {\r\n\t\t\t\tself.fireWith( this, arguments );\r\n\t\t\t\treturn this;\r\n\t\t\t},\r\n\r\n\t\t\t// To know if the callbacks have already been called at least once\r\n\t\t\tfired: function() {\r\n\t\t\t\treturn !!fired;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\treturn self;\r\n};\r\n\r\n\r\nfunction Identity( v ) {\r\n\treturn v;\r\n}\r\nfunction Thrower( ex ) {\r\n\tthrow ex;\r\n}\r\n\r\nfunction adoptValue( value, resolve, reject, noValue ) {\r\n\tvar method;\r\n\r\n\ttry {\r\n\r\n\t\t// Check for promise aspect first to privilege synchronous behavior\r\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\r\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\r\n\r\n\t\t// Other thenables\r\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\r\n\t\t\tmethod.call( value, resolve, reject );\r\n\r\n\t\t// Other non-thenables\r\n\t\t} else {\r\n\r\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\r\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\r\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\r\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\r\n\t\t}\r\n\r\n\t// For Promises/A+, convert exceptions into rejections\r\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\r\n\t// Deferred#then to conditionally suppress rejection.\r\n\t} catch ( value ) {\r\n\r\n\t\t// Support: Android 4.0 only\r\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\r\n\t\treject.apply( undefined, [ value ] );\r\n\t}\r\n}\r\n\r\njQuery.extend( {\r\n\r\n\tDeferred: function( func ) {\r\n\t\tvar tuples = [\r\n\r\n\t\t\t\t// action, add listener, callbacks,\r\n\t\t\t\t// ... .then handlers, argument index, [final state]\r\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\r\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\r\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\r\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\r\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\r\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\r\n\t\t\t],\r\n\t\t\tstate = \"pending\",\r\n\t\t\tpromise = {\r\n\t\t\t\tstate: function() {\r\n\t\t\t\t\treturn state;\r\n\t\t\t\t},\r\n\t\t\t\talways: function() {\r\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\t\t\t\t\"catch\": function( fn ) {\r\n\t\t\t\t\treturn promise.then( null, fn );\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Keep pipe for back-compat\r\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\r\n\t\t\t\t\tvar fns = arguments;\r\n\r\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\r\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\r\n\r\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\r\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\r\n\r\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\r\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\r\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\r\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\r\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\r\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\r\n\t\t\t\t\t\t\t\t\treturned.promise()\r\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\r\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\r\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\r\n\t\t\t\t\t\t\t\t\t\tthis,\r\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} );\r\n\t\t\t\t\t\t} );\r\n\t\t\t\t\t\tfns = null;\r\n\t\t\t\t\t} ).promise();\r\n\t\t\t\t},\r\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\r\n\t\t\t\t\tvar maxDepth = 0;\r\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\r\n\t\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\t\tvar that = this,\r\n\t\t\t\t\t\t\t\targs = arguments,\r\n\t\t\t\t\t\t\t\tmightThrow = function() {\r\n\t\t\t\t\t\t\t\t\tvar returned, then;\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\r\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\r\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\r\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\r\n\t\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\r\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\r\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\r\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\r\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\r\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\r\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\r\n\t\t\t\t\t\t\t\t\tthen = returned &&\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\r\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\r\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\r\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\r\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\r\n\t\t\t\t\t\t\t\t\t\treturned.then;\r\n\r\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\r\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\r\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\r\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\r\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\r\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\r\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\r\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\r\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\r\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\r\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\r\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\r\n\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\r\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\r\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\r\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\r\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\r\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\r\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\r\n\t\t\t\t\t\t\t\tprocess = special ?\r\n\t\t\t\t\t\t\t\t\tmightThrow :\r\n\t\t\t\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\r\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\r\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\r\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\r\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\r\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\r\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\r\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\r\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\r\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\r\n\t\t\t\t\t\t\t// subsequent errors\r\n\t\t\t\t\t\t\tif ( depth ) {\r\n\t\t\t\t\t\t\t\tprocess();\r\n\t\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\r\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\r\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\r\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\r\n\r\n\t\t\t\t\t\t// progress_handlers.add( ... )\r\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\r\n\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\r\n\t\t\t\t\t\t\t\t\tonProgress :\r\n\t\t\t\t\t\t\t\t\tIdentity,\r\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\r\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\r\n\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\r\n\t\t\t\t\t\t\t\t\tonFulfilled :\r\n\t\t\t\t\t\t\t\t\tIdentity\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t// rejected_handlers.add( ... )\r\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\r\n\t\t\t\t\t\t\tresolve(\r\n\t\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\t\tnewDefer,\r\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\r\n\t\t\t\t\t\t\t\t\tonRejected :\r\n\t\t\t\t\t\t\t\t\tThrower\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t} ).promise();\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Get a promise for this deferred\r\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\r\n\t\t\t\tpromise: function( obj ) {\r\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tdeferred = {};\r\n\r\n\t\t// Add list-specific methods\r\n\t\tjQuery.each( tuples, function( i, tuple ) {\r\n\t\t\tvar list = tuple[ 2 ],\r\n\t\t\t\tstateString = tuple[ 5 ];\r\n\r\n\t\t\t// promise.progress = list.add\r\n\t\t\t// promise.done = list.add\r\n\t\t\t// promise.fail = list.add\r\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\r\n\r\n\t\t\t// Handle state\r\n\t\t\tif ( stateString ) {\r\n\t\t\t\tlist.add(\r\n\t\t\t\t\tfunction() {\r\n\r\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\r\n\t\t\t\t\t\t// state = \"rejected\"\r\n\t\t\t\t\t\tstate = stateString;\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t// rejected_callbacks.disable\r\n\t\t\t\t\t// fulfilled_callbacks.disable\r\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\r\n\r\n\t\t\t\t\t// rejected_handlers.disable\r\n\t\t\t\t\t// fulfilled_handlers.disable\r\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\r\n\r\n\t\t\t\t\t// progress_callbacks.lock\r\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\r\n\r\n\t\t\t\t\t// progress_handlers.lock\r\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// progress_handlers.fire\r\n\t\t\t// fulfilled_handlers.fire\r\n\t\t\t// rejected_handlers.fire\r\n\t\t\tlist.add( tuple[ 3 ].fire );\r\n\r\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\r\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\r\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\r\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\r\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\r\n\t\t\t\treturn this;\r\n\t\t\t};\r\n\r\n\t\t\t// deferred.notifyWith = list.fireWith\r\n\t\t\t// deferred.resolveWith = list.fireWith\r\n\t\t\t// deferred.rejectWith = list.fireWith\r\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\r\n\t\t} );\r\n\r\n\t\t// Make the deferred a promise\r\n\t\tpromise.promise( deferred );\r\n\r\n\t\t// Call given func if any\r\n\t\tif ( func ) {\r\n\t\t\tfunc.call( deferred, deferred );\r\n\t\t}\r\n\r\n\t\t// All done!\r\n\t\treturn deferred;\r\n\t},\r\n\r\n\t// Deferred helper\r\n\twhen: function( singleValue ) {\r\n\t\tvar\r\n\r\n\t\t\t// count of uncompleted subordinates\r\n\t\t\tremaining = arguments.length,\r\n\r\n\t\t\t// count of unprocessed arguments\r\n\t\t\ti = remaining,\r\n\r\n\t\t\t// subordinate fulfillment data\r\n\t\t\tresolveContexts = Array( i ),\r\n\t\t\tresolveValues = slice.call( arguments ),\r\n\r\n\t\t\t// the primary Deferred\r\n\t\t\tprimary = jQuery.Deferred(),\r\n\r\n\t\t\t// subordinate callback factory\r\n\t\t\tupdateFunc = function( i ) {\r\n\t\t\t\treturn function( value ) {\r\n\t\t\t\t\tresolveContexts[ i ] = this;\r\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\r\n\t\t\t\t\tif ( !( --remaining ) ) {\r\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t};\r\n\r\n\t\t// Single- and empty arguments are adopted like Promise.resolve\r\n\t\tif ( remaining <= 1 ) {\r\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\r\n\t\t\t\t!remaining );\r\n\r\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\r\n\t\t\tif ( primary.state() === \"pending\" ||\r\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\r\n\r\n\t\t\t\treturn primary.then();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Multiple arguments are aggregated like Promise.all array elements\r\n\t\twhile ( i-- ) {\r\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\r\n\t\t}\r\n\r\n\t\treturn primary.promise();\r\n\t}\r\n} );\r\n\r\n\r\n// These usually indicate a programmer mistake during development,\r\n// warn about them ASAP rather than swallowing them by default.\r\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\r\n\r\njQuery.Deferred.exceptionHook = function( error, stack ) {\r\n\r\n\t// Support: IE 8 - 9 only\r\n\t// Console exists when dev tools are open, which can happen at any time\r\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\r\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\r\n\t}\r\n};\r\n\r\n\r\n\r\n\r\njQuery.readyException = function( error ) {\r\n\twindow.setTimeout( function() {\r\n\t\tthrow error;\r\n\t} );\r\n};\r\n\r\n\r\n\r\n\r\n// The deferred used on DOM ready\r\nvar readyList = jQuery.Deferred();\r\n\r\njQuery.fn.ready = function( fn ) {\r\n\r\n\treadyList\r\n\t\t.then( fn )\r\n\r\n\t\t// Wrap jQuery.readyException in a function so that the lookup\r\n\t\t// happens at the time of error handling instead of callback\r\n\t\t// registration.\r\n\t\t.catch( function( error ) {\r\n\t\t\tjQuery.readyException( error );\r\n\t\t} );\r\n\r\n\treturn this;\r\n};\r\n\r\njQuery.extend( {\r\n\r\n\t// Is the DOM ready to be used? Set to true once it occurs.\r\n\tisReady: false,\r\n\r\n\t// A counter to track how many items to wait for before\r\n\t// the ready event fires. See #6781\r\n\treadyWait: 1,\r\n\r\n\t// Handle when the DOM is ready\r\n\tready: function( wait ) {\r\n\r\n\t\t// Abort if there are pending holds or we're already ready\r\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Remember that the DOM is ready\r\n\t\tjQuery.isReady = true;\r\n\r\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\r\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// If there are functions bound, to execute\r\n\t\treadyList.resolveWith( document, [ jQuery ] );\r\n\t}\r\n} );\r\n\r\njQuery.ready.then = readyList.then;\r\n\r\n// The ready event handler and self cleanup method\r\nfunction completed() {\r\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\r\n\twindow.removeEventListener( \"load\", completed );\r\n\tjQuery.ready();\r\n}\r\n\r\n// Catch cases where $(document).ready() is called\r\n// after the browser event has already occurred.\r\n// Support: IE <=9 - 10 only\r\n// Older IE sometimes signals \"interactive\" too soon\r\nif ( document.readyState === \"complete\" ||\r\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\r\n\r\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\r\n\twindow.setTimeout( jQuery.ready );\r\n\r\n} else {\r\n\r\n\t// Use the handy event callback\r\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\r\n\r\n\t// A fallback to window.onload, that will always work\r\n\twindow.addEventListener( \"load\", completed );\r\n}\r\n\r\n\r\n\r\n\r\n// Multifunctional method to get and set values of a collection\r\n// The value/s can optionally be executed if it's a function\r\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\r\n\tvar i = 0,\r\n\t\tlen = elems.length,\r\n\t\tbulk = key == null;\r\n\r\n\t// Sets many values\r\n\tif ( toType( key ) === \"object\" ) {\r\n\t\tchainable = true;\r\n\t\tfor ( i in key ) {\r\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\r\n\t\t}\r\n\r\n\t// Sets one value\r\n\t} else if ( value !== undefined ) {\r\n\t\tchainable = true;\r\n\r\n\t\tif ( !isFunction( value ) ) {\r\n\t\t\traw = true;\r\n\t\t}\r\n\r\n\t\tif ( bulk ) {\r\n\r\n\t\t\t// Bulk operations run against the entire set\r\n\t\t\tif ( raw ) {\r\n\t\t\t\tfn.call( elems, value );\r\n\t\t\t\tfn = null;\r\n\r\n\t\t\t// ...except when executing function values\r\n\t\t\t} else {\r\n\t\t\t\tbulk = fn;\r\n\t\t\t\tfn = function( elem, _key, value ) {\r\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( fn ) {\r\n\t\t\tfor ( ; i < len; i++ ) {\r\n\t\t\t\tfn(\r\n\t\t\t\t\telems[ i ], key, raw ?\r\n\t\t\t\t\t\tvalue :\r\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif ( chainable ) {\r\n\t\treturn elems;\r\n\t}\r\n\r\n\t// Gets\r\n\tif ( bulk ) {\r\n\t\treturn fn.call( elems );\r\n\t}\r\n\r\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\r\n};\r\n\r\n\r\n// Matches dashed string for camelizing\r\nvar rmsPrefix = /^-ms-/,\r\n\trdashAlpha = /-([a-z])/g;\r\n\r\n// Used by camelCase as callback to replace()\r\nfunction fcamelCase( _all, letter ) {\r\n\treturn letter.toUpperCase();\r\n}\r\n\r\n// Convert dashed to camelCase; used by the css and data modules\r\n// Support: IE <=9 - 11, Edge 12 - 15\r\n// Microsoft forgot to hump their vendor prefix (#9572)\r\nfunction camelCase( string ) {\r\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\r\n}\r\nvar acceptData = function( owner ) {\r\n\r\n\t// Accepts only:\r\n\t// - Node\r\n\t// - Node.ELEMENT_NODE\r\n\t// - Node.DOCUMENT_NODE\r\n\t// - Object\r\n\t// - Any\r\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\r\n};\r\n\r\n\r\n\r\n\r\nfunction Data() {\r\n\tthis.expando = jQuery.expando + Data.uid++;\r\n}\r\n\r\nData.uid = 1;\r\n\r\nData.prototype = {\r\n\r\n\tcache: function( owner ) {\r\n\r\n\t\t// Check if the owner object already has a cache\r\n\t\tvar value = owner[ this.expando ];\r\n\r\n\t\t// If not, create one\r\n\t\tif ( !value ) {\r\n\t\t\tvalue = {};\r\n\r\n\t\t\t// We can accept data for non-element nodes in modern browsers,\r\n\t\t\t// but we should not, see #8335.\r\n\t\t\t// Always return an empty object.\r\n\t\t\tif ( acceptData( owner ) ) {\r\n\r\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\r\n\t\t\t\t// use plain assignment\r\n\t\t\t\tif ( owner.nodeType ) {\r\n\t\t\t\t\towner[ this.expando ] = value;\r\n\r\n\t\t\t\t// Otherwise secure it in a non-enumerable property\r\n\t\t\t\t// configurable must be true to allow the property to be\r\n\t\t\t\t// deleted when data is removed\r\n\t\t\t\t} else {\r\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\r\n\t\t\t\t\t\tvalue: value,\r\n\t\t\t\t\t\tconfigurable: true\r\n\t\t\t\t\t} );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn value;\r\n\t},\r\n\tset: function( owner, data, value ) {\r\n\t\tvar prop,\r\n\t\t\tcache = this.cache( owner );\r\n\r\n\t\t// Handle: [ owner, key, value ] args\r\n\t\t// Always use camelCase key (gh-2257)\r\n\t\tif ( typeof data === \"string\" ) {\r\n\t\t\tcache[ camelCase( data ) ] = value;\r\n\r\n\t\t// Handle: [ owner, { properties } ] args\r\n\t\t} else {\r\n\r\n\t\t\t// Copy the properties one-by-one to the cache object\r\n\t\t\tfor ( prop in data ) {\r\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn cache;\r\n\t},\r\n\tget: function( owner, key ) {\r\n\t\treturn key === undefined ?\r\n\t\t\tthis.cache( owner ) :\r\n\r\n\t\t\t// Always use camelCase key (gh-2257)\r\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\r\n\t},\r\n\taccess: function( owner, key, value ) {\r\n\r\n\t\t// In cases where either:\r\n\t\t//\r\n\t\t// 1. No key was specified\r\n\t\t// 2. A string key was specified, but no value provided\r\n\t\t//\r\n\t\t// Take the \"read\" path and allow the get method to determine\r\n\t\t// which value to return, respectively either:\r\n\t\t//\r\n\t\t// 1. The entire cache object\r\n\t\t// 2. The data stored at the key\r\n\t\t//\r\n\t\tif ( key === undefined ||\r\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\r\n\r\n\t\t\treturn this.get( owner, key );\r\n\t\t}\r\n\r\n\t\t// When the key is not a string, or both a key and value\r\n\t\t// are specified, set or extend (existing objects) with either:\r\n\t\t//\r\n\t\t// 1. An object of properties\r\n\t\t// 2. A key and value\r\n\t\t//\r\n\t\tthis.set( owner, key, value );\r\n\r\n\t\t// Since the \"set\" path can have two possible entry points\r\n\t\t// return the expected data based on which path was taken[*]\r\n\t\treturn value !== undefined ? value : key;\r\n\t},\r\n\tremove: function( owner, key ) {\r\n\t\tvar i,\r\n\t\t\tcache = owner[ this.expando ];\r\n\r\n\t\tif ( cache === undefined ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( key !== undefined ) {\r\n\r\n\t\t\t// Support array or space separated string of keys\r\n\t\t\tif ( Array.isArray( key ) ) {\r\n\r\n\t\t\t\t// If key is an array of keys...\r\n\t\t\t\t// We always set camelCase keys, so remove that.\r\n\t\t\t\tkey = key.map( camelCase );\r\n\t\t\t} else {\r\n\t\t\t\tkey = camelCase( key );\r\n\r\n\t\t\t\t// If a key with the spaces exists, use it.\r\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\r\n\t\t\t\tkey = key in cache ?\r\n\t\t\t\t\t[ key ] :\r\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\r\n\t\t\t}\r\n\r\n\t\t\ti = key.length;\r\n\r\n\t\t\twhile ( i-- ) {\r\n\t\t\t\tdelete cache[ key[ i ] ];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Remove the expando if there's no more data\r\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\r\n\r\n\t\t\t// Support: Chrome <=35 - 45\r\n\t\t\t// Webkit & Blink performance suffers when deleting properties\r\n\t\t\t// from DOM nodes, so set to undefined instead\r\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\r\n\t\t\tif ( owner.nodeType ) {\r\n\t\t\t\towner[ this.expando ] = undefined;\r\n\t\t\t} else {\r\n\t\t\t\tdelete owner[ this.expando ];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\thasData: function( owner ) {\r\n\t\tvar cache = owner[ this.expando ];\r\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\r\n\t}\r\n};\r\nvar dataPriv = new Data();\r\n\r\nvar dataUser = new Data();\r\n\r\n\r\n\r\n//\tImplementation Summary\r\n//\r\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\r\n//\t2. Improve the module's maintainability by reducing the storage\r\n//\t\tpaths to a single mechanism.\r\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\r\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\r\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\r\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\r\n\r\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\r\n\trmultiDash = /[A-Z]/g;\r\n\r\nfunction getData( data ) {\r\n\tif ( data === \"true\" ) {\r\n\t\treturn true;\r\n\t}\r\n\r\n\tif ( data === \"false\" ) {\r\n\t\treturn false;\r\n\t}\r\n\r\n\tif ( data === \"null\" ) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// Only convert to a number if it doesn't change the string\r\n\tif ( data === +data + \"\" ) {\r\n\t\treturn +data;\r\n\t}\r\n\r\n\tif ( rbrace.test( data ) ) {\r\n\t\treturn JSON.parse( data );\r\n\t}\r\n\r\n\treturn data;\r\n}\r\n\r\nfunction dataAttr( elem, key, data ) {\r\n\tvar name;\r\n\r\n\t// If nothing was found internally, try to fetch any\r\n\t// data from the HTML5 data-* attribute\r\n\tif ( data === undefined && elem.nodeType === 1 ) {\r\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\r\n\t\tdata = elem.getAttribute( name );\r\n\r\n\t\tif ( typeof data === \"string\" ) {\r\n\t\t\ttry {\r\n\t\t\t\tdata = getData( data );\r\n\t\t\t} catch ( e ) {}\r\n\r\n\t\t\t// Make sure we set the data so it isn't changed later\r\n\t\t\tdataUser.set( elem, key, data );\r\n\t\t} else {\r\n\t\t\tdata = undefined;\r\n\t\t}\r\n\t}\r\n\treturn data;\r\n}\r\n\r\njQuery.extend( {\r\n\thasData: function( elem ) {\r\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\r\n\t},\r\n\r\n\tdata: function( elem, name, data ) {\r\n\t\treturn dataUser.access( elem, name, data );\r\n\t},\r\n\r\n\tremoveData: function( elem, name ) {\r\n\t\tdataUser.remove( elem, name );\r\n\t},\r\n\r\n\t// TODO: Now that all calls to _data and _removeData have been replaced\r\n\t// with direct calls to dataPriv methods, these can be deprecated.\r\n\t_data: function( elem, name, data ) {\r\n\t\treturn dataPriv.access( elem, name, data );\r\n\t},\r\n\r\n\t_removeData: function( elem, name ) {\r\n\t\tdataPriv.remove( elem, name );\r\n\t}\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\tdata: function( key, value ) {\r\n\t\tvar i, name, data,\r\n\t\t\telem = this[ 0 ],\r\n\t\t\tattrs = elem && elem.attributes;\r\n\r\n\t\t// Gets all values\r\n\t\tif ( key === undefined ) {\r\n\t\t\tif ( this.length ) {\r\n\t\t\t\tdata = dataUser.get( elem );\r\n\r\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\r\n\t\t\t\t\ti = attrs.length;\r\n\t\t\t\t\twhile ( i-- ) {\r\n\r\n\t\t\t\t\t\t// Support: IE 11 only\r\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\r\n\t\t\t\t\t\tif ( attrs[ i ] ) {\r\n\t\t\t\t\t\t\tname = attrs[ i ].name;\r\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\r\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\r\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn data;\r\n\t\t}\r\n\r\n\t\t// Sets multiple values\r\n\t\tif ( typeof key === \"object\" ) {\r\n\t\t\treturn this.each( function() {\r\n\t\t\t\tdataUser.set( this, key );\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\treturn access( this, function( value ) {\r\n\t\t\tvar data;\r\n\r\n\t\t\t// The calling jQuery object (element matches) is not empty\r\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\r\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\r\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\r\n\t\t\t// throw an exception if an attempt to read a data cache is made.\r\n\t\t\tif ( elem && value === undefined ) {\r\n\r\n\t\t\t\t// Attempt to get data from the cache\r\n\t\t\t\t// The key will always be camelCased in Data\r\n\t\t\t\tdata = dataUser.get( elem, key );\r\n\t\t\t\tif ( data !== undefined ) {\r\n\t\t\t\t\treturn data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Attempt to \"discover\" the data in\r\n\t\t\t\t// HTML5 custom data-* attrs\r\n\t\t\t\tdata = dataAttr( elem, key );\r\n\t\t\t\tif ( data !== undefined ) {\r\n\t\t\t\t\treturn data;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// We tried really hard, but the data doesn't exist.\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Set the data...\r\n\t\t\tthis.each( function() {\r\n\r\n\t\t\t\t// We always store the camelCased key\r\n\t\t\t\tdataUser.set( this, key, value );\r\n\t\t\t} );\r\n\t\t}, null, value, arguments.length > 1, null, true );\r\n\t},\r\n\r\n\tremoveData: function( key ) {\r\n\t\treturn this.each( function() {\r\n\t\t\tdataUser.remove( this, key );\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\n\r\njQuery.extend( {\r\n\tqueue: function( elem, type, data ) {\r\n\t\tvar queue;\r\n\r\n\t\tif ( elem ) {\r\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\r\n\t\t\tqueue = dataPriv.get( elem, type );\r\n\r\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\r\n\t\t\tif ( data ) {\r\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\r\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tqueue.push( data );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn queue || [];\r\n\t\t}\r\n\t},\r\n\r\n\tdequeue: function( elem, type ) {\r\n\t\ttype = type || \"fx\";\r\n\r\n\t\tvar queue = jQuery.queue( elem, type ),\r\n\t\t\tstartLength = queue.length,\r\n\t\t\tfn = queue.shift(),\r\n\t\t\thooks = jQuery._queueHooks( elem, type ),\r\n\t\t\tnext = function() {\r\n\t\t\t\tjQuery.dequeue( elem, type );\r\n\t\t\t};\r\n\r\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\r\n\t\tif ( fn === \"inprogress\" ) {\r\n\t\t\tfn = queue.shift();\r\n\t\t\tstartLength--;\r\n\t\t}\r\n\r\n\t\tif ( fn ) {\r\n\r\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\r\n\t\t\t// automatically dequeued\r\n\t\t\tif ( type === \"fx\" ) {\r\n\t\t\t\tqueue.unshift( \"inprogress\" );\r\n\t\t\t}\r\n\r\n\t\t\t// Clear up the last queue stop function\r\n\t\t\tdelete hooks.stop;\r\n\t\t\tfn.call( elem, next, hooks );\r\n\t\t}\r\n\r\n\t\tif ( !startLength && hooks ) {\r\n\t\t\thooks.empty.fire();\r\n\t\t}\r\n\t},\r\n\r\n\t// Not public - generate a queueHooks object, or return the current one\r\n\t_queueHooks: function( elem, type ) {\r\n\t\tvar key = type + \"queueHooks\";\r\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\r\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\r\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\r\n\t\t\t} )\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\tqueue: function( type, data ) {\r\n\t\tvar setter = 2;\r\n\r\n\t\tif ( typeof type !== \"string\" ) {\r\n\t\t\tdata = type;\r\n\t\t\ttype = \"fx\";\r\n\t\t\tsetter--;\r\n\t\t}\r\n\r\n\t\tif ( arguments.length < setter ) {\r\n\t\t\treturn jQuery.queue( this[ 0 ], type );\r\n\t\t}\r\n\r\n\t\treturn data === undefined ?\r\n\t\t\tthis :\r\n\t\t\tthis.each( function() {\r\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\r\n\r\n\t\t\t\t// Ensure a hooks for this queue\r\n\t\t\t\tjQuery._queueHooks( this, type );\r\n\r\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\r\n\t\t\t\t\tjQuery.dequeue( this, type );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t},\r\n\tdequeue: function( type ) {\r\n\t\treturn this.each( function() {\r\n\t\t\tjQuery.dequeue( this, type );\r\n\t\t} );\r\n\t},\r\n\tclearQueue: function( type ) {\r\n\t\treturn this.queue( type || \"fx\", [] );\r\n\t},\r\n\r\n\t// Get a promise resolved when queues of a certain type\r\n\t// are emptied (fx is the type by default)\r\n\tpromise: function( type, obj ) {\r\n\t\tvar tmp,\r\n\t\t\tcount = 1,\r\n\t\t\tdefer = jQuery.Deferred(),\r\n\t\t\telements = this,\r\n\t\t\ti = this.length,\r\n\t\t\tresolve = function() {\r\n\t\t\t\tif ( !( --count ) ) {\r\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\tif ( typeof type !== \"string\" ) {\r\n\t\t\tobj = type;\r\n\t\t\ttype = undefined;\r\n\t\t}\r\n\t\ttype = type || \"fx\";\r\n\r\n\t\twhile ( i-- ) {\r\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\r\n\t\t\tif ( tmp && tmp.empty ) {\r\n\t\t\t\tcount++;\r\n\t\t\t\ttmp.empty.add( resolve );\r\n\t\t\t}\r\n\t\t}\r\n\t\tresolve();\r\n\t\treturn defer.promise( obj );\r\n\t}\r\n} );\r\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\r\n\r\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\r\n\r\n\r\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\r\n\r\nvar documentElement = document.documentElement;\r\n\r\n\r\n\r\n\tvar isAttached = function( elem ) {\r\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\r\n\t\t},\r\n\t\tcomposed = { composed: true };\r\n\r\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\r\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\r\n\t// Support: iOS 10.0-10.2 only\r\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\r\n\t// leading to errors. We need to check for `getRootNode`.\r\n\tif ( documentElement.getRootNode ) {\r\n\t\tisAttached = function( elem ) {\r\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\r\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\r\n\t\t};\r\n\t}\r\nvar isHiddenWithinTree = function( elem, el ) {\r\n\r\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\r\n\t\t// in that case, element will be second argument\r\n\t\telem = el || elem;\r\n\r\n\t\t// Inline style trumps all\r\n\t\treturn elem.style.display === \"none\" ||\r\n\t\t\telem.style.display === \"\" &&\r\n\r\n\t\t\t// Otherwise, check computed style\r\n\t\t\t// Support: Firefox <=43 - 45\r\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\r\n\t\t\t// in the document.\r\n\t\t\tisAttached( elem ) &&\r\n\r\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\r\n\t};\r\n\r\n\r\n\r\nfunction adjustCSS( elem, prop, valueParts, tween ) {\r\n\tvar adjusted, scale,\r\n\t\tmaxIterations = 20,\r\n\t\tcurrentValue = tween ?\r\n\t\t\tfunction() {\r\n\t\t\t\treturn tween.cur();\r\n\t\t\t} :\r\n\t\t\tfunction() {\r\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\r\n\t\t\t},\r\n\t\tinitial = currentValue(),\r\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\r\n\r\n\t\t// Starting value computation is required for potential unit mismatches\r\n\t\tinitialInUnit = elem.nodeType &&\r\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\r\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\r\n\r\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\r\n\r\n\t\t// Support: Firefox <=54\r\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\r\n\t\tinitial = initial / 2;\r\n\r\n\t\t// Trust units reported by jQuery.css\r\n\t\tunit = unit || initialInUnit[ 3 ];\r\n\r\n\t\t// Iteratively approximate from a nonzero starting point\r\n\t\tinitialInUnit = +initial || 1;\r\n\r\n\t\twhile ( maxIterations-- ) {\r\n\r\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\r\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\r\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\r\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\r\n\t\t\t\tmaxIterations = 0;\r\n\t\t\t}\r\n\t\t\tinitialInUnit = initialInUnit / scale;\r\n\r\n\t\t}\r\n\r\n\t\tinitialInUnit = initialInUnit * 2;\r\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\r\n\r\n\t\t// Make sure we update the tween properties later on\r\n\t\tvalueParts = valueParts || [];\r\n\t}\r\n\r\n\tif ( valueParts ) {\r\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\r\n\r\n\t\t// Apply relative offset (+=/-=) if specified\r\n\t\tadjusted = valueParts[ 1 ] ?\r\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\r\n\t\t\t+valueParts[ 2 ];\r\n\t\tif ( tween ) {\r\n\t\t\ttween.unit = unit;\r\n\t\t\ttween.start = initialInUnit;\r\n\t\t\ttween.end = adjusted;\r\n\t\t}\r\n\t}\r\n\treturn adjusted;\r\n}\r\n\r\n\r\nvar defaultDisplayMap = {};\r\n\r\nfunction getDefaultDisplay( elem ) {\r\n\tvar temp,\r\n\t\tdoc = elem.ownerDocument,\r\n\t\tnodeName = elem.nodeName,\r\n\t\tdisplay = defaultDisplayMap[ nodeName ];\r\n\r\n\tif ( display ) {\r\n\t\treturn display;\r\n\t}\r\n\r\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\r\n\tdisplay = jQuery.css( temp, \"display\" );\r\n\r\n\ttemp.parentNode.removeChild( temp );\r\n\r\n\tif ( display === \"none\" ) {\r\n\t\tdisplay = \"block\";\r\n\t}\r\n\tdefaultDisplayMap[ nodeName ] = display;\r\n\r\n\treturn display;\r\n}\r\n\r\nfunction showHide( elements, show ) {\r\n\tvar display, elem,\r\n\t\tvalues = [],\r\n\t\tindex = 0,\r\n\t\tlength = elements.length;\r\n\r\n\t// Determine new display value for elements that need to change\r\n\tfor ( ; index < length; index++ ) {\r\n\t\telem = elements[ index ];\r\n\t\tif ( !elem.style ) {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tdisplay = elem.style.display;\r\n\t\tif ( show ) {\r\n\r\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\r\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\r\n\t\t\t// inline or about-to-be-restored)\r\n\t\t\tif ( display === \"none\" ) {\r\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\r\n\t\t\t\tif ( !values[ index ] ) {\r\n\t\t\t\t\telem.style.display = \"\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\r\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif ( display !== \"none\" ) {\r\n\t\t\t\tvalues[ index ] = \"none\";\r\n\r\n\t\t\t\t// Remember what we're overwriting\r\n\t\t\t\tdataPriv.set( elem, \"display\", display );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Set the display of the elements in a second loop to avoid constant reflow\r\n\tfor ( index = 0; index < length; index++ ) {\r\n\t\tif ( values[ index ] != null ) {\r\n\t\t\telements[ index ].style.display = values[ index ];\r\n\t\t}\r\n\t}\r\n\r\n\treturn elements;\r\n}\r\n\r\njQuery.fn.extend( {\r\n\tshow: function() {\r\n\t\treturn showHide( this, true );\r\n\t},\r\n\thide: function() {\r\n\t\treturn showHide( this );\r\n\t},\r\n\ttoggle: function( state ) {\r\n\t\tif ( typeof state === \"boolean\" ) {\r\n\t\t\treturn state ? this.show() : this.hide();\r\n\t\t}\r\n\r\n\t\treturn this.each( function() {\r\n\t\t\tif ( isHiddenWithinTree( this ) ) {\r\n\t\t\t\tjQuery( this ).show();\r\n\t\t\t} else {\r\n\t\t\t\tjQuery( this ).hide();\r\n\t\t\t}\r\n\t\t} );\r\n\t}\r\n} );\r\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\r\n\r\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\r\n\r\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\r\n\r\n\r\n\r\n( function() {\r\n\tvar fragment = document.createDocumentFragment(),\r\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\r\n\t\tinput = document.createElement( \"input\" );\r\n\r\n\t// Support: Android 4.0 - 4.3 only\r\n\t// Check state lost if the name is set (#11217)\r\n\t// Support: Windows Web Apps (WWA)\r\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\r\n\tinput.setAttribute( \"type\", \"radio\" );\r\n\tinput.setAttribute( \"checked\", \"checked\" );\r\n\tinput.setAttribute( \"name\", \"t\" );\r\n\r\n\tdiv.appendChild( input );\r\n\r\n\t// Support: Android <=4.1 only\r\n\t// Older WebKit doesn't clone checked state correctly in fragments\r\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\r\n\r\n\t// Support: IE <=11 only\r\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\r\n\tdiv.innerHTML = \"\";\r\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\r\n\r\n\t// Support: IE <=9 only\r\n\t// IE <=9 replaces \";\r\n\tsupport.option = !!div.lastChild;\r\n} )();\r\n\r\n\r\n// We have to close these tags to support XHTML (#13200)\r\nvar wrapMap = {\r\n\r\n\t// XHTML parsers do not magically insert elements in the\r\n\t// same way that tag soup parsers do. So we cannot shorten\r\n\t// this by omitting or other required elements.\r\n\tthead: [ 1, \"\", \"
\" ],\r\n\tcol: [ 2, \"\", \"
\" ],\r\n\ttr: [ 2, \"\", \"
\" ],\r\n\ttd: [ 3, \"\", \"
\" ],\r\n\r\n\t_default: [ 0, \"\", \"\" ]\r\n};\r\n\r\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\r\nwrapMap.th = wrapMap.td;\r\n\r\n// Support: IE <=9 only\r\nif ( !support.option ) {\r\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\r\n}\r\n\r\n\r\nfunction getAll( context, tag ) {\r\n\r\n\t// Support: IE <=9 - 11 only\r\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\r\n\tvar ret;\r\n\r\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\r\n\t\tret = context.getElementsByTagName( tag || \"*\" );\r\n\r\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\r\n\t\tret = context.querySelectorAll( tag || \"*\" );\r\n\r\n\t} else {\r\n\t\tret = [];\r\n\t}\r\n\r\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\r\n\t\treturn jQuery.merge( [ context ], ret );\r\n\t}\r\n\r\n\treturn ret;\r\n}\r\n\r\n\r\n// Mark scripts as having already been evaluated\r\nfunction setGlobalEval( elems, refElements ) {\r\n\tvar i = 0,\r\n\t\tl = elems.length;\r\n\r\n\tfor ( ; i < l; i++ ) {\r\n\t\tdataPriv.set(\r\n\t\t\telems[ i ],\r\n\t\t\t\"globalEval\",\r\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\r\n\t\t);\r\n\t}\r\n}\r\n\r\n\r\nvar rhtml = /<|&#?\\w+;/;\r\n\r\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\r\n\tvar elem, tmp, tag, wrap, attached, j,\r\n\t\tfragment = context.createDocumentFragment(),\r\n\t\tnodes = [],\r\n\t\ti = 0,\r\n\t\tl = elems.length;\r\n\r\n\tfor ( ; i < l; i++ ) {\r\n\t\telem = elems[ i ];\r\n\r\n\t\tif ( elem || elem === 0 ) {\r\n\r\n\t\t\t// Add nodes directly\r\n\t\t\tif ( toType( elem ) === \"object\" ) {\r\n\r\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\r\n\r\n\t\t\t// Convert non-html into a text node\r\n\t\t\t} else if ( !rhtml.test( elem ) ) {\r\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\r\n\r\n\t\t\t// Convert html into DOM nodes\r\n\t\t\t} else {\r\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\r\n\r\n\t\t\t\t// Deserialize a standard representation\r\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\r\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\r\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\r\n\r\n\t\t\t\t// Descend through wrappers to the right content\r\n\t\t\t\tj = wrap[ 0 ];\r\n\t\t\t\twhile ( j-- ) {\r\n\t\t\t\t\ttmp = tmp.lastChild;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\r\n\r\n\t\t\t\t// Remember the top-level container\r\n\t\t\t\ttmp = fragment.firstChild;\r\n\r\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\r\n\t\t\t\ttmp.textContent = \"\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Remove wrapper from fragment\r\n\tfragment.textContent = \"\";\r\n\r\n\ti = 0;\r\n\twhile ( ( elem = nodes[ i++ ] ) ) {\r\n\r\n\t\t// Skip elements already in the context collection (trac-4087)\r\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\r\n\t\t\tif ( ignored ) {\r\n\t\t\t\tignored.push( elem );\r\n\t\t\t}\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tattached = isAttached( elem );\r\n\r\n\t\t// Append to fragment\r\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\r\n\r\n\t\t// Preserve script evaluation history\r\n\t\tif ( attached ) {\r\n\t\t\tsetGlobalEval( tmp );\r\n\t\t}\r\n\r\n\t\t// Capture executables\r\n\t\tif ( scripts ) {\r\n\t\t\tj = 0;\r\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\r\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\r\n\t\t\t\t\tscripts.push( elem );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn fragment;\r\n}\r\n\r\n\r\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\r\n\r\nfunction returnTrue() {\r\n\treturn true;\r\n}\r\n\r\nfunction returnFalse() {\r\n\treturn false;\r\n}\r\n\r\n// Support: IE <=9 - 11+\r\n// focus() and blur() are asynchronous, except when they are no-op.\r\n// So expect focus to be synchronous when the element is already active,\r\n// and blur to be synchronous when the element is not already active.\r\n// (focus and blur are always synchronous in other supported browsers,\r\n// this just defines when we can count on it).\r\nfunction expectSync( elem, type ) {\r\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\r\n}\r\n\r\n// Support: IE <=9 only\r\n// Accessing document.activeElement can throw unexpectedly\r\n// https://bugs.jquery.com/ticket/13393\r\nfunction safeActiveElement() {\r\n\ttry {\r\n\t\treturn document.activeElement;\r\n\t} catch ( err ) { }\r\n}\r\n\r\nfunction on( elem, types, selector, data, fn, one ) {\r\n\tvar origFn, type;\r\n\r\n\t// Types can be a map of types/handlers\r\n\tif ( typeof types === \"object\" ) {\r\n\r\n\t\t// ( types-Object, selector, data )\r\n\t\tif ( typeof selector !== \"string\" ) {\r\n\r\n\t\t\t// ( types-Object, data )\r\n\t\t\tdata = data || selector;\r\n\t\t\tselector = undefined;\r\n\t\t}\r\n\t\tfor ( type in types ) {\r\n\t\t\ton( elem, type, selector, data, types[ type ], one );\r\n\t\t}\r\n\t\treturn elem;\r\n\t}\r\n\r\n\tif ( data == null && fn == null ) {\r\n\r\n\t\t// ( types, fn )\r\n\t\tfn = selector;\r\n\t\tdata = selector = undefined;\r\n\t} else if ( fn == null ) {\r\n\t\tif ( typeof selector === \"string\" ) {\r\n\r\n\t\t\t// ( types, selector, fn )\r\n\t\t\tfn = data;\r\n\t\t\tdata = undefined;\r\n\t\t} else {\r\n\r\n\t\t\t// ( types, data, fn )\r\n\t\t\tfn = data;\r\n\t\t\tdata = selector;\r\n\t\t\tselector = undefined;\r\n\t\t}\r\n\t}\r\n\tif ( fn === false ) {\r\n\t\tfn = returnFalse;\r\n\t} else if ( !fn ) {\r\n\t\treturn elem;\r\n\t}\r\n\r\n\tif ( one === 1 ) {\r\n\t\torigFn = fn;\r\n\t\tfn = function( event ) {\r\n\r\n\t\t\t// Can use an empty set, since event contains the info\r\n\t\t\tjQuery().off( event );\r\n\t\t\treturn origFn.apply( this, arguments );\r\n\t\t};\r\n\r\n\t\t// Use same guid so caller can remove using origFn\r\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\r\n\t}\r\n\treturn elem.each( function() {\r\n\t\tjQuery.event.add( this, types, fn, data, selector );\r\n\t} );\r\n}\r\n\r\n/*\r\n * Helper functions for managing events -- not part of the public interface.\r\n * Props to Dean Edwards' addEvent library for many of the ideas.\r\n */\r\njQuery.event = {\r\n\r\n\tglobal: {},\r\n\r\n\tadd: function( elem, types, handler, data, selector ) {\r\n\r\n\t\tvar handleObjIn, eventHandle, tmp,\r\n\t\t\tevents, t, handleObj,\r\n\t\t\tspecial, handlers, type, namespaces, origType,\r\n\t\t\telemData = dataPriv.get( elem );\r\n\r\n\t\t// Only attach events to objects that accept data\r\n\t\tif ( !acceptData( elem ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Caller can pass in an object of custom data in lieu of the handler\r\n\t\tif ( handler.handler ) {\r\n\t\t\thandleObjIn = handler;\r\n\t\t\thandler = handleObjIn.handler;\r\n\t\t\tselector = handleObjIn.selector;\r\n\t\t}\r\n\r\n\t\t// Ensure that invalid selectors throw exceptions at attach time\r\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\r\n\t\tif ( selector ) {\r\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\r\n\t\t}\r\n\r\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\r\n\t\tif ( !handler.guid ) {\r\n\t\t\thandler.guid = jQuery.guid++;\r\n\t\t}\r\n\r\n\t\t// Init the element's event structure and main handler, if this is the first\r\n\t\tif ( !( events = elemData.events ) ) {\r\n\t\t\tevents = elemData.events = Object.create( null );\r\n\t\t}\r\n\t\tif ( !( eventHandle = elemData.handle ) ) {\r\n\t\t\teventHandle = elemData.handle = function( e ) {\r\n\r\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\r\n\t\t\t\t// when an event is called after a page has unloaded\r\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\r\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// Handle multiple events separated by a space\r\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\r\n\t\tt = types.length;\r\n\t\twhile ( t-- ) {\r\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\r\n\t\t\ttype = origType = tmp[ 1 ];\r\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\r\n\r\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\r\n\t\t\tif ( !type ) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// If event changes its type, use the special event handlers for the changed type\r\n\t\t\tspecial = jQuery.event.special[ type ] || {};\r\n\r\n\t\t\t// If selector defined, determine special event api type, otherwise given type\r\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\r\n\r\n\t\t\t// Update special based on newly reset type\r\n\t\t\tspecial = jQuery.event.special[ type ] || {};\r\n\r\n\t\t\t// handleObj is passed to all event handlers\r\n\t\t\thandleObj = jQuery.extend( {\r\n\t\t\t\ttype: type,\r\n\t\t\t\torigType: origType,\r\n\t\t\t\tdata: data,\r\n\t\t\t\thandler: handler,\r\n\t\t\t\tguid: handler.guid,\r\n\t\t\t\tselector: selector,\r\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\r\n\t\t\t\tnamespace: namespaces.join( \".\" )\r\n\t\t\t}, handleObjIn );\r\n\r\n\t\t\t// Init the event handler queue if we're the first\r\n\t\t\tif ( !( handlers = events[ type ] ) ) {\r\n\t\t\t\thandlers = events[ type ] = [];\r\n\t\t\t\thandlers.delegateCount = 0;\r\n\r\n\t\t\t\t// Only use addEventListener if the special events handler returns false\r\n\t\t\t\tif ( !special.setup ||\r\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\r\n\r\n\t\t\t\t\tif ( elem.addEventListener ) {\r\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( special.add ) {\r\n\t\t\t\tspecial.add.call( elem, handleObj );\r\n\r\n\t\t\t\tif ( !handleObj.handler.guid ) {\r\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Add to the element's handler list, delegates in front\r\n\t\t\tif ( selector ) {\r\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\r\n\t\t\t} else {\r\n\t\t\t\thandlers.push( handleObj );\r\n\t\t\t}\r\n\r\n\t\t\t// Keep track of which events have ever been used, for event optimization\r\n\t\t\tjQuery.event.global[ type ] = true;\r\n\t\t}\r\n\r\n\t},\r\n\r\n\t// Detach an event or set of events from an element\r\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\r\n\r\n\t\tvar j, origCount, tmp,\r\n\t\t\tevents, t, handleObj,\r\n\t\t\tspecial, handlers, type, namespaces, origType,\r\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\r\n\r\n\t\tif ( !elemData || !( events = elemData.events ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Once for each type.namespace in types; type may be omitted\r\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\r\n\t\tt = types.length;\r\n\t\twhile ( t-- ) {\r\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\r\n\t\t\ttype = origType = tmp[ 1 ];\r\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\r\n\r\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\r\n\t\t\tif ( !type ) {\r\n\t\t\t\tfor ( type in events ) {\r\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\r\n\t\t\t\t}\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tspecial = jQuery.event.special[ type ] || {};\r\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\r\n\t\t\thandlers = events[ type ] || [];\r\n\t\t\ttmp = tmp[ 2 ] &&\r\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\r\n\r\n\t\t\t// Remove matching events\r\n\t\t\torigCount = j = handlers.length;\r\n\t\t\twhile ( j-- ) {\r\n\t\t\t\thandleObj = handlers[ j ];\r\n\r\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\r\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\r\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\r\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\r\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\r\n\t\t\t\t\thandlers.splice( j, 1 );\r\n\r\n\t\t\t\t\tif ( handleObj.selector ) {\r\n\t\t\t\t\t\thandlers.delegateCount--;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( special.remove ) {\r\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\r\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\r\n\t\t\tif ( origCount && !handlers.length ) {\r\n\t\t\t\tif ( !special.teardown ||\r\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\r\n\r\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete events[ type ];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Remove data and the expando if it's no longer used\r\n\t\tif ( jQuery.isEmptyObject( events ) ) {\r\n\t\t\tdataPriv.remove( elem, \"handle events\" );\r\n\t\t}\r\n\t},\r\n\r\n\tdispatch: function( nativeEvent ) {\r\n\r\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\r\n\t\t\targs = new Array( arguments.length ),\r\n\r\n\t\t\t// Make a writable jQuery.Event from the native event object\r\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\r\n\r\n\t\t\thandlers = (\r\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\r\n\t\t\t)[ event.type ] || [],\r\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\r\n\r\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\r\n\t\targs[ 0 ] = event;\r\n\r\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\r\n\t\t\targs[ i ] = arguments[ i ];\r\n\t\t}\r\n\r\n\t\tevent.delegateTarget = this;\r\n\r\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\r\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Determine handlers\r\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\r\n\r\n\t\t// Run delegates first; they may want to stop propagation beneath us\r\n\t\ti = 0;\r\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\r\n\t\t\tevent.currentTarget = matched.elem;\r\n\r\n\t\t\tj = 0;\r\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\r\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\r\n\r\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\r\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\r\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\r\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\r\n\r\n\t\t\t\t\tevent.handleObj = handleObj;\r\n\t\t\t\t\tevent.data = handleObj.data;\r\n\r\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\r\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\r\n\r\n\t\t\t\t\tif ( ret !== undefined ) {\r\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Call the postDispatch hook for the mapped type\r\n\t\tif ( special.postDispatch ) {\r\n\t\t\tspecial.postDispatch.call( this, event );\r\n\t\t}\r\n\r\n\t\treturn event.result;\r\n\t},\r\n\r\n\thandlers: function( event, handlers ) {\r\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\r\n\t\t\thandlerQueue = [],\r\n\t\t\tdelegateCount = handlers.delegateCount,\r\n\t\t\tcur = event.target;\r\n\r\n\t\t// Find delegate handlers\r\n\t\tif ( delegateCount &&\r\n\r\n\t\t\t// Support: IE <=9\r\n\t\t\t// Black-hole SVG instance trees (trac-13180)\r\n\t\t\tcur.nodeType &&\r\n\r\n\t\t\t// Support: Firefox <=42\r\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\r\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\r\n\t\t\t// Support: IE 11 only\r\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\r\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\r\n\r\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\r\n\r\n\t\t\t\t// Don't check non-elements (#13208)\r\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\r\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\r\n\t\t\t\t\tmatchedHandlers = [];\r\n\t\t\t\t\tmatchedSelectors = {};\r\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\r\n\t\t\t\t\t\thandleObj = handlers[ i ];\r\n\r\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\r\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\r\n\r\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\r\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\r\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\r\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\r\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( matchedHandlers.length ) {\r\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Add the remaining (directly-bound) handlers\r\n\t\tcur = this;\r\n\t\tif ( delegateCount < handlers.length ) {\r\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\r\n\t\t}\r\n\r\n\t\treturn handlerQueue;\r\n\t},\r\n\r\n\taddProp: function( name, hook ) {\r\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\r\n\t\t\tenumerable: true,\r\n\t\t\tconfigurable: true,\r\n\r\n\t\t\tget: isFunction( hook ) ?\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\tif ( this.originalEvent ) {\r\n\t\t\t\t\t\treturn hook( this.originalEvent );\r\n\t\t\t\t\t}\r\n\t\t\t\t} :\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\tif ( this.originalEvent ) {\r\n\t\t\t\t\t\treturn this.originalEvent[ name ];\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\tset: function( value ) {\r\n\t\t\t\tObject.defineProperty( this, name, {\r\n\t\t\t\t\tenumerable: true,\r\n\t\t\t\t\tconfigurable: true,\r\n\t\t\t\t\twritable: true,\r\n\t\t\t\t\tvalue: value\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tfix: function( originalEvent ) {\r\n\t\treturn originalEvent[ jQuery.expando ] ?\r\n\t\t\toriginalEvent :\r\n\t\t\tnew jQuery.Event( originalEvent );\r\n\t},\r\n\r\n\tspecial: {\r\n\t\tload: {\r\n\r\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\r\n\t\t\tnoBubble: true\r\n\t\t},\r\n\t\tclick: {\r\n\r\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\r\n\t\t\tsetup: function( data ) {\r\n\r\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\r\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\r\n\t\t\t\tvar el = this || data;\r\n\r\n\t\t\t\t// Claim the first handler\r\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\r\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\r\n\r\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\r\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Return false to allow normal processing in the caller\r\n\t\t\t\treturn false;\r\n\t\t\t},\r\n\t\t\ttrigger: function( data ) {\r\n\r\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\r\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\r\n\t\t\t\tvar el = this || data;\r\n\r\n\t\t\t\t// Force setup before triggering a click\r\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\r\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\r\n\r\n\t\t\t\t\tleverageNative( el, \"click\" );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Return non-false to allow normal event-path propagation\r\n\t\t\t\treturn true;\r\n\t\t\t},\r\n\r\n\t\t\t// For cross-browser consistency, suppress native .click() on links\r\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\r\n\t\t\t_default: function( event ) {\r\n\t\t\t\tvar target = event.target;\r\n\t\t\t\treturn rcheckableType.test( target.type ) &&\r\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\r\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\r\n\t\t\t\t\tnodeName( target, \"a\" );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tbeforeunload: {\r\n\t\t\tpostDispatch: function( event ) {\r\n\r\n\t\t\t\t// Support: Firefox 20+\r\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\r\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\r\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// Ensure the presence of an event listener that handles manually-triggered\r\n// synthetic events by interrupting progress until reinvoked in response to\r\n// *native* events that it fires directly, ensuring that state changes have\r\n// already occurred before other listeners are invoked.\r\nfunction leverageNative( el, type, expectSync ) {\r\n\r\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\r\n\tif ( !expectSync ) {\r\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\r\n\t\t\tjQuery.event.add( el, type, returnTrue );\r\n\t\t}\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Register the controller as a special universal handler for all event namespaces\r\n\tdataPriv.set( el, type, false );\r\n\tjQuery.event.add( el, type, {\r\n\t\tnamespace: false,\r\n\t\thandler: function( event ) {\r\n\t\t\tvar notAsync, result,\r\n\t\t\t\tsaved = dataPriv.get( this, type );\r\n\r\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\r\n\r\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\r\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\r\n\t\t\t\t// from an async native handler (gh-4350)\r\n\t\t\t\tif ( !saved.length ) {\r\n\r\n\t\t\t\t\t// Store arguments for use when handling the inner native event\r\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\r\n\t\t\t\t\t// will not be confused with a leftover capture object.\r\n\t\t\t\t\tsaved = slice.call( arguments );\r\n\t\t\t\t\tdataPriv.set( this, type, saved );\r\n\r\n\t\t\t\t\t// Trigger the native event and capture its result\r\n\t\t\t\t\t// Support: IE <=9 - 11+\r\n\t\t\t\t\t// focus() and blur() are asynchronous\r\n\t\t\t\t\tnotAsync = expectSync( this, type );\r\n\t\t\t\t\tthis[ type ]();\r\n\t\t\t\t\tresult = dataPriv.get( this, type );\r\n\t\t\t\t\tif ( saved !== result || notAsync ) {\r\n\t\t\t\t\t\tdataPriv.set( this, type, false );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresult = {};\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif ( saved !== result ) {\r\n\r\n\t\t\t\t\t\t// Cancel the outer synthetic event\r\n\t\t\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\t\t\t// Support: Chrome 86+\r\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\r\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\r\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\r\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\r\n\t\t\t\t\t\treturn result && result.value;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\r\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\r\n\t\t\t\t// native event and prevent that from happening again here.\r\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\r\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\r\n\t\t\t\t// less bad than duplication.\r\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\r\n\t\t\t\t\tevent.stopPropagation();\r\n\t\t\t\t}\r\n\r\n\t\t\t// If this is a native event triggered above, everything is now in order\r\n\t\t\t// Fire an inner synthetic event with the original arguments\r\n\t\t\t} else if ( saved.length ) {\r\n\r\n\t\t\t\t// ...and capture the result\r\n\t\t\t\tdataPriv.set( this, type, {\r\n\t\t\t\t\tvalue: jQuery.event.trigger(\r\n\r\n\t\t\t\t\t\t// Support: IE <=9 - 11+\r\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\r\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\r\n\t\t\t\t\t\tsaved.slice( 1 ),\r\n\t\t\t\t\t\tthis\r\n\t\t\t\t\t)\r\n\t\t\t\t} );\r\n\r\n\t\t\t\t// Abort handling of the native event\r\n\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t}\r\n\t\t}\r\n\t} );\r\n}\r\n\r\njQuery.removeEvent = function( elem, type, handle ) {\r\n\r\n\t// This \"if\" is needed for plain objects\r\n\tif ( elem.removeEventListener ) {\r\n\t\telem.removeEventListener( type, handle );\r\n\t}\r\n};\r\n\r\njQuery.Event = function( src, props ) {\r\n\r\n\t// Allow instantiation without the 'new' keyword\r\n\tif ( !( this instanceof jQuery.Event ) ) {\r\n\t\treturn new jQuery.Event( src, props );\r\n\t}\r\n\r\n\t// Event object\r\n\tif ( src && src.type ) {\r\n\t\tthis.originalEvent = src;\r\n\t\tthis.type = src.type;\r\n\r\n\t\t// Events bubbling up the document may have been marked as prevented\r\n\t\t// by a handler lower down the tree; reflect the correct value.\r\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\r\n\t\t\t\tsrc.defaultPrevented === undefined &&\r\n\r\n\t\t\t\t// Support: Android <=2.3 only\r\n\t\t\t\tsrc.returnValue === false ?\r\n\t\t\treturnTrue :\r\n\t\t\treturnFalse;\r\n\r\n\t\t// Create target properties\r\n\t\t// Support: Safari <=6 - 7 only\r\n\t\t// Target should not be a text node (#504, #13143)\r\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\r\n\t\t\tsrc.target.parentNode :\r\n\t\t\tsrc.target;\r\n\r\n\t\tthis.currentTarget = src.currentTarget;\r\n\t\tthis.relatedTarget = src.relatedTarget;\r\n\r\n\t// Event type\r\n\t} else {\r\n\t\tthis.type = src;\r\n\t}\r\n\r\n\t// Put explicitly provided properties onto the event object\r\n\tif ( props ) {\r\n\t\tjQuery.extend( this, props );\r\n\t}\r\n\r\n\t// Create a timestamp if incoming event doesn't have one\r\n\tthis.timeStamp = src && src.timeStamp || Date.now();\r\n\r\n\t// Mark it as fixed\r\n\tthis[ jQuery.expando ] = true;\r\n};\r\n\r\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\r\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\r\njQuery.Event.prototype = {\r\n\tconstructor: jQuery.Event,\r\n\tisDefaultPrevented: returnFalse,\r\n\tisPropagationStopped: returnFalse,\r\n\tisImmediatePropagationStopped: returnFalse,\r\n\tisSimulated: false,\r\n\r\n\tpreventDefault: function() {\r\n\t\tvar e = this.originalEvent;\r\n\r\n\t\tthis.isDefaultPrevented = returnTrue;\r\n\r\n\t\tif ( e && !this.isSimulated ) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t},\r\n\tstopPropagation: function() {\r\n\t\tvar e = this.originalEvent;\r\n\r\n\t\tthis.isPropagationStopped = returnTrue;\r\n\r\n\t\tif ( e && !this.isSimulated ) {\r\n\t\t\te.stopPropagation();\r\n\t\t}\r\n\t},\r\n\tstopImmediatePropagation: function() {\r\n\t\tvar e = this.originalEvent;\r\n\r\n\t\tthis.isImmediatePropagationStopped = returnTrue;\r\n\r\n\t\tif ( e && !this.isSimulated ) {\r\n\t\t\te.stopImmediatePropagation();\r\n\t\t}\r\n\r\n\t\tthis.stopPropagation();\r\n\t}\r\n};\r\n\r\n// Includes all common event props including KeyEvent and MouseEvent specific props\r\njQuery.each( {\r\n\taltKey: true,\r\n\tbubbles: true,\r\n\tcancelable: true,\r\n\tchangedTouches: true,\r\n\tctrlKey: true,\r\n\tdetail: true,\r\n\teventPhase: true,\r\n\tmetaKey: true,\r\n\tpageX: true,\r\n\tpageY: true,\r\n\tshiftKey: true,\r\n\tview: true,\r\n\t\"char\": true,\r\n\tcode: true,\r\n\tcharCode: true,\r\n\tkey: true,\r\n\tkeyCode: true,\r\n\tbutton: true,\r\n\tbuttons: true,\r\n\tclientX: true,\r\n\tclientY: true,\r\n\toffsetX: true,\r\n\toffsetY: true,\r\n\tpointerId: true,\r\n\tpointerType: true,\r\n\tscreenX: true,\r\n\tscreenY: true,\r\n\ttargetTouches: true,\r\n\ttoElement: true,\r\n\ttouches: true,\r\n\twhich: true\r\n}, jQuery.event.addProp );\r\n\r\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\r\n\tjQuery.event.special[ type ] = {\r\n\r\n\t\t// Utilize native event if possible so blur/focus sequence is correct\r\n\t\tsetup: function() {\r\n\r\n\t\t\t// Claim the first handler\r\n\t\t\t// dataPriv.set( this, \"focus\", ... )\r\n\t\t\t// dataPriv.set( this, \"blur\", ... )\r\n\t\t\tleverageNative( this, type, expectSync );\r\n\r\n\t\t\t// Return false to allow normal processing in the caller\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\ttrigger: function() {\r\n\r\n\t\t\t// Force setup before trigger\r\n\t\t\tleverageNative( this, type );\r\n\r\n\t\t\t// Return non-false to allow normal event-path propagation\r\n\t\t\treturn true;\r\n\t\t},\r\n\r\n\t\t// Suppress native focus or blur as it's already being fired\r\n\t\t// in leverageNative.\r\n\t\t_default: function() {\r\n\t\t\treturn true;\r\n\t\t},\r\n\r\n\t\tdelegateType: delegateType\r\n\t};\r\n} );\r\n\r\n// Create mouseenter/leave events using mouseover/out and event-time checks\r\n// so that event delegation works in jQuery.\r\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\r\n//\r\n// Support: Safari 7 only\r\n// Safari sends mouseenter too often; see:\r\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\r\n// for the description of the bug (it existed in older Chrome versions as well).\r\njQuery.each( {\r\n\tmouseenter: \"mouseover\",\r\n\tmouseleave: \"mouseout\",\r\n\tpointerenter: \"pointerover\",\r\n\tpointerleave: \"pointerout\"\r\n}, function( orig, fix ) {\r\n\tjQuery.event.special[ orig ] = {\r\n\t\tdelegateType: fix,\r\n\t\tbindType: fix,\r\n\r\n\t\thandle: function( event ) {\r\n\t\t\tvar ret,\r\n\t\t\t\ttarget = this,\r\n\t\t\t\trelated = event.relatedTarget,\r\n\t\t\t\thandleObj = event.handleObj;\r\n\r\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\r\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\r\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\r\n\t\t\t\tevent.type = handleObj.origType;\r\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\r\n\t\t\t\tevent.type = fix;\r\n\t\t\t}\r\n\t\t\treturn ret;\r\n\t\t}\r\n\t};\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\r\n\ton: function( types, selector, data, fn ) {\r\n\t\treturn on( this, types, selector, data, fn );\r\n\t},\r\n\tone: function( types, selector, data, fn ) {\r\n\t\treturn on( this, types, selector, data, fn, 1 );\r\n\t},\r\n\toff: function( types, selector, fn ) {\r\n\t\tvar handleObj, type;\r\n\t\tif ( types && types.preventDefault && types.handleObj ) {\r\n\r\n\t\t\t// ( event ) dispatched jQuery.Event\r\n\t\t\thandleObj = types.handleObj;\r\n\t\t\tjQuery( types.delegateTarget ).off(\r\n\t\t\t\thandleObj.namespace ?\r\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\r\n\t\t\t\t\thandleObj.origType,\r\n\t\t\t\thandleObj.selector,\r\n\t\t\t\thandleObj.handler\r\n\t\t\t);\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tif ( typeof types === \"object\" ) {\r\n\r\n\t\t\t// ( types-object [, selector] )\r\n\t\t\tfor ( type in types ) {\r\n\t\t\t\tthis.off( type, selector, types[ type ] );\r\n\t\t\t}\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tif ( selector === false || typeof selector === \"function\" ) {\r\n\r\n\t\t\t// ( types [, fn] )\r\n\t\t\tfn = selector;\r\n\t\t\tselector = undefined;\r\n\t\t}\r\n\t\tif ( fn === false ) {\r\n\t\t\tfn = returnFalse;\r\n\t\t}\r\n\t\treturn this.each( function() {\r\n\t\t\tjQuery.event.remove( this, types, fn, selector );\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\n\r\nvar\r\n\r\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\r\n\t// In IE/Edge using regex groups here causes severe slowdowns.\r\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\r\n\trnoInnerhtml = /\\s*$/g;\r\n\r\n// Prefer a tbody over its parent table for containing new rows\r\nfunction manipulationTarget( elem, content ) {\r\n\tif ( nodeName( elem, \"table\" ) &&\r\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\r\n\r\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\r\n\t}\r\n\r\n\treturn elem;\r\n}\r\n\r\n// Replace/restore the type attribute of script elements for safe DOM manipulation\r\nfunction disableScript( elem ) {\r\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\r\n\treturn elem;\r\n}\r\nfunction restoreScript( elem ) {\r\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\r\n\t\telem.type = elem.type.slice( 5 );\r\n\t} else {\r\n\t\telem.removeAttribute( \"type\" );\r\n\t}\r\n\r\n\treturn elem;\r\n}\r\n\r\nfunction cloneCopyEvent( src, dest ) {\r\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\r\n\r\n\tif ( dest.nodeType !== 1 ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// 1. Copy private data: events, handlers, etc.\r\n\tif ( dataPriv.hasData( src ) ) {\r\n\t\tpdataOld = dataPriv.get( src );\r\n\t\tevents = pdataOld.events;\r\n\r\n\t\tif ( events ) {\r\n\t\t\tdataPriv.remove( dest, \"handle events\" );\r\n\r\n\t\t\tfor ( type in events ) {\r\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\r\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// 2. Copy user data\r\n\tif ( dataUser.hasData( src ) ) {\r\n\t\tudataOld = dataUser.access( src );\r\n\t\tudataCur = jQuery.extend( {}, udataOld );\r\n\r\n\t\tdataUser.set( dest, udataCur );\r\n\t}\r\n}\r\n\r\n// Fix IE bugs, see support tests\r\nfunction fixInput( src, dest ) {\r\n\tvar nodeName = dest.nodeName.toLowerCase();\r\n\r\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\r\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\r\n\t\tdest.checked = src.checked;\r\n\r\n\t// Fails to return the selected option to the default selected state when cloning options\r\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\r\n\t\tdest.defaultValue = src.defaultValue;\r\n\t}\r\n}\r\n\r\nfunction domManip( collection, args, callback, ignored ) {\r\n\r\n\t// Flatten any nested arrays\r\n\targs = flat( args );\r\n\r\n\tvar fragment, first, scripts, hasScripts, node, doc,\r\n\t\ti = 0,\r\n\t\tl = collection.length,\r\n\t\tiNoClone = l - 1,\r\n\t\tvalue = args[ 0 ],\r\n\t\tvalueIsFunction = isFunction( value );\r\n\r\n\t// We can't cloneNode fragments that contain checked, in WebKit\r\n\tif ( valueIsFunction ||\r\n\t\t\t( l > 1 && typeof value === \"string\" &&\r\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\r\n\t\treturn collection.each( function( index ) {\r\n\t\t\tvar self = collection.eq( index );\r\n\t\t\tif ( valueIsFunction ) {\r\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\r\n\t\t\t}\r\n\t\t\tdomManip( self, args, callback, ignored );\r\n\t\t} );\r\n\t}\r\n\r\n\tif ( l ) {\r\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\r\n\t\tfirst = fragment.firstChild;\r\n\r\n\t\tif ( fragment.childNodes.length === 1 ) {\r\n\t\t\tfragment = first;\r\n\t\t}\r\n\r\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\r\n\t\tif ( first || ignored ) {\r\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\r\n\t\t\thasScripts = scripts.length;\r\n\r\n\t\t\t// Use the original fragment for the last item\r\n\t\t\t// instead of the first because it can end up\r\n\t\t\t// being emptied incorrectly in certain situations (#8070).\r\n\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\tnode = fragment;\r\n\r\n\t\t\t\tif ( i !== iNoClone ) {\r\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\r\n\r\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\r\n\t\t\t\t\tif ( hasScripts ) {\r\n\r\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcallback.call( collection[ i ], node, i );\r\n\t\t\t}\r\n\r\n\t\t\tif ( hasScripts ) {\r\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\r\n\r\n\t\t\t\t// Reenable scripts\r\n\t\t\t\tjQuery.map( scripts, restoreScript );\r\n\r\n\t\t\t\t// Evaluate executable scripts on first document insertion\r\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\r\n\t\t\t\t\tnode = scripts[ i ];\r\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\r\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\r\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\r\n\r\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\r\n\r\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\r\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\r\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\r\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\r\n\t\t\t\t\t\t\t\t}, doc );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn collection;\r\n}\r\n\r\nfunction remove( elem, selector, keepData ) {\r\n\tvar node,\r\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\r\n\t\ti = 0;\r\n\r\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\r\n\t\tif ( !keepData && node.nodeType === 1 ) {\r\n\t\t\tjQuery.cleanData( getAll( node ) );\r\n\t\t}\r\n\r\n\t\tif ( node.parentNode ) {\r\n\t\t\tif ( keepData && isAttached( node ) ) {\r\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\r\n\t\t\t}\r\n\t\t\tnode.parentNode.removeChild( node );\r\n\t\t}\r\n\t}\r\n\r\n\treturn elem;\r\n}\r\n\r\njQuery.extend( {\r\n\thtmlPrefilter: function( html ) {\r\n\t\treturn html;\r\n\t},\r\n\r\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\r\n\t\tvar i, l, srcElements, destElements,\r\n\t\t\tclone = elem.cloneNode( true ),\r\n\t\t\tinPage = isAttached( elem );\r\n\r\n\t\t// Fix IE cloning issues\r\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\r\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\r\n\r\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\r\n\t\t\tdestElements = getAll( clone );\r\n\t\t\tsrcElements = getAll( elem );\r\n\r\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\r\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Copy the events from the original to the clone\r\n\t\tif ( dataAndEvents ) {\r\n\t\t\tif ( deepDataAndEvents ) {\r\n\t\t\t\tsrcElements = srcElements || getAll( elem );\r\n\t\t\t\tdestElements = destElements || getAll( clone );\r\n\r\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\r\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tcloneCopyEvent( elem, clone );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Preserve script evaluation history\r\n\t\tdestElements = getAll( clone, \"script\" );\r\n\t\tif ( destElements.length > 0 ) {\r\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\r\n\t\t}\r\n\r\n\t\t// Return the cloned set\r\n\t\treturn clone;\r\n\t},\r\n\r\n\tcleanData: function( elems ) {\r\n\t\tvar data, elem, type,\r\n\t\t\tspecial = jQuery.event.special,\r\n\t\t\ti = 0;\r\n\r\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\r\n\t\t\tif ( acceptData( elem ) ) {\r\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\r\n\t\t\t\t\tif ( data.events ) {\r\n\t\t\t\t\t\tfor ( type in data.events ) {\r\n\t\t\t\t\t\t\tif ( special[ type ] ) {\r\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\r\n\r\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Support: Chrome <=35 - 45+\r\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\r\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\r\n\t\t\t\t}\r\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\r\n\r\n\t\t\t\t\t// Support: Chrome <=35 - 45+\r\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\r\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\tdetach: function( selector ) {\r\n\t\treturn remove( this, selector, true );\r\n\t},\r\n\r\n\tremove: function( selector ) {\r\n\t\treturn remove( this, selector );\r\n\t},\r\n\r\n\ttext: function( value ) {\r\n\t\treturn access( this, function( value ) {\r\n\t\t\treturn value === undefined ?\r\n\t\t\t\tjQuery.text( this ) :\r\n\t\t\t\tthis.empty().each( function() {\r\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\r\n\t\t\t\t\t\tthis.textContent = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t} );\r\n\t\t}, null, value, arguments.length );\r\n\t},\r\n\r\n\tappend: function() {\r\n\t\treturn domManip( this, arguments, function( elem ) {\r\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\r\n\t\t\t\tvar target = manipulationTarget( this, elem );\r\n\t\t\t\ttarget.appendChild( elem );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tprepend: function() {\r\n\t\treturn domManip( this, arguments, function( elem ) {\r\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\r\n\t\t\t\tvar target = manipulationTarget( this, elem );\r\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tbefore: function() {\r\n\t\treturn domManip( this, arguments, function( elem ) {\r\n\t\t\tif ( this.parentNode ) {\r\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tafter: function() {\r\n\t\treturn domManip( this, arguments, function( elem ) {\r\n\t\t\tif ( this.parentNode ) {\r\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\tempty: function() {\r\n\t\tvar elem,\r\n\t\t\ti = 0;\r\n\r\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\r\n\t\t\tif ( elem.nodeType === 1 ) {\r\n\r\n\t\t\t\t// Prevent memory leaks\r\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\r\n\r\n\t\t\t\t// Remove any remaining nodes\r\n\t\t\t\telem.textContent = \"\";\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\r\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\r\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\r\n\r\n\t\treturn this.map( function() {\r\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\r\n\t\t} );\r\n\t},\r\n\r\n\thtml: function( value ) {\r\n\t\treturn access( this, function( value ) {\r\n\t\t\tvar elem = this[ 0 ] || {},\r\n\t\t\t\ti = 0,\r\n\t\t\t\tl = this.length;\r\n\r\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\r\n\t\t\t\treturn elem.innerHTML;\r\n\t\t\t}\r\n\r\n\t\t\t// See if we can take a shortcut and just use innerHTML\r\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\r\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\r\n\r\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tfor ( ; i < l; i++ ) {\r\n\t\t\t\t\t\telem = this[ i ] || {};\r\n\r\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\r\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\r\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\r\n\t\t\t\t\t\t\telem.innerHTML = value;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\telem = 0;\r\n\r\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\r\n\t\t\t\t} catch ( e ) {}\r\n\t\t\t}\r\n\r\n\t\t\tif ( elem ) {\r\n\t\t\t\tthis.empty().append( value );\r\n\t\t\t}\r\n\t\t}, null, value, arguments.length );\r\n\t},\r\n\r\n\treplaceWith: function() {\r\n\t\tvar ignored = [];\r\n\r\n\t\t// Make the changes, replacing each non-ignored context element with the new content\r\n\t\treturn domManip( this, arguments, function( elem ) {\r\n\t\t\tvar parent = this.parentNode;\r\n\r\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\r\n\t\t\t\tjQuery.cleanData( getAll( this ) );\r\n\t\t\t\tif ( parent ) {\r\n\t\t\t\t\tparent.replaceChild( elem, this );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t// Force callback invocation\r\n\t\t}, ignored );\r\n\t}\r\n} );\r\n\r\njQuery.each( {\r\n\tappendTo: \"append\",\r\n\tprependTo: \"prepend\",\r\n\tinsertBefore: \"before\",\r\n\tinsertAfter: \"after\",\r\n\treplaceAll: \"replaceWith\"\r\n}, function( name, original ) {\r\n\tjQuery.fn[ name ] = function( selector ) {\r\n\t\tvar elems,\r\n\t\t\tret = [],\r\n\t\t\tinsert = jQuery( selector ),\r\n\t\t\tlast = insert.length - 1,\r\n\t\t\ti = 0;\r\n\r\n\t\tfor ( ; i <= last; i++ ) {\r\n\t\t\telems = i === last ? this : this.clone( true );\r\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\r\n\r\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\r\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\r\n\t\t\tpush.apply( ret, elems.get() );\r\n\t\t}\r\n\r\n\t\treturn this.pushStack( ret );\r\n\t};\r\n} );\r\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\r\n\r\nvar getStyles = function( elem ) {\r\n\r\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\r\n\t\t// IE throws on elements created in popups\r\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\r\n\t\tvar view = elem.ownerDocument.defaultView;\r\n\r\n\t\tif ( !view || !view.opener ) {\r\n\t\t\tview = window;\r\n\t\t}\r\n\r\n\t\treturn view.getComputedStyle( elem );\r\n\t};\r\n\r\nvar swap = function( elem, options, callback ) {\r\n\tvar ret, name,\r\n\t\told = {};\r\n\r\n\t// Remember the old values, and insert the new ones\r\n\tfor ( name in options ) {\r\n\t\told[ name ] = elem.style[ name ];\r\n\t\telem.style[ name ] = options[ name ];\r\n\t}\r\n\r\n\tret = callback.call( elem );\r\n\r\n\t// Revert the old values\r\n\tfor ( name in options ) {\r\n\t\telem.style[ name ] = old[ name ];\r\n\t}\r\n\r\n\treturn ret;\r\n};\r\n\r\n\r\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\r\n\r\n\r\n\r\n( function() {\r\n\r\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\r\n\t// so they're executed at the same time to save the second computation.\r\n\tfunction computeStyleTests() {\r\n\r\n\t\t// This is a singleton, we need to execute it only once\r\n\t\tif ( !div ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\r\n\t\t\t\"margin-top:1px;padding:0;border:0\";\r\n\t\tdiv.style.cssText =\r\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\r\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\r\n\t\t\t\"width:60%;top:1%\";\r\n\t\tdocumentElement.appendChild( container ).appendChild( div );\r\n\r\n\t\tvar divStyle = window.getComputedStyle( div );\r\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\r\n\r\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\r\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\r\n\r\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\r\n\t\t// Some styles come back with percentage values, even though they shouldn't\r\n\t\tdiv.style.right = \"60%\";\r\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\r\n\r\n\t\t// Support: IE 9 - 11 only\r\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\r\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\r\n\r\n\t\t// Support: IE 9 only\r\n\t\t// Detect overflow:scroll screwiness (gh-3699)\r\n\t\t// Support: Chrome <=64\r\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\r\n\t\tdiv.style.position = \"absolute\";\r\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\r\n\r\n\t\tdocumentElement.removeChild( container );\r\n\r\n\t\t// Nullify the div so it wouldn't be stored in the memory and\r\n\t\t// it will also be a sign that checks already performed\r\n\t\tdiv = null;\r\n\t}\r\n\r\n\tfunction roundPixelMeasures( measure ) {\r\n\t\treturn Math.round( parseFloat( measure ) );\r\n\t}\r\n\r\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\r\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\r\n\t\tcontainer = document.createElement( \"div\" ),\r\n\t\tdiv = document.createElement( \"div\" );\r\n\r\n\t// Finish early in limited (non-browser) environments\r\n\tif ( !div.style ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Support: IE <=9 - 11 only\r\n\t// Style of cloned element affects source element cloned (#8908)\r\n\tdiv.style.backgroundClip = \"content-box\";\r\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\r\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\r\n\r\n\tjQuery.extend( support, {\r\n\t\tboxSizingReliable: function() {\r\n\t\t\tcomputeStyleTests();\r\n\t\t\treturn boxSizingReliableVal;\r\n\t\t},\r\n\t\tpixelBoxStyles: function() {\r\n\t\t\tcomputeStyleTests();\r\n\t\t\treturn pixelBoxStylesVal;\r\n\t\t},\r\n\t\tpixelPosition: function() {\r\n\t\t\tcomputeStyleTests();\r\n\t\t\treturn pixelPositionVal;\r\n\t\t},\r\n\t\treliableMarginLeft: function() {\r\n\t\t\tcomputeStyleTests();\r\n\t\t\treturn reliableMarginLeftVal;\r\n\t\t},\r\n\t\tscrollboxSize: function() {\r\n\t\t\tcomputeStyleTests();\r\n\t\t\treturn scrollboxSizeVal;\r\n\t\t},\r\n\r\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\r\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\r\n\t\t// set in CSS while `offset*` properties report correct values.\r\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\r\n\t\t// some versions of this test; make sure not to make it pass there!\r\n\t\t//\r\n\t\t// Support: Firefox 70+\r\n\t\t// Only Firefox includes border widths\r\n\t\t// in computed dimensions. (gh-4529)\r\n\t\treliableTrDimensions: function() {\r\n\t\t\tvar table, tr, trChild, trStyle;\r\n\t\t\tif ( reliableTrDimensionsVal == null ) {\r\n\t\t\t\ttable = document.createElement( \"table\" );\r\n\t\t\t\ttr = document.createElement( \"tr\" );\r\n\t\t\t\ttrChild = document.createElement( \"div\" );\r\n\r\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\r\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\r\n\r\n\t\t\t\t// Support: Chrome 86+\r\n\t\t\t\t// Height set through cssText does not get applied.\r\n\t\t\t\t// Computed height then comes back as 0.\r\n\t\t\t\ttr.style.height = \"1px\";\r\n\t\t\t\ttrChild.style.height = \"9px\";\r\n\r\n\t\t\t\t// Support: Android 8 Chrome 86+\r\n\t\t\t\t// In our bodyBackground.html iframe,\r\n\t\t\t\t// display for all div elements is set to \"inline\",\r\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\r\n\t\t\t\t// Ensuring the div is display: block\r\n\t\t\t\t// gets around this issue.\r\n\t\t\t\ttrChild.style.display = \"block\";\r\n\r\n\t\t\t\tdocumentElement\r\n\t\t\t\t\t.appendChild( table )\r\n\t\t\t\t\t.appendChild( tr )\r\n\t\t\t\t\t.appendChild( trChild );\r\n\r\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\r\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\r\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\r\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\r\n\r\n\t\t\t\tdocumentElement.removeChild( table );\r\n\t\t\t}\r\n\t\t\treturn reliableTrDimensionsVal;\r\n\t\t}\r\n\t} );\r\n} )();\r\n\r\n\r\nfunction curCSS( elem, name, computed ) {\r\n\tvar width, minWidth, maxWidth, ret,\r\n\r\n\t\t// Support: Firefox 51+\r\n\t\t// Retrieving style before computed somehow\r\n\t\t// fixes an issue with getting wrong values\r\n\t\t// on detached elements\r\n\t\tstyle = elem.style;\r\n\r\n\tcomputed = computed || getStyles( elem );\r\n\r\n\t// getPropertyValue is needed for:\r\n\t// .css('filter') (IE 9 only, #12537)\r\n\t// .css('--customProperty) (#3144)\r\n\tif ( computed ) {\r\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\r\n\r\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\r\n\t\t\tret = jQuery.style( elem, name );\r\n\t\t}\r\n\r\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\r\n\t\t// Android Browser returns percentage for some values,\r\n\t\t// but width seems to be reliably pixels.\r\n\t\t// This is against the CSSOM draft spec:\r\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\r\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\r\n\r\n\t\t\t// Remember the original values\r\n\t\t\twidth = style.width;\r\n\t\t\tminWidth = style.minWidth;\r\n\t\t\tmaxWidth = style.maxWidth;\r\n\r\n\t\t\t// Put in the new values to get a computed value out\r\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\r\n\t\t\tret = computed.width;\r\n\r\n\t\t\t// Revert the changed values\r\n\t\t\tstyle.width = width;\r\n\t\t\tstyle.minWidth = minWidth;\r\n\t\t\tstyle.maxWidth = maxWidth;\r\n\t\t}\r\n\t}\r\n\r\n\treturn ret !== undefined ?\r\n\r\n\t\t// Support: IE <=9 - 11 only\r\n\t\t// IE returns zIndex value as an integer.\r\n\t\tret + \"\" :\r\n\t\tret;\r\n}\r\n\r\n\r\nfunction addGetHookIf( conditionFn, hookFn ) {\r\n\r\n\t// Define the hook, we'll check on the first run if it's really needed.\r\n\treturn {\r\n\t\tget: function() {\r\n\t\t\tif ( conditionFn() ) {\r\n\r\n\t\t\t\t// Hook not needed (or it's not possible to use it due\r\n\t\t\t\t// to missing dependency), remove it.\r\n\t\t\t\tdelete this.get;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\r\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\r\n\t\t}\r\n\t};\r\n}\r\n\r\n\r\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\r\n\temptyStyle = document.createElement( \"div\" ).style,\r\n\tvendorProps = {};\r\n\r\n// Return a vendor-prefixed property or undefined\r\nfunction vendorPropName( name ) {\r\n\r\n\t// Check for vendor prefixed names\r\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\r\n\t\ti = cssPrefixes.length;\r\n\r\n\twhile ( i-- ) {\r\n\t\tname = cssPrefixes[ i ] + capName;\r\n\t\tif ( name in emptyStyle ) {\r\n\t\t\treturn name;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\r\nfunction finalPropName( name ) {\r\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\r\n\r\n\tif ( final ) {\r\n\t\treturn final;\r\n\t}\r\n\tif ( name in emptyStyle ) {\r\n\t\treturn name;\r\n\t}\r\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\r\n}\r\n\r\n\r\nvar\r\n\r\n\t// Swappable if display is none or starts with table\r\n\t// except \"table\", \"table-cell\", or \"table-caption\"\r\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\r\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\r\n\trcustomProp = /^--/,\r\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\r\n\tcssNormalTransform = {\r\n\t\tletterSpacing: \"0\",\r\n\t\tfontWeight: \"400\"\r\n\t};\r\n\r\nfunction setPositiveNumber( _elem, value, subtract ) {\r\n\r\n\t// Any relative (+/-) values have already been\r\n\t// normalized at this point\r\n\tvar matches = rcssNum.exec( value );\r\n\treturn matches ?\r\n\r\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\r\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\r\n\t\tvalue;\r\n}\r\n\r\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\r\n\tvar i = dimension === \"width\" ? 1 : 0,\r\n\t\textra = 0,\r\n\t\tdelta = 0;\r\n\r\n\t// Adjustment may not be necessary\r\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tfor ( ; i < 4; i += 2 ) {\r\n\r\n\t\t// Both box models exclude margin\r\n\t\tif ( box === \"margin\" ) {\r\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\r\n\t\t}\r\n\r\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\r\n\t\tif ( !isBorderBox ) {\r\n\r\n\t\t\t// Add padding\r\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\r\n\r\n\t\t\t// For \"border\" or \"margin\", add border\r\n\t\t\tif ( box !== \"padding\" ) {\r\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\r\n\r\n\t\t\t// But still keep track of it otherwise\r\n\t\t\t} else {\r\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\r\n\t\t\t}\r\n\r\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\r\n\t\t// \"padding\" or \"margin\"\r\n\t\t} else {\r\n\r\n\t\t\t// For \"content\", subtract padding\r\n\t\t\tif ( box === \"content\" ) {\r\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\r\n\t\t\t}\r\n\r\n\t\t\t// For \"content\" or \"padding\", subtract border\r\n\t\t\tif ( box !== \"margin\" ) {\r\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\r\n\tif ( !isBorderBox && computedVal >= 0 ) {\r\n\r\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\r\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\r\n\t\tdelta += Math.max( 0, Math.ceil(\r\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\r\n\t\t\tcomputedVal -\r\n\t\t\tdelta -\r\n\t\t\textra -\r\n\t\t\t0.5\r\n\r\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\r\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\r\n\t\t) ) || 0;\r\n\t}\r\n\r\n\treturn delta;\r\n}\r\n\r\nfunction getWidthOrHeight( elem, dimension, extra ) {\r\n\r\n\t// Start with computed style\r\n\tvar styles = getStyles( elem ),\r\n\r\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\r\n\t\t// Fake content-box until we know it's needed to know the true value.\r\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\r\n\t\tisBorderBox = boxSizingNeeded &&\r\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\r\n\t\tvalueIsBorderBox = isBorderBox,\r\n\r\n\t\tval = curCSS( elem, dimension, styles ),\r\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\r\n\r\n\t// Support: Firefox <=54\r\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\r\n\tif ( rnumnonpx.test( val ) ) {\r\n\t\tif ( !extra ) {\r\n\t\t\treturn val;\r\n\t\t}\r\n\t\tval = \"auto\";\r\n\t}\r\n\r\n\r\n\t// Support: IE 9 - 11 only\r\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\r\n\t// In those cases, the computed value can be trusted to be border-box.\r\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\r\n\r\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\r\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\r\n\t\t// set in CSS while `offset*` properties report correct values.\r\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\r\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\r\n\r\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\r\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\r\n\t\tval === \"auto\" ||\r\n\r\n\t\t// Support: Android <=4.1 - 4.3 only\r\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\r\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\r\n\r\n\t\t// Make sure the element is visible & connected\r\n\t\telem.getClientRects().length ) {\r\n\r\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\r\n\r\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\r\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\r\n\t\t// retrieved value as a content box dimension.\r\n\t\tvalueIsBorderBox = offsetProp in elem;\r\n\t\tif ( valueIsBorderBox ) {\r\n\t\t\tval = elem[ offsetProp ];\r\n\t\t}\r\n\t}\r\n\r\n\t// Normalize \"\" and auto\r\n\tval = parseFloat( val ) || 0;\r\n\r\n\t// Adjust for the element's box model\r\n\treturn ( val +\r\n\t\tboxModelAdjustment(\r\n\t\t\telem,\r\n\t\t\tdimension,\r\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\r\n\t\t\tvalueIsBorderBox,\r\n\t\t\tstyles,\r\n\r\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\r\n\t\t\tval\r\n\t\t)\r\n\t) + \"px\";\r\n}\r\n\r\njQuery.extend( {\r\n\r\n\t// Add in style property hooks for overriding the default\r\n\t// behavior of getting and setting a style property\r\n\tcssHooks: {\r\n\t\topacity: {\r\n\t\t\tget: function( elem, computed ) {\r\n\t\t\t\tif ( computed ) {\r\n\r\n\t\t\t\t\t// We should always get a number back from opacity\r\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\r\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// Don't automatically add \"px\" to these possibly-unitless properties\r\n\tcssNumber: {\r\n\t\t\"animationIterationCount\": true,\r\n\t\t\"columnCount\": true,\r\n\t\t\"fillOpacity\": true,\r\n\t\t\"flexGrow\": true,\r\n\t\t\"flexShrink\": true,\r\n\t\t\"fontWeight\": true,\r\n\t\t\"gridArea\": true,\r\n\t\t\"gridColumn\": true,\r\n\t\t\"gridColumnEnd\": true,\r\n\t\t\"gridColumnStart\": true,\r\n\t\t\"gridRow\": true,\r\n\t\t\"gridRowEnd\": true,\r\n\t\t\"gridRowStart\": true,\r\n\t\t\"lineHeight\": true,\r\n\t\t\"opacity\": true,\r\n\t\t\"order\": true,\r\n\t\t\"orphans\": true,\r\n\t\t\"widows\": true,\r\n\t\t\"zIndex\": true,\r\n\t\t\"zoom\": true\r\n\t},\r\n\r\n\t// Add in properties whose names you wish to fix before\r\n\t// setting or getting the value\r\n\tcssProps: {},\r\n\r\n\t// Get and set the style property on a DOM Node\r\n\tstyle: function( elem, name, value, extra ) {\r\n\r\n\t\t// Don't set styles on text and comment nodes\r\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Make sure that we're working with the right name\r\n\t\tvar ret, type, hooks,\r\n\t\t\torigName = camelCase( name ),\r\n\t\t\tisCustomProp = rcustomProp.test( name ),\r\n\t\t\tstyle = elem.style;\r\n\r\n\t\t// Make sure that we're working with the right name. We don't\r\n\t\t// want to query the value if it is a CSS custom property\r\n\t\t// since they are user-defined.\r\n\t\tif ( !isCustomProp ) {\r\n\t\t\tname = finalPropName( origName );\r\n\t\t}\r\n\r\n\t\t// Gets hook for the prefixed version, then unprefixed version\r\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\r\n\r\n\t\t// Check if we're setting a value\r\n\t\tif ( value !== undefined ) {\r\n\t\t\ttype = typeof value;\r\n\r\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\r\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\r\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\r\n\r\n\t\t\t\t// Fixes bug #9237\r\n\t\t\t\ttype = \"number\";\r\n\t\t\t}\r\n\r\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\r\n\t\t\tif ( value == null || value !== value ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\r\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\r\n\t\t\t// \"px\" to a few hardcoded values.\r\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\r\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\r\n\t\t\t}\r\n\r\n\t\t\t// background-* props affect original clone's values\r\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\r\n\t\t\t\tstyle[ name ] = \"inherit\";\r\n\t\t\t}\r\n\r\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\r\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\r\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\r\n\r\n\t\t\t\tif ( isCustomProp ) {\r\n\t\t\t\t\tstyle.setProperty( name, value );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstyle[ name ] = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t} else {\r\n\r\n\t\t\t// If a hook was provided get the non-computed value from there\r\n\t\t\tif ( hooks && \"get\" in hooks &&\r\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\r\n\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\r\n\t\t\t// Otherwise just get the value from the style object\r\n\t\t\treturn style[ name ];\r\n\t\t}\r\n\t},\r\n\r\n\tcss: function( elem, name, extra, styles ) {\r\n\t\tvar val, num, hooks,\r\n\t\t\torigName = camelCase( name ),\r\n\t\t\tisCustomProp = rcustomProp.test( name );\r\n\r\n\t\t// Make sure that we're working with the right name. We don't\r\n\t\t// want to modify the value if it is a CSS custom property\r\n\t\t// since they are user-defined.\r\n\t\tif ( !isCustomProp ) {\r\n\t\t\tname = finalPropName( origName );\r\n\t\t}\r\n\r\n\t\t// Try prefixed name followed by the unprefixed name\r\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\r\n\r\n\t\t// If a hook was provided get the computed value from there\r\n\t\tif ( hooks && \"get\" in hooks ) {\r\n\t\t\tval = hooks.get( elem, true, extra );\r\n\t\t}\r\n\r\n\t\t// Otherwise, if a way to get the computed value exists, use that\r\n\t\tif ( val === undefined ) {\r\n\t\t\tval = curCSS( elem, name, styles );\r\n\t\t}\r\n\r\n\t\t// Convert \"normal\" to computed value\r\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\r\n\t\t\tval = cssNormalTransform[ name ];\r\n\t\t}\r\n\r\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\r\n\t\tif ( extra === \"\" || extra ) {\r\n\t\t\tnum = parseFloat( val );\r\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\r\n\t\t}\r\n\r\n\t\treturn val;\r\n\t}\r\n} );\r\n\r\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\r\n\tjQuery.cssHooks[ dimension ] = {\r\n\t\tget: function( elem, computed, extra ) {\r\n\t\t\tif ( computed ) {\r\n\r\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\r\n\t\t\t\t// but it must have a current display style that would benefit\r\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\r\n\r\n\t\t\t\t\t// Support: Safari 8+\r\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\r\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\r\n\t\t\t\t\t// Support: IE <=11 only\r\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\r\n\t\t\t\t\t// in IE throws an error.\r\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\r\n\t\t\t\t\tswap( elem, cssShow, function() {\r\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\r\n\t\t\t\t\t} ) :\r\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tset: function( elem, value, extra ) {\r\n\t\t\tvar matches,\r\n\t\t\t\tstyles = getStyles( elem ),\r\n\r\n\t\t\t\t// Only read styles.position if the test has a chance to fail\r\n\t\t\t\t// to avoid forcing a reflow.\r\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\r\n\t\t\t\t\tstyles.position === \"absolute\",\r\n\r\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\r\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\r\n\t\t\t\tisBorderBox = boxSizingNeeded &&\r\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\r\n\t\t\t\tsubtract = extra ?\r\n\t\t\t\t\tboxModelAdjustment(\r\n\t\t\t\t\t\telem,\r\n\t\t\t\t\t\tdimension,\r\n\t\t\t\t\t\textra,\r\n\t\t\t\t\t\tisBorderBox,\r\n\t\t\t\t\t\tstyles\r\n\t\t\t\t\t) :\r\n\t\t\t\t\t0;\r\n\r\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\r\n\t\t\t// faking a content-box to get border and padding (gh-3699)\r\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\r\n\t\t\t\tsubtract -= Math.ceil(\r\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\r\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\r\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\r\n\t\t\t\t\t0.5\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// Convert to pixels if value adjustment is needed\r\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\r\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\r\n\r\n\t\t\t\telem.style[ dimension ] = value;\r\n\t\t\t\tvalue = jQuery.css( elem, dimension );\r\n\t\t\t}\r\n\r\n\t\t\treturn setPositiveNumber( elem, value, subtract );\r\n\t\t}\r\n\t};\r\n} );\r\n\r\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\r\n\tfunction( elem, computed ) {\r\n\t\tif ( computed ) {\r\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\r\n\t\t\t\telem.getBoundingClientRect().left -\r\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\r\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\r\n\t\t\t\t\t} )\r\n\t\t\t) + \"px\";\r\n\t\t}\r\n\t}\r\n);\r\n\r\n// These hooks are used by animate to expand properties\r\njQuery.each( {\r\n\tmargin: \"\",\r\n\tpadding: \"\",\r\n\tborder: \"Width\"\r\n}, function( prefix, suffix ) {\r\n\tjQuery.cssHooks[ prefix + suffix ] = {\r\n\t\texpand: function( value ) {\r\n\t\t\tvar i = 0,\r\n\t\t\t\texpanded = {},\r\n\r\n\t\t\t\t// Assumes a single number if not a string\r\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\r\n\r\n\t\t\tfor ( ; i < 4; i++ ) {\r\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\r\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\r\n\t\t\t}\r\n\r\n\t\t\treturn expanded;\r\n\t\t}\r\n\t};\r\n\r\n\tif ( prefix !== \"margin\" ) {\r\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\r\n\t}\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\tcss: function( name, value ) {\r\n\t\treturn access( this, function( elem, name, value ) {\r\n\t\t\tvar styles, len,\r\n\t\t\t\tmap = {},\r\n\t\t\t\ti = 0;\r\n\r\n\t\t\tif ( Array.isArray( name ) ) {\r\n\t\t\t\tstyles = getStyles( elem );\r\n\t\t\t\tlen = name.length;\r\n\r\n\t\t\t\tfor ( ; i < len; i++ ) {\r\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn map;\r\n\t\t\t}\r\n\r\n\t\t\treturn value !== undefined ?\r\n\t\t\t\tjQuery.style( elem, name, value ) :\r\n\t\t\t\tjQuery.css( elem, name );\r\n\t\t}, name, value, arguments.length > 1 );\r\n\t}\r\n} );\r\n\r\n\r\nfunction Tween( elem, options, prop, end, easing ) {\r\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\r\n}\r\njQuery.Tween = Tween;\r\n\r\nTween.prototype = {\r\n\tconstructor: Tween,\r\n\tinit: function( elem, options, prop, end, easing, unit ) {\r\n\t\tthis.elem = elem;\r\n\t\tthis.prop = prop;\r\n\t\tthis.easing = easing || jQuery.easing._default;\r\n\t\tthis.options = options;\r\n\t\tthis.start = this.now = this.cur();\r\n\t\tthis.end = end;\r\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\r\n\t},\r\n\tcur: function() {\r\n\t\tvar hooks = Tween.propHooks[ this.prop ];\r\n\r\n\t\treturn hooks && hooks.get ?\r\n\t\t\thooks.get( this ) :\r\n\t\t\tTween.propHooks._default.get( this );\r\n\t},\r\n\trun: function( percent ) {\r\n\t\tvar eased,\r\n\t\t\thooks = Tween.propHooks[ this.prop ];\r\n\r\n\t\tif ( this.options.duration ) {\r\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\r\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tthis.pos = eased = percent;\r\n\t\t}\r\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\r\n\r\n\t\tif ( this.options.step ) {\r\n\t\t\tthis.options.step.call( this.elem, this.now, this );\r\n\t\t}\r\n\r\n\t\tif ( hooks && hooks.set ) {\r\n\t\t\thooks.set( this );\r\n\t\t} else {\r\n\t\t\tTween.propHooks._default.set( this );\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n};\r\n\r\nTween.prototype.init.prototype = Tween.prototype;\r\n\r\nTween.propHooks = {\r\n\t_default: {\r\n\t\tget: function( tween ) {\r\n\t\t\tvar result;\r\n\r\n\t\t\t// Use a property on the element directly when it is not a DOM element,\r\n\t\t\t// or when there is no matching style property that exists.\r\n\t\t\tif ( tween.elem.nodeType !== 1 ||\r\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\r\n\t\t\t\treturn tween.elem[ tween.prop ];\r\n\t\t\t}\r\n\r\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\r\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\r\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\r\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\r\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\r\n\r\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\r\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\r\n\t\t},\r\n\t\tset: function( tween ) {\r\n\r\n\t\t\t// Use step hook for back compat.\r\n\t\t\t// Use cssHook if its there.\r\n\t\t\t// Use .style if available and use plain properties where available.\r\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\r\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\r\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\r\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\r\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\r\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\r\n\t\t\t} else {\r\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\r\n\r\n// Support: IE <=9 only\r\n// Panic based approach to setting things on disconnected nodes\r\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\r\n\tset: function( tween ) {\r\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\r\n\t\t\ttween.elem[ tween.prop ] = tween.now;\r\n\t\t}\r\n\t}\r\n};\r\n\r\njQuery.easing = {\r\n\tlinear: function( p ) {\r\n\t\treturn p;\r\n\t},\r\n\tswing: function( p ) {\r\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\r\n\t},\r\n\t_default: \"swing\"\r\n};\r\n\r\njQuery.fx = Tween.prototype.init;\r\n\r\n// Back compat <1.8 extension point\r\njQuery.fx.step = {};\r\n\r\n\r\n\r\n\r\nvar\r\n\tfxNow, inProgress,\r\n\trfxtypes = /^(?:toggle|show|hide)$/,\r\n\trrun = /queueHooks$/;\r\n\r\nfunction schedule() {\r\n\tif ( inProgress ) {\r\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\r\n\t\t\twindow.requestAnimationFrame( schedule );\r\n\t\t} else {\r\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\r\n\t\t}\r\n\r\n\t\tjQuery.fx.tick();\r\n\t}\r\n}\r\n\r\n// Animations created synchronously will run synchronously\r\nfunction createFxNow() {\r\n\twindow.setTimeout( function() {\r\n\t\tfxNow = undefined;\r\n\t} );\r\n\treturn ( fxNow = Date.now() );\r\n}\r\n\r\n// Generate parameters to create a standard animation\r\nfunction genFx( type, includeWidth ) {\r\n\tvar which,\r\n\t\ti = 0,\r\n\t\tattrs = { height: type };\r\n\r\n\t// If we include width, step value is 1 to do all cssExpand values,\r\n\t// otherwise step value is 2 to skip over Left and Right\r\n\tincludeWidth = includeWidth ? 1 : 0;\r\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\r\n\t\twhich = cssExpand[ i ];\r\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\r\n\t}\r\n\r\n\tif ( includeWidth ) {\r\n\t\tattrs.opacity = attrs.width = type;\r\n\t}\r\n\r\n\treturn attrs;\r\n}\r\n\r\nfunction createTween( value, prop, animation ) {\r\n\tvar tween,\r\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\r\n\t\tindex = 0,\r\n\t\tlength = collection.length;\r\n\tfor ( ; index < length; index++ ) {\r\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\r\n\r\n\t\t\t// We're done with this property\r\n\t\t\treturn tween;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction defaultPrefilter( elem, props, opts ) {\r\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\r\n\t\tisBox = \"width\" in props || \"height\" in props,\r\n\t\tanim = this,\r\n\t\torig = {},\r\n\t\tstyle = elem.style,\r\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\r\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\r\n\r\n\t// Queue-skipping animations hijack the fx hooks\r\n\tif ( !opts.queue ) {\r\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\r\n\t\tif ( hooks.unqueued == null ) {\r\n\t\t\thooks.unqueued = 0;\r\n\t\t\toldfire = hooks.empty.fire;\r\n\t\t\thooks.empty.fire = function() {\r\n\t\t\t\tif ( !hooks.unqueued ) {\r\n\t\t\t\t\toldfire();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t\thooks.unqueued++;\r\n\r\n\t\tanim.always( function() {\r\n\r\n\t\t\t// Ensure the complete handler is called before this completes\r\n\t\t\tanim.always( function() {\r\n\t\t\t\thooks.unqueued--;\r\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\r\n\t\t\t\t\thooks.empty.fire();\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t} );\r\n\t}\r\n\r\n\t// Detect show/hide animations\r\n\tfor ( prop in props ) {\r\n\t\tvalue = props[ prop ];\r\n\t\tif ( rfxtypes.test( value ) ) {\r\n\t\t\tdelete props[ prop ];\r\n\t\t\ttoggle = toggle || value === \"toggle\";\r\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\r\n\r\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\r\n\t\t\t\t// there is still data from a stopped show/hide\r\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\r\n\t\t\t\t\thidden = true;\r\n\r\n\t\t\t\t// Ignore all other no-op show/hide data\r\n\t\t\t\t} else {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\r\n\t\t}\r\n\t}\r\n\r\n\t// Bail out if this is a no-op like .hide().hide()\r\n\tpropTween = !jQuery.isEmptyObject( props );\r\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Restrict \"overflow\" and \"display\" styles during box animations\r\n\tif ( isBox && elem.nodeType === 1 ) {\r\n\r\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\r\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\r\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\r\n\t\t// the overflowX value there.\r\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\r\n\r\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\r\n\t\trestoreDisplay = dataShow && dataShow.display;\r\n\t\tif ( restoreDisplay == null ) {\r\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\r\n\t\t}\r\n\t\tdisplay = jQuery.css( elem, \"display\" );\r\n\t\tif ( display === \"none\" ) {\r\n\t\t\tif ( restoreDisplay ) {\r\n\t\t\t\tdisplay = restoreDisplay;\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\r\n\t\t\t\tshowHide( [ elem ], true );\r\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\r\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\r\n\t\t\t\tshowHide( [ elem ] );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Animate inline elements as inline-block\r\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\r\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\r\n\r\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\r\n\t\t\t\tif ( !propTween ) {\r\n\t\t\t\t\tanim.done( function() {\r\n\t\t\t\t\t\tstyle.display = restoreDisplay;\r\n\t\t\t\t\t} );\r\n\t\t\t\t\tif ( restoreDisplay == null ) {\r\n\t\t\t\t\t\tdisplay = style.display;\r\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tstyle.display = \"inline-block\";\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif ( opts.overflow ) {\r\n\t\tstyle.overflow = \"hidden\";\r\n\t\tanim.always( function() {\r\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\r\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\r\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\r\n\t\t} );\r\n\t}\r\n\r\n\t// Implement show/hide animations\r\n\tpropTween = false;\r\n\tfor ( prop in orig ) {\r\n\r\n\t\t// General show/hide setup for this element animation\r\n\t\tif ( !propTween ) {\r\n\t\t\tif ( dataShow ) {\r\n\t\t\t\tif ( \"hidden\" in dataShow ) {\r\n\t\t\t\t\thidden = dataShow.hidden;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\r\n\t\t\t}\r\n\r\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\r\n\t\t\tif ( toggle ) {\r\n\t\t\t\tdataShow.hidden = !hidden;\r\n\t\t\t}\r\n\r\n\t\t\t// Show elements before animating them\r\n\t\t\tif ( hidden ) {\r\n\t\t\t\tshowHide( [ elem ], true );\r\n\t\t\t}\r\n\r\n\t\t\t/* eslint-disable no-loop-func */\r\n\r\n\t\t\tanim.done( function() {\r\n\r\n\t\t\t\t/* eslint-enable no-loop-func */\r\n\r\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\r\n\t\t\t\tif ( !hidden ) {\r\n\t\t\t\t\tshowHide( [ elem ] );\r\n\t\t\t\t}\r\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\r\n\t\t\t\tfor ( prop in orig ) {\r\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\r\n\t\t\t\t}\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\t// Per-property setup\r\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\r\n\t\tif ( !( prop in dataShow ) ) {\r\n\t\t\tdataShow[ prop ] = propTween.start;\r\n\t\t\tif ( hidden ) {\r\n\t\t\t\tpropTween.end = propTween.start;\r\n\t\t\t\tpropTween.start = 0;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction propFilter( props, specialEasing ) {\r\n\tvar index, name, easing, value, hooks;\r\n\r\n\t// camelCase, specialEasing and expand cssHook pass\r\n\tfor ( index in props ) {\r\n\t\tname = camelCase( index );\r\n\t\teasing = specialEasing[ name ];\r\n\t\tvalue = props[ index ];\r\n\t\tif ( Array.isArray( value ) ) {\r\n\t\t\teasing = value[ 1 ];\r\n\t\t\tvalue = props[ index ] = value[ 0 ];\r\n\t\t}\r\n\r\n\t\tif ( index !== name ) {\r\n\t\t\tprops[ name ] = value;\r\n\t\t\tdelete props[ index ];\r\n\t\t}\r\n\r\n\t\thooks = jQuery.cssHooks[ name ];\r\n\t\tif ( hooks && \"expand\" in hooks ) {\r\n\t\t\tvalue = hooks.expand( value );\r\n\t\t\tdelete props[ name ];\r\n\r\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\r\n\t\t\t// Reusing 'index' because we have the correct \"name\"\r\n\t\t\tfor ( index in value ) {\r\n\t\t\t\tif ( !( index in props ) ) {\r\n\t\t\t\t\tprops[ index ] = value[ index ];\r\n\t\t\t\t\tspecialEasing[ index ] = easing;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tspecialEasing[ name ] = easing;\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction Animation( elem, properties, options ) {\r\n\tvar result,\r\n\t\tstopped,\r\n\t\tindex = 0,\r\n\t\tlength = Animation.prefilters.length,\r\n\t\tdeferred = jQuery.Deferred().always( function() {\r\n\r\n\t\t\t// Don't match elem in the :animated selector\r\n\t\t\tdelete tick.elem;\r\n\t\t} ),\r\n\t\ttick = function() {\r\n\t\t\tif ( stopped ) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\tvar currentTime = fxNow || createFxNow(),\r\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\r\n\r\n\t\t\t\t// Support: Android 2.3 only\r\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\r\n\t\t\t\ttemp = remaining / animation.duration || 0,\r\n\t\t\t\tpercent = 1 - temp,\r\n\t\t\t\tindex = 0,\r\n\t\t\t\tlength = animation.tweens.length;\r\n\r\n\t\t\tfor ( ; index < length; index++ ) {\r\n\t\t\t\tanimation.tweens[ index ].run( percent );\r\n\t\t\t}\r\n\r\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\r\n\r\n\t\t\t// If there's more to do, yield\r\n\t\t\tif ( percent < 1 && length ) {\r\n\t\t\t\treturn remaining;\r\n\t\t\t}\r\n\r\n\t\t\t// If this was an empty animation, synthesize a final progress notification\r\n\t\t\tif ( !length ) {\r\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\r\n\t\t\t}\r\n\r\n\t\t\t// Resolve the animation and report its conclusion\r\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\r\n\t\t\treturn false;\r\n\t\t},\r\n\t\tanimation = deferred.promise( {\r\n\t\t\telem: elem,\r\n\t\t\tprops: jQuery.extend( {}, properties ),\r\n\t\t\topts: jQuery.extend( true, {\r\n\t\t\t\tspecialEasing: {},\r\n\t\t\t\teasing: jQuery.easing._default\r\n\t\t\t}, options ),\r\n\t\t\toriginalProperties: properties,\r\n\t\t\toriginalOptions: options,\r\n\t\t\tstartTime: fxNow || createFxNow(),\r\n\t\t\tduration: options.duration,\r\n\t\t\ttweens: [],\r\n\t\t\tcreateTween: function( prop, end ) {\r\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\r\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\r\n\t\t\t\tanimation.tweens.push( tween );\r\n\t\t\t\treturn tween;\r\n\t\t\t},\r\n\t\t\tstop: function( gotoEnd ) {\r\n\t\t\t\tvar index = 0,\r\n\r\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\r\n\t\t\t\t\t// otherwise we skip this part\r\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\r\n\t\t\t\tif ( stopped ) {\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\t\t\t\tstopped = true;\r\n\t\t\t\tfor ( ; index < length; index++ ) {\r\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\r\n\t\t\t\tif ( gotoEnd ) {\r\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\r\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\r\n\t\t\t\t}\r\n\t\t\t\treturn this;\r\n\t\t\t}\r\n\t\t} ),\r\n\t\tprops = animation.props;\r\n\r\n\tpropFilter( props, animation.opts.specialEasing );\r\n\r\n\tfor ( ; index < length; index++ ) {\r\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\r\n\t\tif ( result ) {\r\n\t\t\tif ( isFunction( result.stop ) ) {\r\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\r\n\t\t\t\t\tresult.stop.bind( result );\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t}\r\n\t}\r\n\r\n\tjQuery.map( props, createTween, animation );\r\n\r\n\tif ( isFunction( animation.opts.start ) ) {\r\n\t\tanimation.opts.start.call( elem, animation );\r\n\t}\r\n\r\n\t// Attach callbacks from options\r\n\tanimation\r\n\t\t.progress( animation.opts.progress )\r\n\t\t.done( animation.opts.done, animation.opts.complete )\r\n\t\t.fail( animation.opts.fail )\r\n\t\t.always( animation.opts.always );\r\n\r\n\tjQuery.fx.timer(\r\n\t\tjQuery.extend( tick, {\r\n\t\t\telem: elem,\r\n\t\t\tanim: animation,\r\n\t\t\tqueue: animation.opts.queue\r\n\t\t} )\r\n\t);\r\n\r\n\treturn animation;\r\n}\r\n\r\njQuery.Animation = jQuery.extend( Animation, {\r\n\r\n\ttweeners: {\r\n\t\t\"*\": [ function( prop, value ) {\r\n\t\t\tvar tween = this.createTween( prop, value );\r\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\r\n\t\t\treturn tween;\r\n\t\t} ]\r\n\t},\r\n\r\n\ttweener: function( props, callback ) {\r\n\t\tif ( isFunction( props ) ) {\r\n\t\t\tcallback = props;\r\n\t\t\tprops = [ \"*\" ];\r\n\t\t} else {\r\n\t\t\tprops = props.match( rnothtmlwhite );\r\n\t\t}\r\n\r\n\t\tvar prop,\r\n\t\t\tindex = 0,\r\n\t\t\tlength = props.length;\r\n\r\n\t\tfor ( ; index < length; index++ ) {\r\n\t\t\tprop = props[ index ];\r\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\r\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\r\n\t\t}\r\n\t},\r\n\r\n\tprefilters: [ defaultPrefilter ],\r\n\r\n\tprefilter: function( callback, prepend ) {\r\n\t\tif ( prepend ) {\r\n\t\t\tAnimation.prefilters.unshift( callback );\r\n\t\t} else {\r\n\t\t\tAnimation.prefilters.push( callback );\r\n\t\t}\r\n\t}\r\n} );\r\n\r\njQuery.speed = function( speed, easing, fn ) {\r\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\r\n\t\tcomplete: fn || !fn && easing ||\r\n\t\t\tisFunction( speed ) && speed,\r\n\t\tduration: speed,\r\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\r\n\t};\r\n\r\n\t// Go to the end state if fx are off\r\n\tif ( jQuery.fx.off ) {\r\n\t\topt.duration = 0;\r\n\r\n\t} else {\r\n\t\tif ( typeof opt.duration !== \"number\" ) {\r\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\r\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\r\n\r\n\t\t\t} else {\r\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\r\n\tif ( opt.queue == null || opt.queue === true ) {\r\n\t\topt.queue = \"fx\";\r\n\t}\r\n\r\n\t// Queueing\r\n\topt.old = opt.complete;\r\n\r\n\topt.complete = function() {\r\n\t\tif ( isFunction( opt.old ) ) {\r\n\t\t\topt.old.call( this );\r\n\t\t}\r\n\r\n\t\tif ( opt.queue ) {\r\n\t\t\tjQuery.dequeue( this, opt.queue );\r\n\t\t}\r\n\t};\r\n\r\n\treturn opt;\r\n};\r\n\r\njQuery.fn.extend( {\r\n\tfadeTo: function( speed, to, easing, callback ) {\r\n\r\n\t\t// Show any hidden elements after setting opacity to 0\r\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\r\n\r\n\t\t\t// Animate to the value specified\r\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\r\n\t},\r\n\tanimate: function( prop, speed, easing, callback ) {\r\n\t\tvar empty = jQuery.isEmptyObject( prop ),\r\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\r\n\t\t\tdoAnimation = function() {\r\n\r\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\r\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\r\n\r\n\t\t\t\t// Empty animations, or finishing resolves immediately\r\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\r\n\t\t\t\t\tanim.stop( true );\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\tdoAnimation.finish = doAnimation;\r\n\r\n\t\treturn empty || optall.queue === false ?\r\n\t\t\tthis.each( doAnimation ) :\r\n\t\t\tthis.queue( optall.queue, doAnimation );\r\n\t},\r\n\tstop: function( type, clearQueue, gotoEnd ) {\r\n\t\tvar stopQueue = function( hooks ) {\r\n\t\t\tvar stop = hooks.stop;\r\n\t\t\tdelete hooks.stop;\r\n\t\t\tstop( gotoEnd );\r\n\t\t};\r\n\r\n\t\tif ( typeof type !== \"string\" ) {\r\n\t\t\tgotoEnd = clearQueue;\r\n\t\t\tclearQueue = type;\r\n\t\t\ttype = undefined;\r\n\t\t}\r\n\t\tif ( clearQueue ) {\r\n\t\t\tthis.queue( type || \"fx\", [] );\r\n\t\t}\r\n\r\n\t\treturn this.each( function() {\r\n\t\t\tvar dequeue = true,\r\n\t\t\t\tindex = type != null && type + \"queueHooks\",\r\n\t\t\t\ttimers = jQuery.timers,\r\n\t\t\t\tdata = dataPriv.get( this );\r\n\r\n\t\t\tif ( index ) {\r\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\r\n\t\t\t\t\tstopQueue( data[ index ] );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor ( index in data ) {\r\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\r\n\t\t\t\t\t\tstopQueue( data[ index ] );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfor ( index = timers.length; index--; ) {\r\n\t\t\t\tif ( timers[ index ].elem === this &&\r\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\r\n\r\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\r\n\t\t\t\t\tdequeue = false;\r\n\t\t\t\t\ttimers.splice( index, 1 );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Start the next in the queue if the last step wasn't forced.\r\n\t\t\t// Timers currently will call their complete callbacks, which\r\n\t\t\t// will dequeue but only if they were gotoEnd.\r\n\t\t\tif ( dequeue || !gotoEnd ) {\r\n\t\t\t\tjQuery.dequeue( this, type );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\tfinish: function( type ) {\r\n\t\tif ( type !== false ) {\r\n\t\t\ttype = type || \"fx\";\r\n\t\t}\r\n\t\treturn this.each( function() {\r\n\t\t\tvar index,\r\n\t\t\t\tdata = dataPriv.get( this ),\r\n\t\t\t\tqueue = data[ type + \"queue\" ],\r\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\r\n\t\t\t\ttimers = jQuery.timers,\r\n\t\t\t\tlength = queue ? queue.length : 0;\r\n\r\n\t\t\t// Enable finishing flag on private data\r\n\t\t\tdata.finish = true;\r\n\r\n\t\t\t// Empty the queue first\r\n\t\t\tjQuery.queue( this, type, [] );\r\n\r\n\t\t\tif ( hooks && hooks.stop ) {\r\n\t\t\t\thooks.stop.call( this, true );\r\n\t\t\t}\r\n\r\n\t\t\t// Look for any active animations, and finish them\r\n\t\t\tfor ( index = timers.length; index--; ) {\r\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\r\n\t\t\t\t\ttimers[ index ].anim.stop( true );\r\n\t\t\t\t\ttimers.splice( index, 1 );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Look for any animations in the old queue and finish them\r\n\t\t\tfor ( index = 0; index < length; index++ ) {\r\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\r\n\t\t\t\t\tqueue[ index ].finish.call( this );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Turn off finishing flag\r\n\t\t\tdelete data.finish;\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\r\n\tvar cssFn = jQuery.fn[ name ];\r\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\r\n\t\treturn speed == null || typeof speed === \"boolean\" ?\r\n\t\t\tcssFn.apply( this, arguments ) :\r\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\r\n\t};\r\n} );\r\n\r\n// Generate shortcuts for custom animations\r\njQuery.each( {\r\n\tslideDown: genFx( \"show\" ),\r\n\tslideUp: genFx( \"hide\" ),\r\n\tslideToggle: genFx( \"toggle\" ),\r\n\tfadeIn: { opacity: \"show\" },\r\n\tfadeOut: { opacity: \"hide\" },\r\n\tfadeToggle: { opacity: \"toggle\" }\r\n}, function( name, props ) {\r\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\r\n\t\treturn this.animate( props, speed, easing, callback );\r\n\t};\r\n} );\r\n\r\njQuery.timers = [];\r\njQuery.fx.tick = function() {\r\n\tvar timer,\r\n\t\ti = 0,\r\n\t\ttimers = jQuery.timers;\r\n\r\n\tfxNow = Date.now();\r\n\r\n\tfor ( ; i < timers.length; i++ ) {\r\n\t\ttimer = timers[ i ];\r\n\r\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\r\n\t\tif ( !timer() && timers[ i ] === timer ) {\r\n\t\t\ttimers.splice( i--, 1 );\r\n\t\t}\r\n\t}\r\n\r\n\tif ( !timers.length ) {\r\n\t\tjQuery.fx.stop();\r\n\t}\r\n\tfxNow = undefined;\r\n};\r\n\r\njQuery.fx.timer = function( timer ) {\r\n\tjQuery.timers.push( timer );\r\n\tjQuery.fx.start();\r\n};\r\n\r\njQuery.fx.interval = 13;\r\njQuery.fx.start = function() {\r\n\tif ( inProgress ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tinProgress = true;\r\n\tschedule();\r\n};\r\n\r\njQuery.fx.stop = function() {\r\n\tinProgress = null;\r\n};\r\n\r\njQuery.fx.speeds = {\r\n\tslow: 600,\r\n\tfast: 200,\r\n\r\n\t// Default speed\r\n\t_default: 400\r\n};\r\n\r\n\r\n// Based off of the plugin by Clint Helfers, with permission.\r\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\r\njQuery.fn.delay = function( time, type ) {\r\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\r\n\ttype = type || \"fx\";\r\n\r\n\treturn this.queue( type, function( next, hooks ) {\r\n\t\tvar timeout = window.setTimeout( next, time );\r\n\t\thooks.stop = function() {\r\n\t\t\twindow.clearTimeout( timeout );\r\n\t\t};\r\n\t} );\r\n};\r\n\r\n\r\n( function() {\r\n\tvar input = document.createElement( \"input\" ),\r\n\t\tselect = document.createElement( \"select\" ),\r\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\r\n\r\n\tinput.type = \"checkbox\";\r\n\r\n\t// Support: Android <=4.3 only\r\n\t// Default value for a checkbox should be \"on\"\r\n\tsupport.checkOn = input.value !== \"\";\r\n\r\n\t// Support: IE <=11 only\r\n\t// Must access selectedIndex to make default options select\r\n\tsupport.optSelected = opt.selected;\r\n\r\n\t// Support: IE <=11 only\r\n\t// An input loses its value after becoming a radio\r\n\tinput = document.createElement( \"input\" );\r\n\tinput.value = \"t\";\r\n\tinput.type = \"radio\";\r\n\tsupport.radioValue = input.value === \"t\";\r\n} )();\r\n\r\n\r\nvar boolHook,\r\n\tattrHandle = jQuery.expr.attrHandle;\r\n\r\njQuery.fn.extend( {\r\n\tattr: function( name, value ) {\r\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\r\n\t},\r\n\r\n\tremoveAttr: function( name ) {\r\n\t\treturn this.each( function() {\r\n\t\t\tjQuery.removeAttr( this, name );\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\njQuery.extend( {\r\n\tattr: function( elem, name, value ) {\r\n\t\tvar ret, hooks,\r\n\t\t\tnType = elem.nodeType;\r\n\r\n\t\t// Don't get/set attributes on text, comment and attribute nodes\r\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Fallback to prop when attributes are not supported\r\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\r\n\t\t\treturn jQuery.prop( elem, name, value );\r\n\t\t}\r\n\r\n\t\t// Attribute hooks are determined by the lowercase version\r\n\t\t// Grab necessary hook if one is defined\r\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\r\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\r\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\r\n\t\t}\r\n\r\n\t\tif ( value !== undefined ) {\r\n\t\t\tif ( value === null ) {\r\n\t\t\t\tjQuery.removeAttr( elem, name );\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif ( hooks && \"set\" in hooks &&\r\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\r\n\t\t\telem.setAttribute( name, value + \"\" );\r\n\t\t\treturn value;\r\n\t\t}\r\n\r\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\tret = jQuery.find.attr( elem, name );\r\n\r\n\t\t// Non-existent attributes return null, we normalize to undefined\r\n\t\treturn ret == null ? undefined : ret;\r\n\t},\r\n\r\n\tattrHooks: {\r\n\t\ttype: {\r\n\t\t\tset: function( elem, value ) {\r\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\r\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\r\n\t\t\t\t\tvar val = elem.value;\r\n\t\t\t\t\telem.setAttribute( \"type\", value );\r\n\t\t\t\t\tif ( val ) {\r\n\t\t\t\t\t\telem.value = val;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tremoveAttr: function( elem, value ) {\r\n\t\tvar name,\r\n\t\t\ti = 0,\r\n\r\n\t\t\t// Attribute names can contain non-HTML whitespace characters\r\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\r\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\r\n\r\n\t\tif ( attrNames && elem.nodeType === 1 ) {\r\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\r\n\t\t\t\telem.removeAttribute( name );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n} );\r\n\r\n// Hooks for boolean attributes\r\nboolHook = {\r\n\tset: function( elem, value, name ) {\r\n\t\tif ( value === false ) {\r\n\r\n\t\t\t// Remove boolean attributes when set to false\r\n\t\t\tjQuery.removeAttr( elem, name );\r\n\t\t} else {\r\n\t\t\telem.setAttribute( name, name );\r\n\t\t}\r\n\t\treturn name;\r\n\t}\r\n};\r\n\r\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\r\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\r\n\r\n\tattrHandle[ name ] = function( elem, name, isXML ) {\r\n\t\tvar ret, handle,\r\n\t\t\tlowercaseName = name.toLowerCase();\r\n\r\n\t\tif ( !isXML ) {\r\n\r\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\r\n\t\t\thandle = attrHandle[ lowercaseName ];\r\n\t\t\tattrHandle[ lowercaseName ] = ret;\r\n\t\t\tret = getter( elem, name, isXML ) != null ?\r\n\t\t\t\tlowercaseName :\r\n\t\t\t\tnull;\r\n\t\t\tattrHandle[ lowercaseName ] = handle;\r\n\t\t}\r\n\t\treturn ret;\r\n\t};\r\n} );\r\n\r\n\r\n\r\n\r\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\r\n\trclickable = /^(?:a|area)$/i;\r\n\r\njQuery.fn.extend( {\r\n\tprop: function( name, value ) {\r\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\r\n\t},\r\n\r\n\tremoveProp: function( name ) {\r\n\t\treturn this.each( function() {\r\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\njQuery.extend( {\r\n\tprop: function( elem, name, value ) {\r\n\t\tvar ret, hooks,\r\n\t\t\tnType = elem.nodeType;\r\n\r\n\t\t// Don't get/set properties on text, comment and attribute nodes\r\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\r\n\r\n\t\t\t// Fix name and attach hooks\r\n\t\t\tname = jQuery.propFix[ name ] || name;\r\n\t\t\thooks = jQuery.propHooks[ name ];\r\n\t\t}\r\n\r\n\t\tif ( value !== undefined ) {\r\n\t\t\tif ( hooks && \"set\" in hooks &&\r\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\r\n\t\t\t\treturn ret;\r\n\t\t\t}\r\n\r\n\t\t\treturn ( elem[ name ] = value );\r\n\t\t}\r\n\r\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\r\n\t\t\treturn ret;\r\n\t\t}\r\n\r\n\t\treturn elem[ name ];\r\n\t},\r\n\r\n\tpropHooks: {\r\n\t\ttabIndex: {\r\n\t\t\tget: function( elem ) {\r\n\r\n\t\t\t\t// Support: IE <=9 - 11 only\r\n\t\t\t\t// elem.tabIndex doesn't always return the\r\n\t\t\t\t// correct value when it hasn't been explicitly set\r\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/\r\n\t\t\t\t// Use proper attribute retrieval(#12072)\r\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\r\n\r\n\t\t\t\tif ( tabindex ) {\r\n\t\t\t\t\treturn parseInt( tabindex, 10 );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (\r\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\r\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\r\n\t\t\t\t\telem.href\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tpropFix: {\r\n\t\t\"for\": \"htmlFor\",\r\n\t\t\"class\": \"className\"\r\n\t}\r\n} );\r\n\r\n// Support: IE <=11 only\r\n// Accessing the selectedIndex property\r\n// forces the browser to respect setting selected\r\n// on the option\r\n// The getter ensures a default option is selected\r\n// when in an optgroup\r\n// eslint rule \"no-unused-expressions\" is disabled for this code\r\n// since it considers such accessions noop\r\nif ( !support.optSelected ) {\r\n\tjQuery.propHooks.selected = {\r\n\t\tget: function( elem ) {\r\n\r\n\t\t\t/* eslint no-unused-expressions: \"off\" */\r\n\r\n\t\t\tvar parent = elem.parentNode;\r\n\t\t\tif ( parent && parent.parentNode ) {\r\n\t\t\t\tparent.parentNode.selectedIndex;\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\tset: function( elem ) {\r\n\r\n\t\t\t/* eslint no-unused-expressions: \"off\" */\r\n\r\n\t\t\tvar parent = elem.parentNode;\r\n\t\t\tif ( parent ) {\r\n\t\t\t\tparent.selectedIndex;\r\n\r\n\t\t\t\tif ( parent.parentNode ) {\r\n\t\t\t\t\tparent.parentNode.selectedIndex;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\njQuery.each( [\r\n\t\"tabIndex\",\r\n\t\"readOnly\",\r\n\t\"maxLength\",\r\n\t\"cellSpacing\",\r\n\t\"cellPadding\",\r\n\t\"rowSpan\",\r\n\t\"colSpan\",\r\n\t\"useMap\",\r\n\t\"frameBorder\",\r\n\t\"contentEditable\"\r\n], function() {\r\n\tjQuery.propFix[ this.toLowerCase() ] = this;\r\n} );\r\n\r\n\r\n\r\n\r\n\t// Strip and collapse whitespace according to HTML spec\r\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\r\n\tfunction stripAndCollapse( value ) {\r\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\r\n\t\treturn tokens.join( \" \" );\r\n\t}\r\n\r\n\r\nfunction getClass( elem ) {\r\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\r\n}\r\n\r\nfunction classesToArray( value ) {\r\n\tif ( Array.isArray( value ) ) {\r\n\t\treturn value;\r\n\t}\r\n\tif ( typeof value === \"string\" ) {\r\n\t\treturn value.match( rnothtmlwhite ) || [];\r\n\t}\r\n\treturn [];\r\n}\r\n\r\njQuery.fn.extend( {\r\n\taddClass: function( value ) {\r\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\r\n\t\t\ti = 0;\r\n\r\n\t\tif ( isFunction( value ) ) {\r\n\t\t\treturn this.each( function( j ) {\r\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\tclasses = classesToArray( value );\r\n\r\n\t\tif ( classes.length ) {\r\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\r\n\t\t\t\tcurValue = getClass( elem );\r\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\r\n\r\n\t\t\t\tif ( cur ) {\r\n\t\t\t\t\tj = 0;\r\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\r\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\r\n\t\t\t\t\t\t\tcur += clazz + \" \";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\r\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\r\n\t\t\t\t\tif ( curValue !== finalValue ) {\r\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\tremoveClass: function( value ) {\r\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\r\n\t\t\ti = 0;\r\n\r\n\t\tif ( isFunction( value ) ) {\r\n\t\t\treturn this.each( function( j ) {\r\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\tif ( !arguments.length ) {\r\n\t\t\treturn this.attr( \"class\", \"\" );\r\n\t\t}\r\n\r\n\t\tclasses = classesToArray( value );\r\n\r\n\t\tif ( classes.length ) {\r\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\r\n\t\t\t\tcurValue = getClass( elem );\r\n\r\n\t\t\t\t// This expression is here for better compressibility (see addClass)\r\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\r\n\r\n\t\t\t\tif ( cur ) {\r\n\t\t\t\t\tj = 0;\r\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\r\n\r\n\t\t\t\t\t\t// Remove *all* instances\r\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\r\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\r\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\r\n\t\t\t\t\tif ( curValue !== finalValue ) {\r\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\ttoggleClass: function( value, stateVal ) {\r\n\t\tvar type = typeof value,\r\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\r\n\r\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\r\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\r\n\t\t}\r\n\r\n\t\tif ( isFunction( value ) ) {\r\n\t\t\treturn this.each( function( i ) {\r\n\t\t\t\tjQuery( this ).toggleClass(\r\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\r\n\t\t\t\t\tstateVal\r\n\t\t\t\t);\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\treturn this.each( function() {\r\n\t\t\tvar className, i, self, classNames;\r\n\r\n\t\t\tif ( isValidValue ) {\r\n\r\n\t\t\t\t// Toggle individual class names\r\n\t\t\t\ti = 0;\r\n\t\t\t\tself = jQuery( this );\r\n\t\t\t\tclassNames = classesToArray( value );\r\n\r\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\r\n\r\n\t\t\t\t\t// Check each className given, space separated list\r\n\t\t\t\t\tif ( self.hasClass( className ) ) {\r\n\t\t\t\t\t\tself.removeClass( className );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tself.addClass( className );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t// Toggle whole class name\r\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\r\n\t\t\t\tclassName = getClass( this );\r\n\t\t\t\tif ( className ) {\r\n\r\n\t\t\t\t\t// Store className if set\r\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// If the element has a class name or if we're passed `false`,\r\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\r\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\r\n\t\t\t\t// falling back to the empty string if nothing was stored.\r\n\t\t\t\tif ( this.setAttribute ) {\r\n\t\t\t\t\tthis.setAttribute( \"class\",\r\n\t\t\t\t\t\tclassName || value === false ?\r\n\t\t\t\t\t\t\t\"\" :\r\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\thasClass: function( selector ) {\r\n\t\tvar className, elem,\r\n\t\t\ti = 0;\r\n\r\n\t\tclassName = \" \" + selector + \" \";\r\n\t\twhile ( ( elem = this[ i++ ] ) ) {\r\n\t\t\tif ( elem.nodeType === 1 &&\r\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n} );\r\n\r\n\r\n\r\n\r\nvar rreturn = /\\r/g;\r\n\r\njQuery.fn.extend( {\r\n\tval: function( value ) {\r\n\t\tvar hooks, ret, valueIsFunction,\r\n\t\t\telem = this[ 0 ];\r\n\r\n\t\tif ( !arguments.length ) {\r\n\t\t\tif ( elem ) {\r\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\r\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\r\n\r\n\t\t\t\tif ( hooks &&\r\n\t\t\t\t\t\"get\" in hooks &&\r\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\r\n\t\t\t\t) {\r\n\t\t\t\t\treturn ret;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tret = elem.value;\r\n\r\n\t\t\t\t// Handle most common string cases\r\n\t\t\t\tif ( typeof ret === \"string\" ) {\r\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Handle cases where value is null/undef or number\r\n\t\t\t\treturn ret == null ? \"\" : ret;\r\n\t\t\t}\r\n\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvalueIsFunction = isFunction( value );\r\n\r\n\t\treturn this.each( function( i ) {\r\n\t\t\tvar val;\r\n\r\n\t\t\tif ( this.nodeType !== 1 ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif ( valueIsFunction ) {\r\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\r\n\t\t\t} else {\r\n\t\t\t\tval = value;\r\n\t\t\t}\r\n\r\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\r\n\t\t\tif ( val == null ) {\r\n\t\t\t\tval = \"\";\r\n\r\n\t\t\t} else if ( typeof val === \"number\" ) {\r\n\t\t\t\tval += \"\";\r\n\r\n\t\t\t} else if ( Array.isArray( val ) ) {\r\n\t\t\t\tval = jQuery.map( val, function( value ) {\r\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\r\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\r\n\r\n\t\t\t// If set returns undefined, fall back to normal setting\r\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\r\n\t\t\t\tthis.value = val;\r\n\t\t\t}\r\n\t\t} );\r\n\t}\r\n} );\r\n\r\njQuery.extend( {\r\n\tvalHooks: {\r\n\t\toption: {\r\n\t\t\tget: function( elem ) {\r\n\r\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\r\n\t\t\t\treturn val != null ?\r\n\t\t\t\t\tval :\r\n\r\n\t\t\t\t\t// Support: IE <=10 - 11 only\r\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\r\n\t\t\t\t\t// Strip and collapse whitespace\r\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\r\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\r\n\t\t\t}\r\n\t\t},\r\n\t\tselect: {\r\n\t\t\tget: function( elem ) {\r\n\t\t\t\tvar value, option, i,\r\n\t\t\t\t\toptions = elem.options,\r\n\t\t\t\t\tindex = elem.selectedIndex,\r\n\t\t\t\t\tone = elem.type === \"select-one\",\r\n\t\t\t\t\tvalues = one ? null : [],\r\n\t\t\t\t\tmax = one ? index + 1 : options.length;\r\n\r\n\t\t\t\tif ( index < 0 ) {\r\n\t\t\t\t\ti = max;\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\ti = one ? index : 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Loop through all the selected options\r\n\t\t\t\tfor ( ; i < max; i++ ) {\r\n\t\t\t\t\toption = options[ i ];\r\n\r\n\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\r\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\r\n\r\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\r\n\t\t\t\t\t\t\t!option.disabled &&\r\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\r\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\r\n\r\n\t\t\t\t\t\t// Get the specific value for the option\r\n\t\t\t\t\t\tvalue = jQuery( option ).val();\r\n\r\n\t\t\t\t\t\t// We don't need an array for one selects\r\n\t\t\t\t\t\tif ( one ) {\r\n\t\t\t\t\t\t\treturn value;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Multi-Selects return an array\r\n\t\t\t\t\t\tvalues.push( value );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn values;\r\n\t\t\t},\r\n\r\n\t\t\tset: function( elem, value ) {\r\n\t\t\t\tvar optionSet, option,\r\n\t\t\t\t\toptions = elem.options,\r\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\r\n\t\t\t\t\ti = options.length;\r\n\r\n\t\t\t\twhile ( i-- ) {\r\n\t\t\t\t\toption = options[ i ];\r\n\r\n\t\t\t\t\t/* eslint-disable no-cond-assign */\r\n\r\n\t\t\t\t\tif ( option.selected =\r\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\toptionSet = true;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t/* eslint-enable no-cond-assign */\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\r\n\t\t\t\tif ( !optionSet ) {\r\n\t\t\t\t\telem.selectedIndex = -1;\r\n\t\t\t\t}\r\n\t\t\t\treturn values;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n} );\r\n\r\n// Radios and checkboxes getter/setter\r\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\r\n\tjQuery.valHooks[ this ] = {\r\n\t\tset: function( elem, value ) {\r\n\t\t\tif ( Array.isArray( value ) ) {\r\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\tif ( !support.checkOn ) {\r\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\r\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\r\n\t\t};\r\n\t}\r\n} );\r\n\r\n\r\n\r\n\r\n// Return jQuery for attributes-only inclusion\r\n\r\n\r\nsupport.focusin = \"onfocusin\" in window;\r\n\r\n\r\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\r\n\tstopPropagationCallback = function( e ) {\r\n\t\te.stopPropagation();\r\n\t};\r\n\r\njQuery.extend( jQuery.event, {\r\n\r\n\ttrigger: function( event, data, elem, onlyHandlers ) {\r\n\r\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\r\n\t\t\teventPath = [ elem || document ],\r\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\r\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\r\n\r\n\t\tcur = lastElement = tmp = elem = elem || document;\r\n\r\n\t\t// Don't do events on text and comment nodes\r\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\r\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\r\n\r\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\r\n\t\t\tnamespaces = type.split( \".\" );\r\n\t\t\ttype = namespaces.shift();\r\n\t\t\tnamespaces.sort();\r\n\t\t}\r\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\r\n\r\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\r\n\t\tevent = event[ jQuery.expando ] ?\r\n\t\t\tevent :\r\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\r\n\r\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\r\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\r\n\t\tevent.namespace = namespaces.join( \".\" );\r\n\t\tevent.rnamespace = event.namespace ?\r\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\r\n\t\t\tnull;\r\n\r\n\t\t// Clean up the event in case it is being reused\r\n\t\tevent.result = undefined;\r\n\t\tif ( !event.target ) {\r\n\t\t\tevent.target = elem;\r\n\t\t}\r\n\r\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\r\n\t\tdata = data == null ?\r\n\t\t\t[ event ] :\r\n\t\t\tjQuery.makeArray( data, [ event ] );\r\n\r\n\t\t// Allow special events to draw outside the lines\r\n\t\tspecial = jQuery.event.special[ type ] || {};\r\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\r\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\r\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\r\n\r\n\t\t\tbubbleType = special.delegateType || type;\r\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\r\n\t\t\t\tcur = cur.parentNode;\r\n\t\t\t}\r\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\r\n\t\t\t\teventPath.push( cur );\r\n\t\t\t\ttmp = cur;\r\n\t\t\t}\r\n\r\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\r\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\r\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Fire handlers on the event path\r\n\t\ti = 0;\r\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\r\n\t\t\tlastElement = cur;\r\n\t\t\tevent.type = i > 1 ?\r\n\t\t\t\tbubbleType :\r\n\t\t\t\tspecial.bindType || type;\r\n\r\n\t\t\t// jQuery handler\r\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\r\n\t\t\t\tdataPriv.get( cur, \"handle\" );\r\n\t\t\tif ( handle ) {\r\n\t\t\t\thandle.apply( cur, data );\r\n\t\t\t}\r\n\r\n\t\t\t// Native handler\r\n\t\t\thandle = ontype && cur[ ontype ];\r\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\r\n\t\t\t\tevent.result = handle.apply( cur, data );\r\n\t\t\t\tif ( event.result === false ) {\r\n\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tevent.type = type;\r\n\r\n\t\t// If nobody prevented the default action, do it now\r\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\r\n\r\n\t\t\tif ( ( !special._default ||\r\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\r\n\t\t\t\tacceptData( elem ) ) {\r\n\r\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\r\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\r\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\r\n\r\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\r\n\t\t\t\t\ttmp = elem[ ontype ];\r\n\r\n\t\t\t\t\tif ( tmp ) {\r\n\t\t\t\t\t\telem[ ontype ] = null;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\r\n\t\t\t\t\tjQuery.event.triggered = type;\r\n\r\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\r\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\telem[ type ]();\r\n\r\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\r\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tjQuery.event.triggered = undefined;\r\n\r\n\t\t\t\t\tif ( tmp ) {\r\n\t\t\t\t\t\telem[ ontype ] = tmp;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn event.result;\r\n\t},\r\n\r\n\t// Piggyback on a donor event to simulate a different one\r\n\t// Used only for `focus(in | out)` events\r\n\tsimulate: function( type, elem, event ) {\r\n\t\tvar e = jQuery.extend(\r\n\t\t\tnew jQuery.Event(),\r\n\t\t\tevent,\r\n\t\t\t{\r\n\t\t\t\ttype: type,\r\n\t\t\t\tisSimulated: true\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tjQuery.event.trigger( e, null, elem );\r\n\t}\r\n\r\n} );\r\n\r\njQuery.fn.extend( {\r\n\r\n\ttrigger: function( type, data ) {\r\n\t\treturn this.each( function() {\r\n\t\t\tjQuery.event.trigger( type, data, this );\r\n\t\t} );\r\n\t},\r\n\ttriggerHandler: function( type, data ) {\r\n\t\tvar elem = this[ 0 ];\r\n\t\tif ( elem ) {\r\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\r\n\t\t}\r\n\t}\r\n} );\r\n\r\n\r\n// Support: Firefox <=44\r\n// Firefox doesn't have focus(in | out) events\r\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\r\n//\r\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\r\n// focus(in | out) events fire after focus & blur events,\r\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\r\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\r\nif ( !support.focusin ) {\r\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\r\n\r\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\r\n\t\tvar handler = function( event ) {\r\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\r\n\t\t};\r\n\r\n\t\tjQuery.event.special[ fix ] = {\r\n\t\t\tsetup: function() {\r\n\r\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\r\n\t\t\t\t// (via `this.document`) & document (via `this`).\r\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\r\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\r\n\r\n\t\t\t\tif ( !attaches ) {\r\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\r\n\t\t\t\t}\r\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\r\n\t\t\t},\r\n\t\t\tteardown: function() {\r\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\r\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\r\n\r\n\t\t\t\tif ( !attaches ) {\r\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\r\n\t\t\t\t\tdataPriv.remove( doc, fix );\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t} );\r\n}\r\nvar location = window.location;\r\n\r\nvar nonce = { guid: Date.now() };\r\n\r\nvar rquery = ( /\\?/ );\r\n\r\n\r\n\r\n// Cross-browser xml parsing\r\njQuery.parseXML = function( data ) {\r\n\tvar xml, parserErrorElem;\r\n\tif ( !data || typeof data !== \"string\" ) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// Support: IE 9 - 11 only\r\n\t// IE throws on parseFromString with invalid input.\r\n\ttry {\r\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\r\n\t} catch ( e ) {}\r\n\r\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\r\n\tif ( !xml || parserErrorElem ) {\r\n\t\tjQuery.error( \"Invalid XML: \" + (\r\n\t\t\tparserErrorElem ?\r\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\r\n\t\t\t\t\treturn el.textContent;\r\n\t\t\t\t} ).join( \"\\n\" ) :\r\n\t\t\t\tdata\r\n\t\t) );\r\n\t}\r\n\treturn xml;\r\n};\r\n\r\n\r\nvar\r\n\trbracket = /\\[\\]$/,\r\n\trCRLF = /\\r?\\n/g,\r\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\r\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\r\n\r\nfunction buildParams( prefix, obj, traditional, add ) {\r\n\tvar name;\r\n\r\n\tif ( Array.isArray( obj ) ) {\r\n\r\n\t\t// Serialize array item.\r\n\t\tjQuery.each( obj, function( i, v ) {\r\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\r\n\r\n\t\t\t\t// Treat each array item as a scalar.\r\n\t\t\t\tadd( prefix, v );\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\r\n\t\t\t\tbuildParams(\r\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\r\n\t\t\t\t\tv,\r\n\t\t\t\t\ttraditional,\r\n\t\t\t\t\tadd\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t} );\r\n\r\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\r\n\r\n\t\t// Serialize object item.\r\n\t\tfor ( name in obj ) {\r\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\r\n\t\t}\r\n\r\n\t} else {\r\n\r\n\t\t// Serialize scalar item.\r\n\t\tadd( prefix, obj );\r\n\t}\r\n}\r\n\r\n// Serialize an array of form elements or a set of\r\n// key/values into a query string\r\njQuery.param = function( a, traditional ) {\r\n\tvar prefix,\r\n\t\ts = [],\r\n\t\tadd = function( key, valueOrFunction ) {\r\n\r\n\t\t\t// If value is a function, invoke it and use its return value\r\n\t\t\tvar value = isFunction( valueOrFunction ) ?\r\n\t\t\t\tvalueOrFunction() :\r\n\t\t\t\tvalueOrFunction;\r\n\r\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\r\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\r\n\t\t};\r\n\r\n\tif ( a == null ) {\r\n\t\treturn \"\";\r\n\t}\r\n\r\n\t// If an array was passed in, assume that it is an array of form elements.\r\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\r\n\r\n\t\t// Serialize the form elements\r\n\t\tjQuery.each( a, function() {\r\n\t\t\tadd( this.name, this.value );\r\n\t\t} );\r\n\r\n\t} else {\r\n\r\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\r\n\t\t// did it), otherwise encode params recursively.\r\n\t\tfor ( prefix in a ) {\r\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\r\n\t\t}\r\n\t}\r\n\r\n\t// Return the resulting serialization\r\n\treturn s.join( \"&\" );\r\n};\r\n\r\njQuery.fn.extend( {\r\n\tserialize: function() {\r\n\t\treturn jQuery.param( this.serializeArray() );\r\n\t},\r\n\tserializeArray: function() {\r\n\t\treturn this.map( function() {\r\n\r\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\r\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\r\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\r\n\t\t} ).filter( function() {\r\n\t\t\tvar type = this.type;\r\n\r\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\r\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\r\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\r\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\r\n\t\t} ).map( function( _i, elem ) {\r\n\t\t\tvar val = jQuery( this ).val();\r\n\r\n\t\t\tif ( val == null ) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tif ( Array.isArray( val ) ) {\r\n\t\t\t\treturn jQuery.map( val, function( val ) {\r\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\r\n\t\t\t\t} );\r\n\t\t\t}\r\n\r\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\r\n\t\t} ).get();\r\n\t}\r\n} );\r\n\r\n\r\nvar\r\n\tr20 = /%20/g,\r\n\trhash = /#.*$/,\r\n\trantiCache = /([?&])_=[^&]*/,\r\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\r\n\r\n\t// #7653, #8125, #8152: local protocol detection\r\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\r\n\trnoContent = /^(?:GET|HEAD)$/,\r\n\trprotocol = /^\\/\\//,\r\n\r\n\t/* Prefilters\r\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\r\n\t * 2) These are called:\r\n\t * - BEFORE asking for a transport\r\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\r\n\t * 3) key is the dataType\r\n\t * 4) the catchall symbol \"*\" can be used\r\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\r\n\t */\r\n\tprefilters = {},\r\n\r\n\t/* Transports bindings\r\n\t * 1) key is the dataType\r\n\t * 2) the catchall symbol \"*\" can be used\r\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\r\n\t */\r\n\ttransports = {},\r\n\r\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\r\n\tallTypes = \"*/\".concat( \"*\" ),\r\n\r\n\t// Anchor tag for parsing the document origin\r\n\toriginAnchor = document.createElement( \"a\" );\r\n\r\noriginAnchor.href = location.href;\r\n\r\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\r\nfunction addToPrefiltersOrTransports( structure ) {\r\n\r\n\t// dataTypeExpression is optional and defaults to \"*\"\r\n\treturn function( dataTypeExpression, func ) {\r\n\r\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\r\n\t\t\tfunc = dataTypeExpression;\r\n\t\t\tdataTypeExpression = \"*\";\r\n\t\t}\r\n\r\n\t\tvar dataType,\r\n\t\t\ti = 0,\r\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\r\n\r\n\t\tif ( isFunction( func ) ) {\r\n\r\n\t\t\t// For each dataType in the dataTypeExpression\r\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\r\n\r\n\t\t\t\t// Prepend if requested\r\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\r\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\r\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\r\n\r\n\t\t\t\t// Otherwise append\r\n\t\t\t\t} else {\r\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\n// Base inspection function for prefilters and transports\r\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\r\n\r\n\tvar inspected = {},\r\n\t\tseekingTransport = ( structure === transports );\r\n\r\n\tfunction inspect( dataType ) {\r\n\t\tvar selected;\r\n\t\tinspected[ dataType ] = true;\r\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\r\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\r\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\r\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\r\n\r\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\r\n\t\t\t\tinspect( dataTypeOrTransport );\r\n\t\t\t\treturn false;\r\n\t\t\t} else if ( seekingTransport ) {\r\n\t\t\t\treturn !( selected = dataTypeOrTransport );\r\n\t\t\t}\r\n\t\t} );\r\n\t\treturn selected;\r\n\t}\r\n\r\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\r\n}\r\n\r\n// A special extend for ajax options\r\n// that takes \"flat\" options (not to be deep extended)\r\n// Fixes #9887\r\nfunction ajaxExtend( target, src ) {\r\n\tvar key, deep,\r\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\r\n\r\n\tfor ( key in src ) {\r\n\t\tif ( src[ key ] !== undefined ) {\r\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\r\n\t\t}\r\n\t}\r\n\tif ( deep ) {\r\n\t\tjQuery.extend( true, target, deep );\r\n\t}\r\n\r\n\treturn target;\r\n}\r\n\r\n/* Handles responses to an ajax request:\r\n * - finds the right dataType (mediates between content-type and expected dataType)\r\n * - returns the corresponding response\r\n */\r\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\r\n\r\n\tvar ct, type, finalDataType, firstDataType,\r\n\t\tcontents = s.contents,\r\n\t\tdataTypes = s.dataTypes;\r\n\r\n\t// Remove auto dataType and get content-type in the process\r\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\r\n\t\tdataTypes.shift();\r\n\t\tif ( ct === undefined ) {\r\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\r\n\t\t}\r\n\t}\r\n\r\n\t// Check if we're dealing with a known content-type\r\n\tif ( ct ) {\r\n\t\tfor ( type in contents ) {\r\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\r\n\t\t\t\tdataTypes.unshift( type );\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Check to see if we have a response for the expected dataType\r\n\tif ( dataTypes[ 0 ] in responses ) {\r\n\t\tfinalDataType = dataTypes[ 0 ];\r\n\t} else {\r\n\r\n\t\t// Try convertible dataTypes\r\n\t\tfor ( type in responses ) {\r\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\r\n\t\t\t\tfinalDataType = type;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\tif ( !firstDataType ) {\r\n\t\t\t\tfirstDataType = type;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Or just use first one\r\n\t\tfinalDataType = finalDataType || firstDataType;\r\n\t}\r\n\r\n\t// If we found a dataType\r\n\t// We add the dataType to the list if needed\r\n\t// and return the corresponding response\r\n\tif ( finalDataType ) {\r\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\r\n\t\t\tdataTypes.unshift( finalDataType );\r\n\t\t}\r\n\t\treturn responses[ finalDataType ];\r\n\t}\r\n}\r\n\r\n/* Chain conversions given the request and the original response\r\n * Also sets the responseXXX fields on the jqXHR instance\r\n */\r\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\r\n\tvar conv2, current, conv, tmp, prev,\r\n\t\tconverters = {},\r\n\r\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\r\n\t\tdataTypes = s.dataTypes.slice();\r\n\r\n\t// Create converters map with lowercased keys\r\n\tif ( dataTypes[ 1 ] ) {\r\n\t\tfor ( conv in s.converters ) {\r\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\r\n\t\t}\r\n\t}\r\n\r\n\tcurrent = dataTypes.shift();\r\n\r\n\t// Convert to each sequential dataType\r\n\twhile ( current ) {\r\n\r\n\t\tif ( s.responseFields[ current ] ) {\r\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\r\n\t\t}\r\n\r\n\t\t// Apply the dataFilter if provided\r\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\r\n\t\t\tresponse = s.dataFilter( response, s.dataType );\r\n\t\t}\r\n\r\n\t\tprev = current;\r\n\t\tcurrent = dataTypes.shift();\r\n\r\n\t\tif ( current ) {\r\n\r\n\t\t\t// There's only work to do if current dataType is non-auto\r\n\t\t\tif ( current === \"*\" ) {\r\n\r\n\t\t\t\tcurrent = prev;\r\n\r\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\r\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\r\n\r\n\t\t\t\t// Seek a direct converter\r\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\r\n\r\n\t\t\t\t// If none found, seek a pair\r\n\t\t\t\tif ( !conv ) {\r\n\t\t\t\t\tfor ( conv2 in converters ) {\r\n\r\n\t\t\t\t\t\t// If conv2 outputs current\r\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\r\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\r\n\r\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\r\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\r\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\r\n\t\t\t\t\t\t\tif ( conv ) {\r\n\r\n\t\t\t\t\t\t\t\t// Condense equivalence converters\r\n\t\t\t\t\t\t\t\tif ( conv === true ) {\r\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\r\n\r\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\r\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\r\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\r\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Apply converter (if not an equivalence)\r\n\t\t\t\tif ( conv !== true ) {\r\n\r\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\r\n\t\t\t\t\tif ( conv && s.throws ) {\r\n\t\t\t\t\t\tresponse = conv( response );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tresponse = conv( response );\r\n\t\t\t\t\t\t} catch ( e ) {\r\n\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\r\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn { state: \"success\", data: response };\r\n}\r\n\r\njQuery.extend( {\r\n\r\n\t// Counter for holding the number of active queries\r\n\tactive: 0,\r\n\r\n\t// Last-Modified header cache for next request\r\n\tlastModified: {},\r\n\tetag: {},\r\n\r\n\tajaxSettings: {\r\n\t\turl: location.href,\r\n\t\ttype: \"GET\",\r\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\r\n\t\tglobal: true,\r\n\t\tprocessData: true,\r\n\t\tasync: true,\r\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\r\n\r\n\t\t/*\r\n\t\ttimeout: 0,\r\n\t\tdata: null,\r\n\t\tdataType: null,\r\n\t\tusername: null,\r\n\t\tpassword: null,\r\n\t\tcache: null,\r\n\t\tthrows: false,\r\n\t\ttraditional: false,\r\n\t\theaders: {},\r\n\t\t*/\r\n\r\n\t\taccepts: {\r\n\t\t\t\"*\": allTypes,\r\n\t\t\ttext: \"text/plain\",\r\n\t\t\thtml: \"text/html\",\r\n\t\t\txml: \"application/xml, text/xml\",\r\n\t\t\tjson: \"application/json, text/javascript\"\r\n\t\t},\r\n\r\n\t\tcontents: {\r\n\t\t\txml: /\\bxml\\b/,\r\n\t\t\thtml: /\\bhtml/,\r\n\t\t\tjson: /\\bjson\\b/\r\n\t\t},\r\n\r\n\t\tresponseFields: {\r\n\t\t\txml: \"responseXML\",\r\n\t\t\ttext: \"responseText\",\r\n\t\t\tjson: \"responseJSON\"\r\n\t\t},\r\n\r\n\t\t// Data converters\r\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\r\n\t\tconverters: {\r\n\r\n\t\t\t// Convert anything to text\r\n\t\t\t\"* text\": String,\r\n\r\n\t\t\t// Text to html (true = no transformation)\r\n\t\t\t\"text html\": true,\r\n\r\n\t\t\t// Evaluate text as a json expression\r\n\t\t\t\"text json\": JSON.parse,\r\n\r\n\t\t\t// Parse text as xml\r\n\t\t\t\"text xml\": jQuery.parseXML\r\n\t\t},\r\n\r\n\t\t// For options that shouldn't be deep extended:\r\n\t\t// you can add your own custom options here if\r\n\t\t// and when you create one that shouldn't be\r\n\t\t// deep extended (see ajaxExtend)\r\n\t\tflatOptions: {\r\n\t\t\turl: true,\r\n\t\t\tcontext: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Creates a full fledged settings object into target\r\n\t// with both ajaxSettings and settings fields.\r\n\t// If target is omitted, writes into ajaxSettings.\r\n\tajaxSetup: function( target, settings ) {\r\n\t\treturn settings ?\r\n\r\n\t\t\t// Building a settings object\r\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\r\n\r\n\t\t\t// Extending ajaxSettings\r\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\r\n\t},\r\n\r\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\r\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\r\n\r\n\t// Main method\r\n\tajax: function( url, options ) {\r\n\r\n\t\t// If url is an object, simulate pre-1.5 signature\r\n\t\tif ( typeof url === \"object\" ) {\r\n\t\t\toptions = url;\r\n\t\t\turl = undefined;\r\n\t\t}\r\n\r\n\t\t// Force options to be an object\r\n\t\toptions = options || {};\r\n\r\n\t\tvar transport,\r\n\r\n\t\t\t// URL without anti-cache param\r\n\t\t\tcacheURL,\r\n\r\n\t\t\t// Response headers\r\n\t\t\tresponseHeadersString,\r\n\t\t\tresponseHeaders,\r\n\r\n\t\t\t// timeout handle\r\n\t\t\ttimeoutTimer,\r\n\r\n\t\t\t// Url cleanup var\r\n\t\t\turlAnchor,\r\n\r\n\t\t\t// Request state (becomes false upon send and true upon completion)\r\n\t\t\tcompleted,\r\n\r\n\t\t\t// To know if global events are to be dispatched\r\n\t\t\tfireGlobals,\r\n\r\n\t\t\t// Loop variable\r\n\t\t\ti,\r\n\r\n\t\t\t// uncached part of the url\r\n\t\t\tuncached,\r\n\r\n\t\t\t// Create the final options object\r\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\r\n\r\n\t\t\t// Callbacks context\r\n\t\t\tcallbackContext = s.context || s,\r\n\r\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\r\n\t\t\tglobalEventContext = s.context &&\r\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\r\n\t\t\t\tjQuery( callbackContext ) :\r\n\t\t\t\tjQuery.event,\r\n\r\n\t\t\t// Deferreds\r\n\t\t\tdeferred = jQuery.Deferred(),\r\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\r\n\r\n\t\t\t// Status-dependent callbacks\r\n\t\t\tstatusCode = s.statusCode || {},\r\n\r\n\t\t\t// Headers (they are sent all at once)\r\n\t\t\trequestHeaders = {},\r\n\t\t\trequestHeadersNames = {},\r\n\r\n\t\t\t// Default abort message\r\n\t\t\tstrAbort = \"canceled\",\r\n\r\n\t\t\t// Fake xhr\r\n\t\t\tjqXHR = {\r\n\t\t\t\treadyState: 0,\r\n\r\n\t\t\t\t// Builds headers hashtable if needed\r\n\t\t\t\tgetResponseHeader: function( key ) {\r\n\t\t\t\t\tvar match;\r\n\t\t\t\t\tif ( completed ) {\r\n\t\t\t\t\t\tif ( !responseHeaders ) {\r\n\t\t\t\t\t\t\tresponseHeaders = {};\r\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\r\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\r\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\r\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Raw string\r\n\t\t\t\tgetAllResponseHeaders: function() {\r\n\t\t\t\t\treturn completed ? responseHeadersString : null;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Caches the header\r\n\t\t\t\tsetRequestHeader: function( name, value ) {\r\n\t\t\t\t\tif ( completed == null ) {\r\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\r\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\r\n\t\t\t\t\t\trequestHeaders[ name ] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Overrides response content-type header\r\n\t\t\t\toverrideMimeType: function( type ) {\r\n\t\t\t\t\tif ( completed == null ) {\r\n\t\t\t\t\t\ts.mimeType = type;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Status-dependent callbacks\r\n\t\t\t\tstatusCode: function( map ) {\r\n\t\t\t\t\tvar code;\r\n\t\t\t\t\tif ( map ) {\r\n\t\t\t\t\t\tif ( completed ) {\r\n\r\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\r\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\r\n\t\t\t\t\t\t\tfor ( code in map ) {\r\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// Cancel the request\r\n\t\t\t\tabort: function( statusText ) {\r\n\t\t\t\t\tvar finalText = statusText || strAbort;\r\n\t\t\t\t\tif ( transport ) {\r\n\t\t\t\t\t\ttransport.abort( finalText );\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdone( 0, finalText );\r\n\t\t\t\t\treturn this;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t// Attach deferreds\r\n\t\tdeferred.promise( jqXHR );\r\n\r\n\t\t// Add protocol if not provided (prefilters might expect it)\r\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\r\n\t\t// We also use the url parameter if available\r\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\r\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\r\n\r\n\t\t// Alias method option to type as per ticket #12004\r\n\t\ts.type = options.method || options.type || s.method || s.type;\r\n\r\n\t\t// Extract dataTypes list\r\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\r\n\r\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\r\n\t\tif ( s.crossDomain == null ) {\r\n\t\t\turlAnchor = document.createElement( \"a\" );\r\n\r\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\r\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\r\n\t\t\t// e.g. http://example.com:80x/\r\n\t\t\ttry {\r\n\t\t\t\turlAnchor.href = s.url;\r\n\r\n\t\t\t\t// Support: IE <=8 - 11 only\r\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\r\n\t\t\t\turlAnchor.href = urlAnchor.href;\r\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\r\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\r\n\t\t\t} catch ( e ) {\r\n\r\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\r\n\t\t\t\t// it can be rejected by the transport if it is invalid\r\n\t\t\t\ts.crossDomain = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Convert data if not already a string\r\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\r\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\r\n\t\t}\r\n\r\n\t\t// Apply prefilters\r\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\r\n\r\n\t\t// If request was aborted inside a prefilter, stop there\r\n\t\tif ( completed ) {\r\n\t\t\treturn jqXHR;\r\n\t\t}\r\n\r\n\t\t// We can fire global events as of now if asked to\r\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\r\n\t\tfireGlobals = jQuery.event && s.global;\r\n\r\n\t\t// Watch for a new set of requests\r\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\r\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\r\n\t\t}\r\n\r\n\t\t// Uppercase the type\r\n\t\ts.type = s.type.toUpperCase();\r\n\r\n\t\t// Determine if request has content\r\n\t\ts.hasContent = !rnoContent.test( s.type );\r\n\r\n\t\t// Save the URL in case we're toying with the If-Modified-Since\r\n\t\t// and/or If-None-Match header later on\r\n\t\t// Remove hash to simplify url manipulation\r\n\t\tcacheURL = s.url.replace( rhash, \"\" );\r\n\r\n\t\t// More options handling for requests with no content\r\n\t\tif ( !s.hasContent ) {\r\n\r\n\t\t\t// Remember the hash so we can put it back\r\n\t\t\tuncached = s.url.slice( cacheURL.length );\r\n\r\n\t\t\t// If data is available and should be processed, append data to url\r\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\r\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\r\n\r\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\r\n\t\t\t\tdelete s.data;\r\n\t\t\t}\r\n\r\n\t\t\t// Add or update anti-cache param if needed\r\n\t\t\tif ( s.cache === false ) {\r\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\r\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\r\n\t\t\t\t\tuncached;\r\n\t\t\t}\r\n\r\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\r\n\t\t\ts.url = cacheURL + uncached;\r\n\r\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\r\n\t\t} else if ( s.data && s.processData &&\r\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\r\n\t\t\ts.data = s.data.replace( r20, \"+\" );\r\n\t\t}\r\n\r\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\r\n\t\tif ( s.ifModified ) {\r\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\r\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\r\n\t\t\t}\r\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\r\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Set the correct header, if data is being sent\r\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\r\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\r\n\t\t}\r\n\r\n\t\t// Set the Accepts header for the server, depending on the dataType\r\n\t\tjqXHR.setRequestHeader(\r\n\t\t\t\"Accept\",\r\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\r\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\r\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\r\n\t\t\t\ts.accepts[ \"*\" ]\r\n\t\t);\r\n\r\n\t\t// Check for headers option\r\n\t\tfor ( i in s.headers ) {\r\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\r\n\t\t}\r\n\r\n\t\t// Allow custom headers/mimetypes and early abort\r\n\t\tif ( s.beforeSend &&\r\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\r\n\r\n\t\t\t// Abort if not done already and return\r\n\t\t\treturn jqXHR.abort();\r\n\t\t}\r\n\r\n\t\t// Aborting is no longer a cancellation\r\n\t\tstrAbort = \"abort\";\r\n\r\n\t\t// Install callbacks on deferreds\r\n\t\tcompleteDeferred.add( s.complete );\r\n\t\tjqXHR.done( s.success );\r\n\t\tjqXHR.fail( s.error );\r\n\r\n\t\t// Get transport\r\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\r\n\r\n\t\t// If no transport, we auto-abort\r\n\t\tif ( !transport ) {\r\n\t\t\tdone( -1, \"No Transport\" );\r\n\t\t} else {\r\n\t\t\tjqXHR.readyState = 1;\r\n\r\n\t\t\t// Send global event\r\n\t\t\tif ( fireGlobals ) {\r\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\r\n\t\t\t}\r\n\r\n\t\t\t// If request was aborted inside ajaxSend, stop there\r\n\t\t\tif ( completed ) {\r\n\t\t\t\treturn jqXHR;\r\n\t\t\t}\r\n\r\n\t\t\t// Timeout\r\n\t\t\tif ( s.async && s.timeout > 0 ) {\r\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\r\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\r\n\t\t\t\t}, s.timeout );\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tcompleted = false;\r\n\t\t\t\ttransport.send( requestHeaders, done );\r\n\t\t\t} catch ( e ) {\r\n\r\n\t\t\t\t// Rethrow post-completion exceptions\r\n\t\t\t\tif ( completed ) {\r\n\t\t\t\t\tthrow e;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Propagate others as results\r\n\t\t\t\tdone( -1, e );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Callback for when everything is done\r\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\r\n\t\t\tvar isSuccess, success, error, response, modified,\r\n\t\t\t\tstatusText = nativeStatusText;\r\n\r\n\t\t\t// Ignore repeat invocations\r\n\t\t\tif ( completed ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tcompleted = true;\r\n\r\n\t\t\t// Clear timeout if it exists\r\n\t\t\tif ( timeoutTimer ) {\r\n\t\t\t\twindow.clearTimeout( timeoutTimer );\r\n\t\t\t}\r\n\r\n\t\t\t// Dereference transport for early garbage collection\r\n\t\t\t// (no matter how long the jqXHR object will be used)\r\n\t\t\ttransport = undefined;\r\n\r\n\t\t\t// Cache response headers\r\n\t\t\tresponseHeadersString = headers || \"\";\r\n\r\n\t\t\t// Set readyState\r\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\r\n\r\n\t\t\t// Determine if successful\r\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\r\n\r\n\t\t\t// Get response data\r\n\t\t\tif ( responses ) {\r\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\r\n\t\t\t}\r\n\r\n\t\t\t// Use a noop converter for missing script but not if jsonp\r\n\t\t\tif ( !isSuccess &&\r\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\r\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\r\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\r\n\t\t\t}\r\n\r\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\r\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\r\n\r\n\t\t\t// If successful, handle type chaining\r\n\t\t\tif ( isSuccess ) {\r\n\r\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\r\n\t\t\t\tif ( s.ifModified ) {\r\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\r\n\t\t\t\t\tif ( modified ) {\r\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\r\n\t\t\t\t\tif ( modified ) {\r\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// if no content\r\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\r\n\t\t\t\t\tstatusText = \"nocontent\";\r\n\r\n\t\t\t\t// if not modified\r\n\t\t\t\t} else if ( status === 304 ) {\r\n\t\t\t\t\tstatusText = \"notmodified\";\r\n\r\n\t\t\t\t// If we have data, let's convert it\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstatusText = response.state;\r\n\t\t\t\t\tsuccess = response.data;\r\n\t\t\t\t\terror = response.error;\r\n\t\t\t\t\tisSuccess = !error;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\r\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\r\n\t\t\t\terror = statusText;\r\n\t\t\t\tif ( status || !statusText ) {\r\n\t\t\t\t\tstatusText = \"error\";\r\n\t\t\t\t\tif ( status < 0 ) {\r\n\t\t\t\t\t\tstatus = 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Set data for the fake xhr object\r\n\t\t\tjqXHR.status = status;\r\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\r\n\r\n\t\t\t// Success/Error\r\n\t\t\tif ( isSuccess ) {\r\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\r\n\t\t\t} else {\r\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\r\n\t\t\t}\r\n\r\n\t\t\t// Status-dependent callbacks\r\n\t\t\tjqXHR.statusCode( statusCode );\r\n\t\t\tstatusCode = undefined;\r\n\r\n\t\t\tif ( fireGlobals ) {\r\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\r\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\r\n\t\t\t}\r\n\r\n\t\t\t// Complete\r\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\r\n\r\n\t\t\tif ( fireGlobals ) {\r\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\r\n\r\n\t\t\t\t// Handle the global AJAX counter\r\n\t\t\t\tif ( !( --jQuery.active ) ) {\r\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn jqXHR;\r\n\t},\r\n\r\n\tgetJSON: function( url, data, callback ) {\r\n\t\treturn jQuery.get( url, data, callback, \"json\" );\r\n\t},\r\n\r\n\tgetScript: function( url, callback ) {\r\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\r\n\t}\r\n} );\r\n\r\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\r\n\tjQuery[ method ] = function( url, data, callback, type ) {\r\n\r\n\t\t// Shift arguments if data argument was omitted\r\n\t\tif ( isFunction( data ) ) {\r\n\t\t\ttype = type || callback;\r\n\t\t\tcallback = data;\r\n\t\t\tdata = undefined;\r\n\t\t}\r\n\r\n\t\t// The url can be an options object (which then must have .url)\r\n\t\treturn jQuery.ajax( jQuery.extend( {\r\n\t\t\turl: url,\r\n\t\t\ttype: method,\r\n\t\t\tdataType: type,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: callback\r\n\t\t}, jQuery.isPlainObject( url ) && url ) );\r\n\t};\r\n} );\r\n\r\njQuery.ajaxPrefilter( function( s ) {\r\n\tvar i;\r\n\tfor ( i in s.headers ) {\r\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\r\n\t\t\ts.contentType = s.headers[ i ] || \"\";\r\n\t\t}\r\n\t}\r\n} );\r\n\r\n\r\njQuery._evalUrl = function( url, options, doc ) {\r\n\treturn jQuery.ajax( {\r\n\t\turl: url,\r\n\r\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\r\n\t\ttype: \"GET\",\r\n\t\tdataType: \"script\",\r\n\t\tcache: true,\r\n\t\tasync: false,\r\n\t\tglobal: false,\r\n\r\n\t\t// Only evaluate the response if it is successful (gh-4126)\r\n\t\t// dataFilter is not invoked for failure responses, so using it instead\r\n\t\t// of the default converter is kludgy but it works.\r\n\t\tconverters: {\r\n\t\t\t\"text script\": function() {}\r\n\t\t},\r\n\t\tdataFilter: function( response ) {\r\n\t\t\tjQuery.globalEval( response, options, doc );\r\n\t\t}\r\n\t} );\r\n};\r\n\r\n\r\njQuery.fn.extend( {\r\n\twrapAll: function( html ) {\r\n\t\tvar wrap;\r\n\r\n\t\tif ( this[ 0 ] ) {\r\n\t\t\tif ( isFunction( html ) ) {\r\n\t\t\t\thtml = html.call( this[ 0 ] );\r\n\t\t\t}\r\n\r\n\t\t\t// The elements to wrap the target around\r\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\r\n\r\n\t\t\tif ( this[ 0 ].parentNode ) {\r\n\t\t\t\twrap.insertBefore( this[ 0 ] );\r\n\t\t\t}\r\n\r\n\t\t\twrap.map( function() {\r\n\t\t\t\tvar elem = this;\r\n\r\n\t\t\t\twhile ( elem.firstElementChild ) {\r\n\t\t\t\t\telem = elem.firstElementChild;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn elem;\r\n\t\t\t} ).append( this );\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t},\r\n\r\n\twrapInner: function( html ) {\r\n\t\tif ( isFunction( html ) ) {\r\n\t\t\treturn this.each( function( i ) {\r\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\r\n\t\t\t} );\r\n\t\t}\r\n\r\n\t\treturn this.each( function() {\r\n\t\t\tvar self = jQuery( this ),\r\n\t\t\t\tcontents = self.contents();\r\n\r\n\t\t\tif ( contents.length ) {\r\n\t\t\t\tcontents.wrapAll( html );\r\n\r\n\t\t\t} else {\r\n\t\t\t\tself.append( html );\r\n\t\t\t}\r\n\t\t} );\r\n\t},\r\n\r\n\twrap: function( html ) {\r\n\t\tvar htmlIsFunction = isFunction( html );\r\n\r\n\t\treturn this.each( function( i ) {\r\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\r\n\t\t} );\r\n\t},\r\n\r\n\tunwrap: function( selector ) {\r\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\r\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\r\n\t\t} );\r\n\t\treturn this;\r\n\t}\r\n} );\r\n\r\n\r\njQuery.expr.pseudos.hidden = function( elem ) {\r\n\treturn !jQuery.expr.pseudos.visible( elem );\r\n};\r\njQuery.expr.pseudos.visible = function( elem ) {\r\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\r\n};\r\n\r\n\r\n\r\n\r\njQuery.ajaxSettings.xhr = function() {\r\n\ttry {\r\n\t\treturn new window.XMLHttpRequest();\r\n\t} catch ( e ) {}\r\n};\r\n\r\nvar xhrSuccessStatus = {\r\n\r\n\t\t// File protocol always yields status code 0, assume 200\r\n\t\t0: 200,\r\n\r\n\t\t// Support: IE <=9 only\r\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\r\n\t\t1223: 204\r\n\t},\r\n\txhrSupported = jQuery.ajaxSettings.xhr();\r\n\r\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\r\nsupport.ajax = xhrSupported = !!xhrSupported;\r\n\r\njQuery.ajaxTransport( function( options ) {\r\n\tvar callback, errorCallback;\r\n\r\n\t// Cross domain only allowed if supported through XMLHttpRequest\r\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\r\n\t\treturn {\r\n\t\t\tsend: function( headers, complete ) {\r\n\t\t\t\tvar i,\r\n\t\t\t\t\txhr = options.xhr();\r\n\r\n\t\t\t\txhr.open(\r\n\t\t\t\t\toptions.type,\r\n\t\t\t\t\toptions.url,\r\n\t\t\t\t\toptions.async,\r\n\t\t\t\t\toptions.username,\r\n\t\t\t\t\toptions.password\r\n\t\t\t\t);\r\n\r\n\t\t\t\t// Apply custom fields if provided\r\n\t\t\t\tif ( options.xhrFields ) {\r\n\t\t\t\t\tfor ( i in options.xhrFields ) {\r\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Override mime type if needed\r\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\r\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// X-Requested-With header\r\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\r\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\r\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\r\n\t\t\t\t// For same-domain requests, won't change header if already provided.\r\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\r\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set headers\r\n\t\t\t\tfor ( i in headers ) {\r\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Callback\r\n\t\t\t\tcallback = function( type ) {\r\n\t\t\t\t\treturn function() {\r\n\t\t\t\t\t\tif ( callback ) {\r\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\r\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\r\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\r\n\r\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\r\n\t\t\t\t\t\t\t\txhr.abort();\r\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\r\n\r\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\r\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\r\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\r\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tcomplete(\r\n\r\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\r\n\t\t\t\t\t\t\t\t\t\txhr.status,\r\n\t\t\t\t\t\t\t\t\t\txhr.statusText\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcomplete(\r\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\r\n\t\t\t\t\t\t\t\t\txhr.statusText,\r\n\r\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\r\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\r\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\r\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\r\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\r\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\r\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\r\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t};\r\n\r\n\t\t\t\t// Listen to events\r\n\t\t\t\txhr.onload = callback();\r\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\r\n\r\n\t\t\t\t// Support: IE 9 only\r\n\t\t\t\t// Use onreadystatechange to replace onabort\r\n\t\t\t\t// to handle uncaught aborts\r\n\t\t\t\tif ( xhr.onabort !== undefined ) {\r\n\t\t\t\t\txhr.onabort = errorCallback;\r\n\t\t\t\t} else {\r\n\t\t\t\t\txhr.onreadystatechange = function() {\r\n\r\n\t\t\t\t\t\t// Check readyState before timeout as it changes\r\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\r\n\r\n\t\t\t\t\t\t\t// Allow onerror to be called first,\r\n\t\t\t\t\t\t\t// but that will not handle a native abort\r\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\r\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\r\n\t\t\t\t\t\t\twindow.setTimeout( function() {\r\n\t\t\t\t\t\t\t\tif ( callback ) {\r\n\t\t\t\t\t\t\t\t\terrorCallback();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Create the abort callback\r\n\t\t\t\tcallback = callback( \"abort\" );\r\n\r\n\t\t\t\ttry {\r\n\r\n\t\t\t\t\t// Do send the request (this may raise an exception)\r\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\r\n\t\t\t\t} catch ( e ) {\r\n\r\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\r\n\t\t\t\t\tif ( callback ) {\r\n\t\t\t\t\t\tthrow e;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\tabort: function() {\r\n\t\t\t\tif ( callback ) {\r\n\t\t\t\t\tcallback();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n} );\r\n\r\n\r\n\r\n\r\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\r\njQuery.ajaxPrefilter( function( s ) {\r\n\tif ( s.crossDomain ) {\r\n\t\ts.contents.script = false;\r\n\t}\r\n} );\r\n\r\n// Install script dataType\r\njQuery.ajaxSetup( {\r\n\taccepts: {\r\n\t\tscript: \"text/javascript, application/javascript, \" +\r\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\r\n\t},\r\n\tcontents: {\r\n\t\tscript: /\\b(?:java|ecma)script\\b/\r\n\t},\r\n\tconverters: {\r\n\t\t\"text script\": function( text ) {\r\n\t\t\tjQuery.globalEval( text );\r\n\t\t\treturn text;\r\n\t\t}\r\n\t}\r\n} );\r\n\r\n// Handle cache's special case and crossDomain\r\njQuery.ajaxPrefilter( \"script\", function( s ) {\r\n\tif ( s.cache === undefined ) {\r\n\t\ts.cache = false;\r\n\t}\r\n\tif ( s.crossDomain ) {\r\n\t\ts.type = \"GET\";\r\n\t}\r\n} );\r\n\r\n// Bind script tag hack transport\r\njQuery.ajaxTransport( \"script\", function( s ) {\r\n\r\n\t// This transport only deals with cross domain or forced-by-attrs requests\r\n\tif ( s.crossDomain || s.scriptAttrs ) {\r\n\t\tvar script, callback;\r\n\t\treturn {\r\n\t\t\tsend: function( _, complete ) {\r\n\t\t\t\tscript = jQuery( \"