{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/react/index.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/soundmanager2/script/soundmanager2.js","webpack:///./node_modules/jquery/dist/jquery.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./app/javascript/components/MusicPlayer.jsx","webpack:///./app/javascript/components/MusicPlayer2.jsx","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromGlobal.js","webpack:///./app/javascript/packs/application.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/parallax-js/dist/parallax.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/components sync ^\\.\\/.*$","webpack:///./node_modules/react_ujs/react_ujs/index.js","webpack:///./node_modules/react-dom/server.browser.js","webpack:///./node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/detect.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/native.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/pjax.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinks.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinksClassicDeprecated.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinksClassic.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextWithGlobalFallback.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContext.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","val","undefined","TypeError","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","arguments","length","_typeof","iterator","obj","constructor","window","_undefined","document","Error","soundManager","SoundManager","smURL","smID","this","setupOptions","url","flashVersion","debugMode","debugFlash","useConsole","consoleOnly","waitForWindowLoad","bgColor","useHighPerformance","flashPollingInterval","html5PollingInterval","flashLoadTimeout","wmode","allowScriptAccess","useFlashBlock","useHTML5Audio","forceUseGlobalHTML5Audio","ignoreMobileRestrictions","html5Test","preferFlash","noSWFCache","idPrefix","defaultOptions","autoLoad","autoPlay","loops","onid3","onerror","onload","whileloading","onplay","onpause","onresume","whileplaying","onposition","onstop","onfinish","multiShot","multiShotEvents","position","pan","playbackRate","stream","type","usePolicyFile","volume","flash9Options","onfailure","isMovieStar","usePeakData","useWaveformData","useEQData","onbufferchange","ondataerror","movieStarOptions","bufferTime","serverURL","onconnect","duration","audioFormats","mp3","required","mp4","related","ogg","opus","wav","flac","movieID","id","debugID","debugURLParam","versionNumber","version","movieURL","altURL","swfLoaded","enabled","oMC","sounds","soundIDs","muted","didFlashBlock","filePattern","filePatterns","flash8","flash9","features","buffering","peakData","waveformData","eqData","movieStar","sandbox","types","remote","localWithFile","localWithNetwork","localTrusted","description","noRemote","noLocal","html5","usingFlash","flash","html5Only","ignoreFlash","SMSound","doNothing","setProperties","init","fV","debugTS","_wDS","initComplete","_mixin","_assign","extraOptions","addOnEvent","processOnEvents","_initUserOnload","delayWaitForEI","waitForEI","rebootIntoHTML5","setVersionInfo","_handleFocus","strings","initMovie","_domContentLoaded","_winOnLoad","didDCLoaded","getDocument","createMovie","catchError","setPolling","initDebug","disableObject","failSafely","normalizeMovieURL","str","flashBlockHandler","getSWFCSS","swfCSS","toggleDebug","loopFix","policyFix","complain","idCheck","startTimer","stopTimer","timerExecute","parseURL","canIgnoreFlash","featureCheck","html5OK","html5CanPlay","html5ErrorCodes","html5Ext","html5Unload","_domContentLoadedIE","testHTML5","event","lastGlobalHTML5URL","hasFlash","detectFlash","badSafariFix","html5_events","showSupport","flushMessages","wrapCallback","didSetup","sm2","globalHTML5Audio","sm","smc","ua","navigator","userAgent","wl","location","href","toString","doc","on_queue","debugOpen","didAppend","appendSuccess","didInit","disabled","windowLoaded","wdCount","debugLevels","oRemoved","oRemovedHTML","waitingForEI","initPending","h5TimerCount","h5IntervalTimer","messages","needsFlash","slice","Array","useGlobalHTML5Audio","idCounter","is_iDevice","match","isAndroid","isIE","isWebkit","isSafari","isOpera","mobileHTML5","isBadSafari","hasConsole","console","log","isFocused","hasFocus","tryInitOnFocus","okToDisable","flashMIME","overHTTP","protocol","http","netStreamMimeTypes","netStreamTypes","netStreamPattern","RegExp","preferFlashCheck","kind","html5_event","oFn","e","result","_s","_a","_wD","h5","mimePattern","useAltURL","swfBox","swfDefault","swfError","swfTimedout","swfUnblocked","sm2Debug","highPerf","flashDebug","hasHTML5","Audio","opera","canPlayType","setup","options","noURL","ok","push","globalHTML5","ignoreMobile","mobileUA","beginDelayedInit","readyState","setTimeout","supported","getMovie","movie_id","createSound","oOptions","_url","cs","cs_string","oSound","charAt","make","_setup_html5","_createSound","connected","apply","load","play","destroySound","sID","_bFromSound","oS","stop","_iO","unload","splice","destruct","onPosition","nPosition","oMethod","oScope","clearOnPosition","overloaded","start","setPlaybackRate","rate","allowOverride","setPosition","nMsecOffset","stopAll","pause","pauseAll","resume","resumeAll","togglePause","setPan","nPan","setVolume","nVol","j","isNaN","mute","muteAll","unmute","unmuteAll","toggleMute","getMemoryUse","ram","parseInt","_getMemoryUse","disable","bNoDisable","remove","canPlayMIME","sMIME","canPlayURL","sURL","canPlayLink","oLink","getSoundById","_suppressDebug","onready","ontimeout","sType","_writeDebug","sText","sTypeOrObject","oItem","createElement","className","appendChild","createTextNode","style","fontWeight","color","insertBefore","firstChild","indexOf","alert","_debug","reboot","resetEvents","excludeInit","k","innerHTML","parentNode","removeChild","fired","reset","getMoviePercent","PercentLoaded","resetProperties","add_html5_events","remove_html5_events","stop_html5_timer","start_html5_timer","attachOnPosition","detachOnPosition","applyFromTo","lastHTML5State","urlOmitted","onplay_called","onPositionItems","onPositionFired","lastURL","time","instanceOptions","isHTML5","id3","loaded","playState","_called_load","_html5_canplay","src","autobuffer","preload","_load","fatal","_unload","_bFromSM","_destroySound","_updatePlayState","fN","a","audioClone","_onended","_oncanplay","startOK","getAutoPlay","setAutoPlay","paused","substr","lastIndexOf","instanceCount","_onfinish","currentTime","add","Math","max","min","_start","onplayerror","bAll","originalPosition","_onbufferchange","_resetOnPosition","_onTimer","_stop","_setAutoPlay","normalizedRate","message","position1K","offset","toFixed","_setPosition","_bCallFlash","_pause","bInstanceOnly","_setPan","_bInstanceOnly","_setVolume","hasIO","method","scope","_processOnPosition","item","_end","f","op","retainPosition","_hasTimer","bytesLoaded","bytesTotal","durationEstimate","buffered","left","right","failures","isBuffering","metadata","bForce","isNew","x","_get_html5_duration","_whileplaying","Infinity","_apply_loop","nLoops","loop","sameURL","dURL","decodeURI","_added_events","oEvt","bCapture","addEventListener","removeEventListener","_onload","nSuccess","loadOK","_onerror","errorCode","nIsBuffering","_onsuspend","onsuspend","_onfailure","msg","level","code","_onwarning","onwarning","io_onfinish","_whileloading","nBytesLoaded","nBytesTotal","nDuration","nBufferLength","floor","bufferLength","end","oPeakData","oWaveformDataLeft","oWaveformDataRight","oEQData","eqLeft","leftPeak","rightPeak","leftEQ","rightEQ","_oncaptiondata","oData","captiondata","oncaptiondata","_onmetadata","oMDProps","oMDData","onmetadata","_onid3","oID3Props","oID3Data","_onconnect","bSuccess","_ondataerror","sError","body","getElementsByTagName","getElementById","oMain","oAdd","o2","o1","callback","oParent","hasParent","bonusOptions","Function","old","attachEvent","evt","getArgs","oArgs","args","len","pop","element","shift","abort","canplay","ee","canplaythrough","durationchange","ended","error","loadeddata","_loaded","loadedmetadata","loadstart","playing","progress","progStr","isProgress","ranges","total","ratechange","suspend","stalled","timeupdate","waiting","iO","oAudio","_called_unload","fileExt","mime","aF","concat","toLowerCase","lookup","support","cp","canPlay","isOK","notReady","notOK","domError","spcWmode","swf404","tryDebug","checkSWF","localFail","waitFocus","waitForever","waitSWF","needFunction","badID","currentObj","waitOnload","docLoaded","onloadOK","secNote","badRemove","shutdown","queue","smError","fbTimeout","fbLoaded","fbHandler","manURL","onURL","badFV","as2loop","noNSLoop","needfl9","mfTimeout","needFlash","gotFocus","policy","setupError","setupUndef","setupLate","sm2Loaded","sstr","replace","sOpt","sPre","sMsg","warn","oProp","Date","getTime","isDebug","bPolling","bHighPerformance","_setPolling","test","oD","oDebug","oTarget","oToggle","tmp","bottom","width","height","lineHeight","margin","textAlign","border","cursor","background","zIndex","onclick","title","display","e2","errorLevel","oT","sEventType","sMessage","sm2Debugger","handleEvent","css","ignoreInit","status","success","srcQueue","canRetry","nP","hasPlugin","AX","ActiveXObject","plugins","mimeTypes","enabledPlugin","flashNeeded","formats","urlResult","setInterval","clearInterval","_setSandboxType","sandboxType","sb","_externalInterfaceOK","swfVersion","initMsg","isRTL","oEmbed","oMovie","movieHTML","oEl","sClass","remoteURL","localURL","extraClass","html","param","dir","platform","quality","bgcolor","pluginspage","hasPriority","FlashVars","setAttribute","overflow","top","abs","oninitmovie","loadIncomplete","cleanup","tests","_externalInterfaceTest","_disableDebug","detachEvent","SM2_DEFER","getInstance","smBuilder","instance","global","factory","w","noGlobal","arr","getProto","getPrototypeOf","_slice","flat","array","class2type","hasOwn","fnToString","ObjectFunctionString","isFunction","nodeType","isWindow","preservedScriptAttributes","nonce","noModule","DOMEval","node","script","text","getAttribute","head","toType","jQuery","selector","context","fn","isArrayLike","jquery","toArray","num","pushStack","elems","ret","merge","prevObject","each","elem","first","eq","last","even","grep","_elem","odd","sort","extend","copy","copyIsArray","clone","deep","isPlainObject","isArray","expando","random","isReady","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","guid","_i","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","b","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","inDisabledFieldset","addCombinator","nodeName","next","childNodes","els","seed","nid","groups","newSelector","newContext","ownerDocument","exec","getElementsByClassName","qsa","testContext","toSelector","querySelectorAll","qsaError","removeAttribute","cache","cacheLength","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","hasCompare","subWindow","defaultView","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","parent","useCache","lastChild","uniqueID","pseudo","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","activeElement","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","submit","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","_dir","until","truncate","is","_siblings","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","rootjQuery","root","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","closest","index","prevAll","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","promise","fail","then","Callbacks","_","flag","createOptions","firing","memory","_fired","_locked","firingIndex","fire","once","stopOnFalse","empty","lock","locked","fireWith","Deferred","func","tuples","_state","_promise","state","always","deferred","pipe","fns","newDefer","tuple","returned","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","readyException","readyList","completed","readyWait","wait","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","toUpperCase","camelCase","string","acceptData","owner","Data","uid","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","getData","_data","removeData","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","count","defer","pnum","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","show","values","hide","toggle","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","option","wrapMap","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","buildFragment","scripts","selection","ignored","wrap","attached","fragment","nodes","htmlPrefilter","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","expectSync","safeActiveElement","_on","one","origFn","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","bindType","delegateCount","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","_handlers","matchedHandlers","matchedSelectors","button","addProp","hook","originalEvent","writable","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","on","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","collection","hasScripts","iNoClone","valueIsFunction","_evalUrl","_remove","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","swap","rboxStyle","curCSS","computed","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trChild","trStyle","cssPrefixes","emptyStyle","vendorProps","finalPropName","_final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","setPositiveNumber","subtract","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","padding","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","pos","step","fx","scrollTop","scrollLeft","linear","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","curValue","clazz","finalValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","isLocal","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","_statusCode","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","ajaxConvert","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","_callback","errorCallback","open","username","xhrFields","onabort","onreadystatechange","responseType","responseText","binary","_callback2","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","trim","_jQuery","_$","$","noConflict","webpackPolyfill","deprecate","paths","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","q","u","y","z","A","B","C","D","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","E","F","refs","updater","G","H","isReactComponent","setState","forceUpdate","I","isPureReactComponent","J","K","L","ref","__self","__source","M","g","h","defaultProps","$$typeof","_owner","O","P","Q","R","keyPrefix","S","V","T","U","W","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","only","Component","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","createFactory","createRef","forwardRef","render","isValidElement","lazy","_ctor","_status","_result","memo","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","onError","da","ea","fa","ha","ia","ja","la","ma","na","oa","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ta","acceptsBooleans","Sa","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Ra","setAttributeNS","Ya","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","displayName","qb","_debugOwner","_debugSource","fileName","lineNumber","rb","xb","_valueTracker","getOwnPropertyDescriptor","getValue","setValue","stopTracking","tb","yb","zb","defaultChecked","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","valueOf","Rb","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","transition","Xb","Yb","Zb","$b","ac","bc","WeakMap","Map","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","child","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","md","substring","nd","menuitem","area","br","embed","hr","img","keygen","link","meta","track","wbr","od","pd","qd","rd","sd","ud","vd","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","eventPool","fe","destructor","de","getPooled","cancelBubble","persist","isTrusted","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","re","se","ve","locale","te","ue","we","date","datetime","email","month","number","range","search","tel","week","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","fromElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","$e","af","bf","cf","df","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","repeat","sf","dataTransfer","tf","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","shared","pending","effects","vg","wg","suspenseConfig","payload","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","contextType","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","tagName","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","uh","vh","wh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","destroy","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","getDerivedStateFromError","hi","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onClick","size","createElementNS","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","_reactRootContainer","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","createRange","setStart","removeAllRanges","addRange","setEnd","vb","Uj","Vj","Wj","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","stringify","form","Lj","lk","Events","findFiberByHostInstance","bundleType","rendererPackageName","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","_f","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","MusicPlayer","song","percentage","rawPosition","sound","musicContext","musicNames","musicUrls","fastForward","rewind","setDuration","durationToTime","scrub","songTitle","album_name","player","musicPlayer","plays_url","post","seconds","minutes","pauseButton","playButton","songContext","songDuration","scrubbingArea","onChange","React","MusicPlayer2","art_url","topLevel","eval","gtag","require","componentRequireContext","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","loadCSPNonce","querySelector","cspNonce","Element","setData","csrfParam","csrfToken","CSRFProtection","refreshCSRFTokens","CustomEvent","createEvent","initCustomEvent","dispatchEvent","stopEverything","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","OPENED","accept","withCredentials","DONE","parser","isCrossDomain","serializeElement","additionalParam","inputs","formElements","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","originalText","handleMethod","formContent","isRemote","handleRemote","enctype","FormData","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","rails","_rails_loaded","Turbolinks","history","pushState","visit","controller","clearCache","setProgressBarDelay","copyObject","Node","ELEMENT_NODE","throttle","initEvent","uuid","Location","absoluteURL","requestURL","anchor","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isHTML","isPrefixedBy","isEqualTo","toCacheKey","toJSON","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","cancel","lengthComputable","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","refresh","trickleInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","started","update","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","_e","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","_t5","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollIntoView","scrollToPosition","updatePosition","scrollPositionChanged","SnapshotCache","snapshots","read","touch","put","write","Visit","performScroll","_t8","adapter","timingMetrics","recordTimingMetric","request","cancelRender","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrolled","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","getTimingMetrics","snapshotCached","frame","_t9","Controller","clickBubbled","clickCaptured","scrollManager","startHistory","stopHistory","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","nodeIsVisitable","currentScript","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","md5blk_array","md51","lo","rhex","hex","toUtf8","unescape","hexToBinaryString","bytes","SparkMD5","ArrayBuffer","clamp","targetArray","sourceArray","byteLength","begin","Uint8Array","appendBinary","_buff","_length","_hash","buff","_finish","getState","hashBinary","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","Constructor","createClass","defineProperties","descriptor","protoProps","staticProps","fileSlice","File","mozSlice","webkitSlice","FileChecksum","chunkSize","chunkCount","chunkIndex","_this","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","DirectUpload","upload","methodName","_len","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","_this2","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","enable","submitForm","ActiveStorage","channels","webpackEmptyContext","req","1","2","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","uptime","3","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","4","vendors","raf","caf","_now","cancelled","polyfill","5","_createClass","rqAnFr","objectAssign","helpers","propertyCache","deserialize","character","accelerate","transformSupport","propertySupport","propertyValue","featureSupport","cssProperty","jsProperty","documentOverflow","isCreatedBody","DEFAULTS","relativeInput","clipRelativeInput","inputElement","hoverOnly","calibrationThreshold","calibrationDelay","supportDelay","calibrateX","calibrateY","invertX","invertY","limitX","limitY","scalarX","scalarY","frictionX","frictionY","originX","originY","pointerEvents","precision","onReady","Parallax","_classCallCheck","calibrationTimer","calibrationFlag","depthsX","depthsY","bounds","elementPositionX","elementPositionY","elementWidth","elementHeight","elementCenterX","elementCenterY","elementRangeX","elementRangeY","calibrationX","calibrationY","inputX","inputY","motionX","motionY","velocityX","velocityY","onMouseMove","onDeviceOrientation","onDeviceMotion","onOrientationTimer","onMotionTimer","onCalibrationTimer","onAnimationFrame","onWindowResize","windowWidth","windowHeight","windowCenterX","windowCenterY","windowRadiusX","windowRadiusY","portrait","desktop","motionSupport","DeviceMotionEvent","orientationSupport","DeviceOrientationEvent","orientationStatus","motionStatus","initialise","transform2DSupport","transform3DSupport","updateLayers","updateDimensions","queueCalibration","layers","layer","innerWidth","innerHeight","detectionTimer","doReadyCallback","updateBounds","calibratedInputX","calibratedInputY","depthX","depthY","xOffset","yOffset","beta","gamma","rotate","rotationRate","webpackContext","webpackContextResolve","ReactDOM","ReactDOMServer","_detectEvents","constructorFromGlobal","constructorFromRequireContextWithGlobalFallback","ReactRailsUJS","CLASS_NAME_ATTR","PROPS_ATTR","RENDER_ATTR","CACHE_ID_ATTR","TURBOLINKS_PERMANENT_ATTR","components","findDOMNodes","searchSelector","classNameAttr","getConstructor","requireContext","serverRender","renderFunction","componentName","componentClass","mountComponents","ujs","propsJson","cacheId","turbolinksPermanent","component","unmountComponents","detectEvents","Uint16Array","listing","pre","textarea","suppressContentEditableWarning","suppressHydrationWarning","domNamespace","childIndex","footer","threadID","exhausted","currentSelectValue","previousWasTextNode","makeStaticMarkup","suspenseDepth","contextIndex","contextStack","contextValueStack","clearProviders","pushProvider","popProvider","fallbackFrame","renderDOM","renderToString","renderToStaticMarkup","renderToNodeStream","renderToStaticNodeStream","pjaxEvents","turbolinksEvents","turbolinksClassicDeprecatedEvents","turbolinksClassicEvents","EVENTS","nativeEvents","eventName","pjax","handleMount","handleUnmount","pagesCached","CHANGE","BEFORE_UNLOAD","fromGlobal","fromRequireContext","reqctx","fromCtx","firstErr","secondErr"],"mappings":"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","file":"js/application-64a50b0c35587991bfb0.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 13);\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/** @license\r\n *\r\n * SoundManager 2: JavaScript Sound for the Web\r\n * ----------------------------------------------\r\n * http://schillmania.com/projects/soundmanager2/\r\n *\r\n * Copyright (c) 2007, Scott Schiller. All rights reserved.\r\n * Code provided under the BSD License:\r\n * http://schillmania.com/projects/soundmanager2/license.txt\r\n *\r\n * V2.97a.20170601\r\n */\n\n/**\r\n * About this file\r\n * -------------------------------------------------------------------------------------\r\n * This is the fully-commented source version of the SoundManager 2 API,\r\n * recommended for use during development and testing.\r\n *\r\n * See soundmanager2-nodebug-jsmin.js for an optimized build (~11KB with gzip.)\r\n * http://schillmania.com/projects/soundmanager2/doc/getstarted/#basic-inclusion\r\n * Alternately, serve this file with gzip for 75% compression savings (~30KB over HTTP.)\r\n *\r\n * You may notice and comments in this source; these are delimiters for\r\n * debug blocks which are removed in the -nodebug builds, further optimizing code size.\r\n *\r\n * Also, as you may note: Whoa, reliable cross-platform/device audio support is hard! ;)\r\n */\n(function SM2(window, _undefined) {\n /* global Audio, document, window, navigator, define, module, SM2_DEFER, opera, setTimeout, setInterval, clearTimeout, sm2Debugger */\n 'use strict';\n\n if (!window || !window.document) {\n // Don't cross the [environment] streams. SM2 expects to be running in a browser, not under node.js etc.\n // Additionally, if a browser somehow manages to fail this test, as Egon said: \"It would be bad.\"\n throw new Error('SoundManager requires a browser with window and document objects.');\n }\n\n var soundManager = null;\n /**\r\n * The SoundManager constructor.\r\n *\r\n * @constructor\r\n * @param {string} smURL Optional: Path to SWF files\r\n * @param {string} smID Optional: The ID to use for the SWF container element\r\n * @this {SoundManager}\r\n * @return {SoundManager} The new SoundManager instance\r\n */\n\n function SoundManager(smURL, smID) {\n /**\r\n * soundManager configuration options list\r\n * defines top-level configuration properties to be applied to the soundManager instance (eg. soundManager.flashVersion)\r\n * to set these properties, use the setup() method - eg., soundManager.setup({url: '/swf/', flashVersion: 9})\r\n */\n this.setupOptions = {\n url: smURL || null,\n // path (directory) where SoundManager 2 SWFs exist, eg., /path/to/swfs/\n flashVersion: 8,\n // flash build to use (8 or 9.) Some API features require 9.\n debugMode: true,\n // enable debugging output (console.log() with HTML fallback)\n debugFlash: false,\n // enable debugging output inside SWF, troubleshoot Flash/browser issues\n useConsole: true,\n // use console.log() if available (otherwise, writes to #soundmanager-debug element)\n consoleOnly: true,\n // if console is being used, do not create/write to #soundmanager-debug\n waitForWindowLoad: false,\n // force SM2 to wait for window.onload() before trying to call soundManager.onload()\n bgColor: '#ffffff',\n // SWF background color. N/A when wmode = 'transparent'\n useHighPerformance: false,\n // position:fixed flash movie can help increase js/flash speed, minimize lag\n flashPollingInterval: null,\n // msec affecting whileplaying/loading callback frequency. If null, default of 50 msec is used.\n html5PollingInterval: null,\n // msec affecting whileplaying() for HTML5 audio, excluding mobile devices. If null, native HTML5 update events are used.\n flashLoadTimeout: 1000,\n // msec to wait for flash movie to load before failing (0 = infinity)\n wmode: null,\n // flash rendering mode - null, 'transparent', or 'opaque' (last two allow z-index to work)\n allowScriptAccess: 'always',\n // for scripting the SWF (object/embed property), 'always' or 'sameDomain'\n useFlashBlock: false,\n // *requires flashblock.css, see demos* - allow recovery from flash blockers. Wait indefinitely and apply timeout CSS to SWF, if applicable.\n useHTML5Audio: true,\n // use HTML5 Audio() where API is supported (most Safari, Chrome versions), Firefox (MP3/MP4 support varies.) Ideally, transparent vs. Flash API where possible.\n forceUseGlobalHTML5Audio: false,\n // if true, a single Audio() object is used for all sounds - and only one can play at a time.\n ignoreMobileRestrictions: false,\n // if true, SM2 will not apply global HTML5 audio rules to mobile UAs. iOS > 7 and WebViews may allow multiple Audio() instances.\n html5Test: /^(probably|maybe)$/i,\n // HTML5 Audio() format support test. Use /^probably$/i; if you want to be more conservative.\n preferFlash: false,\n // overrides useHTML5audio, will use Flash for MP3/MP4/AAC if present. Potential option if HTML5 playback with these formats is quirky.\n noSWFCache: false,\n // if true, appends ?ts={date} to break aggressive SWF caching.\n idPrefix: 'sound' // if an id is not provided to createSound(), this prefix is used for generated IDs - 'sound0', 'sound1' etc.\n\n };\n this.defaultOptions = {\n /**\r\n * the default configuration for sound objects made with createSound() and related methods\r\n * eg., volume, auto-load behaviour and so forth\r\n */\n autoLoad: false,\n // enable automatic loading (otherwise .load() will be called on demand with .play(), the latter being nicer on bandwidth - if you want to .load yourself, you also can)\n autoPlay: false,\n // enable playing of file as soon as possible (much faster if \"stream\" is true)\n from: null,\n // position to start playback within a sound (msec), default = beginning\n loops: 1,\n // how many times to repeat the sound (position will wrap around to 0, setPosition() will break out of loop when >0)\n onid3: null,\n // callback function for \"ID3 data is added/available\"\n onerror: null,\n // callback function for \"load failed\" (or, playback/network/decode error under HTML5.)\n onload: null,\n // callback function for \"load finished\"\n whileloading: null,\n // callback function for \"download progress update\" (X of Y bytes received)\n onplay: null,\n // callback for \"play\" start\n onpause: null,\n // callback for \"pause\"\n onresume: null,\n // callback for \"resume\" (pause toggle)\n whileplaying: null,\n // callback during play (position update)\n onposition: null,\n // object containing times and function callbacks for positions of interest\n onstop: null,\n // callback for \"user stop\"\n onfinish: null,\n // callback function for \"sound finished playing\"\n multiShot: true,\n // let sounds \"restart\" or layer on top of each other when played multiple times, rather than one-shot/one at a time\n multiShotEvents: false,\n // fire multiple sound events (currently onfinish() only) when multiShot is enabled\n position: null,\n // offset (milliseconds) to seek to within loaded sound data.\n pan: 0,\n // \"pan\" settings, left-to-right, -100 to 100\n playbackRate: 1,\n // rate at which to play the sound (HTML5-only)\n stream: true,\n // allows playing before entire file has loaded (recommended)\n to: null,\n // position to end playback within a sound (msec), default = end\n type: null,\n // MIME-like hint for file pattern / canPlay() tests, eg. audio/mp3\n usePolicyFile: false,\n // enable crossdomain.xml request for audio on remote domains (for ID3/waveform access)\n volume: 100 // self-explanatory. 0-100, the latter being the max.\n\n };\n this.flash9Options = {\n /**\r\n * flash 9-only options,\r\n * merged into defaultOptions if flash 9 is being used\r\n */\n onfailure: null,\n // callback function for when playing fails (Flash 9, MovieStar + RTMP-only)\n isMovieStar: null,\n // \"MovieStar\" MPEG4 audio mode. Null (default) = auto detect MP4, AAC etc. based on URL. true = force on, ignore URL\n usePeakData: false,\n // enable left/right channel peak (level) data\n useWaveformData: false,\n // enable sound spectrum (raw waveform data) - NOTE: May increase CPU load.\n useEQData: false,\n // enable sound EQ (frequency spectrum data) - NOTE: May increase CPU load.\n onbufferchange: null,\n // callback for \"isBuffering\" property change\n ondataerror: null // callback for waveform/eq data access error (flash playing audio in other tabs/domains)\n\n };\n this.movieStarOptions = {\n /**\r\n * flash 9.0r115+ MPEG4 audio options,\r\n * merged into defaultOptions if flash 9+movieStar mode is enabled\r\n */\n bufferTime: 3,\n // seconds of data to buffer before playback begins (null = flash default of 0.1 seconds - if AAC playback is gappy, try increasing.)\n serverURL: null,\n // rtmp: FMS or FMIS server to connect to, required when requesting media via RTMP or one of its variants\n onconnect: null,\n // rtmp: callback for connection to flash media server\n duration: null // rtmp: song duration (msec)\n\n };\n this.audioFormats = {\n /**\r\n * determines HTML5 support + flash requirements.\r\n * if no support (via flash and/or HTML5) for a \"required\" format, SM2 will fail to start.\r\n * flash fallback is used for MP3 or MP4 if HTML5 can't play it (or if preferFlash = true)\r\n */\n mp3: {\n type: ['audio/mpeg; codecs=\"mp3\"', 'audio/mpeg', 'audio/mp3', 'audio/MPA', 'audio/mpa-robust'],\n required: true\n },\n mp4: {\n related: ['aac', 'm4a', 'm4b'],\n // additional formats under the MP4 container\n type: ['audio/mp4; codecs=\"mp4a.40.2\"', 'audio/aac', 'audio/x-m4a', 'audio/MP4A-LATM', 'audio/mpeg4-generic'],\n required: false\n },\n ogg: {\n type: ['audio/ogg; codecs=vorbis'],\n required: false\n },\n opus: {\n type: ['audio/ogg; codecs=opus', 'audio/opus'],\n required: false\n },\n wav: {\n type: ['audio/wav; codecs=\"1\"', 'audio/wav', 'audio/wave', 'audio/x-wav'],\n required: false\n },\n flac: {\n type: ['audio/flac'],\n required: false\n }\n }; // HTML attributes (id + class names) for the SWF container\n\n this.movieID = 'sm2-container';\n this.id = smID || 'sm2movie';\n this.debugID = 'soundmanager-debug';\n this.debugURLParam = /([#?&])debug=1/i; // dynamic attributes\n\n this.versionNumber = 'V2.97a.20170601';\n this.version = null;\n this.movieURL = null;\n this.altURL = null;\n this.swfLoaded = false;\n this.enabled = false;\n this.oMC = null;\n this.sounds = {};\n this.soundIDs = [];\n this.muted = false;\n this.didFlashBlock = false;\n this.filePattern = null;\n this.filePatterns = {\n flash8: /\\.mp3(\\?.*)?$/i,\n flash9: /\\.mp3(\\?.*)?$/i\n }; // support indicators, set at init\n\n this.features = {\n buffering: false,\n peakData: false,\n waveformData: false,\n eqData: false,\n movieStar: false\n }; // flash sandbox info, used primarily in troubleshooting\n\n this.sandbox = {\n // \n type: null,\n types: {\n remote: 'remote (domain-based) rules',\n localWithFile: 'local with file access (no internet access)',\n localWithNetwork: 'local with network (internet access only, no local access)',\n localTrusted: 'local, trusted (local+internet access)'\n },\n description: null,\n noRemote: null,\n noLocal: null // \n\n };\n /**\r\n * format support (html5/flash)\r\n * stores canPlayType() results based on audioFormats.\r\n * eg. { mp3: boolean, mp4: boolean }\r\n * treat as read-only.\r\n */\n\n this.html5 = {\n usingFlash: null // set if/when flash fallback is needed\n\n }; // file type support hash\n\n this.flash = {}; // determined at init time\n\n this.html5Only = false; // used for special cases (eg. iPad/iPhone/palm OS?)\n\n this.ignoreFlash = false;\n /**\r\n * a few private internals (OK, a lot. :D)\r\n */\n\n var SMSound,\n sm2 = this,\n globalHTML5Audio = null,\n flash = null,\n sm = 'soundManager',\n smc = sm + ': ',\n h5 = 'HTML5::',\n id,\n ua = navigator.userAgent,\n wl = window.location.href.toString(),\n doc = document,\n doNothing,\n setProperties,\n init,\n fV,\n on_queue = [],\n debugOpen = true,\n debugTS,\n didAppend = false,\n appendSuccess = false,\n didInit = false,\n disabled = false,\n windowLoaded = false,\n _wDS,\n wdCount = 0,\n initComplete,\n _mixin,\n _assign,\n extraOptions,\n addOnEvent,\n processOnEvents,\n _initUserOnload,\n delayWaitForEI,\n waitForEI,\n rebootIntoHTML5,\n setVersionInfo,\n _handleFocus,\n strings,\n initMovie,\n _domContentLoaded,\n _winOnLoad,\n didDCLoaded,\n getDocument,\n createMovie,\n catchError,\n setPolling,\n initDebug,\n debugLevels = ['log', 'info', 'warn', 'error'],\n defaultFlashVersion = 8,\n disableObject,\n failSafely,\n normalizeMovieURL,\n oRemoved = null,\n oRemovedHTML = null,\n str,\n flashBlockHandler,\n getSWFCSS,\n swfCSS,\n toggleDebug,\n loopFix,\n policyFix,\n complain,\n idCheck,\n waitingForEI = false,\n initPending = false,\n startTimer,\n stopTimer,\n timerExecute,\n h5TimerCount = 0,\n h5IntervalTimer = null,\n parseURL,\n messages = [],\n canIgnoreFlash,\n needsFlash = null,\n featureCheck,\n html5OK,\n html5CanPlay,\n html5ErrorCodes,\n html5Ext,\n html5Unload,\n _domContentLoadedIE,\n testHTML5,\n event,\n slice = Array.prototype.slice,\n useGlobalHTML5Audio = false,\n lastGlobalHTML5URL,\n hasFlash,\n detectFlash,\n badSafariFix,\n html5_events,\n showSupport,\n flushMessages,\n wrapCallback,\n idCounter = 0,\n didSetup,\n msecScale = 1000,\n is_iDevice = ua.match(/(ipad|iphone|ipod)/i),\n isAndroid = ua.match(/android/i),\n isIE = ua.match(/msie|trident/i),\n isWebkit = ua.match(/webkit/i),\n isSafari = ua.match(/safari/i) && !ua.match(/chrome/i),\n isOpera = ua.match(/opera/i),\n mobileHTML5 = ua.match(/(mobile|pre\\/|xoom)/i) || is_iDevice || isAndroid,\n isBadSafari = !wl.match(/usehtml5audio/i) && !wl.match(/sm2-ignorebadua/i) && isSafari && !ua.match(/silk/i) && ua.match(/OS\\sX\\s10_6_([3-7])/i),\n // Safari 4 and 5 (excluding Kindle Fire, \"Silk\") occasionally fail to load/play HTML5 audio on Snow Leopard 10.6.3 through 10.6.7 due to bug(s) in QuickTime X and/or other underlying frameworks. :/ Confirmed bug. https://bugs.webkit.org/show_bug.cgi?id=32159\n hasConsole = window.console !== _undefined && console.log !== _undefined,\n isFocused = doc.hasFocus !== _undefined ? doc.hasFocus() : null,\n tryInitOnFocus = isSafari && (doc.hasFocus === _undefined || !doc.hasFocus()),\n okToDisable = !tryInitOnFocus,\n flashMIME = /(mp3|mp4|mpa|m4a|m4b)/i,\n emptyURL = 'about:blank',\n // safe URL to unload, or load nothing from (flash 8 + most HTML5 UAs)\n emptyWAV = 'data:audio/wave;base64,/UklGRiYAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQIAAAD//w==',\n // tiny WAV for HTML5 unloading\n overHTTP = doc.location ? doc.location.protocol.match(/http/i) : null,\n http = !overHTTP ? '//' : '',\n // mp3, mp4, aac etc.\n netStreamMimeTypes = /^\\s*audio\\/(?:x-)?(?:mpeg4|aac|flv|mov|mp4|m4v|m4a|m4b|mp4v|3gp|3g2)\\s*(?:$|;)/i,\n // Flash v9.0r115+ \"moviestar\" formats\n netStreamTypes = ['mpeg4', 'aac', 'flv', 'mov', 'mp4', 'm4v', 'f4v', 'm4a', 'm4b', 'mp4v', '3gp', '3g2'],\n netStreamPattern = new RegExp('\\\\.(' + netStreamTypes.join('|') + ')(\\\\?.*)?$', 'i');\n\n this.mimePattern = /^\\s*audio\\/(?:x-)?(?:mp(?:eg|3))\\s*(?:$|;)/i; // default mp3 set\n // use altURL if not \"online\"\n\n this.useAltURL = !overHTTP;\n swfCSS = {\n swfBox: 'sm2-object-box',\n swfDefault: 'movieContainer',\n swfError: 'swf_error',\n // SWF loaded, but SM2 couldn't start (other error)\n swfTimedout: 'swf_timedout',\n swfLoaded: 'swf_loaded',\n swfUnblocked: 'swf_unblocked',\n // or loaded OK\n sm2Debug: 'sm2_debug',\n highPerf: 'high_performance',\n flashDebug: 'flash_debug'\n };\n /**\r\n * HTML5 error codes, per W3C\r\n * Error code 1, MEDIA_ERR_ABORTED: Client aborted download at user's request.\r\n * Error code 2, MEDIA_ERR_NETWORK: A network error of some description caused the user agent to stop fetching the media resource, after the resource was established to be usable.\r\n * Error code 3, MEDIA_ERR_DECODE: An error of some description occurred while decoding the media resource, after the resource was established to be usable.\r\n * Error code 4, MEDIA_ERR_SRC_NOT_SUPPORTED: Media (audio file) not supported (\"not usable.\")\r\n * Reference: https://html.spec.whatwg.org/multipage/embedded-content.html#error-codes\r\n */\n\n html5ErrorCodes = [null, 'MEDIA_ERR_ABORTED', 'MEDIA_ERR_NETWORK', 'MEDIA_ERR_DECODE', 'MEDIA_ERR_SRC_NOT_SUPPORTED'];\n /**\r\n * basic HTML5 Audio() support test\r\n * try...catch because of IE 9 \"not implemented\" nonsense\r\n * https://github.com/Modernizr/Modernizr/issues/224\r\n */\n\n this.hasHTML5 = function () {\n try {\n // new Audio(null) for stupid Opera 9.64 case, which throws not_enough_arguments exception otherwise.\n return Audio !== _undefined && (isOpera && opera !== _undefined && opera.version() < 10 ? new Audio(null) : new Audio()).canPlayType !== _undefined;\n } catch (e) {\n return false;\n }\n }();\n /**\r\n * Public SoundManager API\r\n * -----------------------\r\n */\n\n /**\r\n * Configures top-level soundManager properties.\r\n *\r\n * @param {object} options Option parameters, eg. { flashVersion: 9, url: '/path/to/swfs/' }\r\n * onready and ontimeout are also accepted parameters. call soundManager.setup() to see the full list.\r\n */\n\n\n this.setup = function (options) {\n var noURL = !sm2.url; // warn if flash options have already been applied\n\n if (options !== _undefined && didInit && needsFlash && sm2.ok() && (options.flashVersion !== _undefined || options.url !== _undefined || options.html5Test !== _undefined)) {\n complain(str('setupLate'));\n } // TODO: defer: true?\n\n\n _assign(options);\n\n if (!useGlobalHTML5Audio) {\n if (mobileHTML5) {\n // force the singleton HTML5 pattern on mobile, by default.\n if (!sm2.setupOptions.ignoreMobileRestrictions || sm2.setupOptions.forceUseGlobalHTML5Audio) {\n messages.push(strings.globalHTML5);\n useGlobalHTML5Audio = true;\n }\n } else if (sm2.setupOptions.forceUseGlobalHTML5Audio) {\n // only apply singleton HTML5 on desktop if forced.\n messages.push(strings.globalHTML5);\n useGlobalHTML5Audio = true;\n }\n }\n\n if (!didSetup && mobileHTML5) {\n if (sm2.setupOptions.ignoreMobileRestrictions) {\n messages.push(strings.ignoreMobile);\n } else {\n // prefer HTML5 for mobile + tablet-like devices, probably more reliable vs. flash at this point.\n // \n if (!sm2.setupOptions.useHTML5Audio || sm2.setupOptions.preferFlash) {\n // notify that defaults are being changed.\n sm2._wD(strings.mobileUA);\n } // \n\n\n sm2.setupOptions.useHTML5Audio = true;\n sm2.setupOptions.preferFlash = false;\n\n if (is_iDevice) {\n // no flash here.\n sm2.ignoreFlash = true;\n } else if (isAndroid && !ua.match(/android\\s2\\.3/i) || !isAndroid) {\n /**\r\n * Android devices tend to work better with a single audio instance, specifically for chained playback of sounds in sequence.\r\n * Common use case: exiting sound onfinish() -> createSound() -> play()\r\n * Presuming similar restrictions for other mobile, non-Android, non-iOS devices.\r\n */\n // \n sm2._wD(strings.globalHTML5); // \n\n\n useGlobalHTML5Audio = true;\n }\n }\n } // special case 1: \"Late setup\". SM2 loaded normally, but user didn't assign flash URL eg., setup({url:...}) before SM2 init. Treat as delayed init.\n\n\n if (options) {\n if (noURL && didDCLoaded && options.url !== _undefined) {\n sm2.beginDelayedInit();\n } // special case 2: If lazy-loading SM2 (DOMContentLoaded has already happened) and user calls setup() with url: parameter, try to init ASAP.\n\n\n if (!didDCLoaded && options.url !== _undefined && doc.readyState === 'complete') {\n setTimeout(_domContentLoaded, 1);\n }\n }\n\n didSetup = true;\n return sm2;\n };\n\n this.ok = function () {\n return needsFlash ? didInit && !disabled : sm2.useHTML5Audio && sm2.hasHTML5;\n };\n\n this.supported = this.ok; // legacy\n\n this.getMovie = function (movie_id) {\n // safety net: some old browsers differ on SWF references, possibly related to ExternalInterface / flash version\n return id(movie_id) || doc[movie_id] || window[movie_id];\n };\n /**\r\n * Creates a SMSound sound object instance. Can also be overloaded, e.g., createSound('mySound', '/some.mp3');\r\n *\r\n * @param {object} oOptions Sound options (at minimum, url parameter is required.)\r\n * @return {object} SMSound The new SMSound object.\r\n */\n\n\n this.createSound = function (oOptions, _url) {\n var cs,\n cs_string,\n options,\n oSound = null; // \n\n cs = sm + '.createSound(): ';\n cs_string = cs + str(!didInit ? 'notReady' : 'notOK'); // \n\n if (!didInit || !sm2.ok()) {\n complain(cs_string);\n return false;\n }\n\n if (_url !== _undefined) {\n // function overloading in JS! :) ... assume simple createSound(id, url) use case.\n oOptions = {\n id: oOptions,\n url: _url\n };\n } // inherit from defaultOptions\n\n\n options = _mixin(oOptions);\n options.url = parseURL(options.url); // generate an id, if needed.\n\n if (options.id === _undefined) {\n options.id = sm2.setupOptions.idPrefix + idCounter++;\n } // \n\n\n if (options.id.toString().charAt(0).match(/^[0-9]$/)) {\n sm2._wD(cs + str('badID', options.id), 2);\n }\n\n sm2._wD(cs + options.id + (options.url ? ' (' + options.url + ')' : ''), 1); // \n\n\n if (idCheck(options.id, true)) {\n sm2._wD(cs + options.id + ' exists', 1);\n\n return sm2.sounds[options.id];\n }\n\n function make() {\n options = loopFix(options);\n sm2.sounds[options.id] = new SMSound(options);\n sm2.soundIDs.push(options.id);\n return sm2.sounds[options.id];\n }\n\n if (html5OK(options)) {\n oSound = make(); // \n\n if (!sm2.html5Only) {\n sm2._wD(options.id + ': Using HTML5');\n } // \n\n\n oSound._setup_html5(options);\n } else {\n if (sm2.html5Only) {\n sm2._wD(options.id + ': No HTML5 support for this sound, and no Flash. Exiting.');\n\n return make();\n } // TODO: Move HTML5/flash checks into generic URL parsing/handling function.\n\n\n if (sm2.html5.usingFlash && options.url && options.url.match(/data:/i)) {\n // data: URIs not supported by Flash, either.\n sm2._wD(options.id + ': data: URIs not supported via Flash. Exiting.');\n\n return make();\n }\n\n if (fV > 8) {\n if (options.isMovieStar === null) {\n // attempt to detect MPEG-4 formats\n options.isMovieStar = !!(options.serverURL || (options.type ? options.type.match(netStreamMimeTypes) : false) || options.url && options.url.match(netStreamPattern));\n } // \n\n\n if (options.isMovieStar) {\n sm2._wD(cs + 'using MovieStar handling');\n\n if (options.loops > 1) {\n _wDS('noNSLoop');\n }\n } // \n\n }\n\n options = policyFix(options, cs);\n oSound = make();\n\n if (fV === 8) {\n flash._createSound(options.id, options.loops || 1, options.usePolicyFile);\n } else {\n flash._createSound(options.id, options.url, options.usePeakData, options.useWaveformData, options.useEQData, options.isMovieStar, options.isMovieStar ? options.bufferTime : false, options.loops || 1, options.serverURL, options.duration || null, options.autoPlay, true, options.autoLoad, options.usePolicyFile);\n\n if (!options.serverURL) {\n // We are connected immediately\n oSound.connected = true;\n\n if (options.onconnect) {\n options.onconnect.apply(oSound);\n }\n }\n }\n\n if (!options.serverURL && (options.autoLoad || options.autoPlay)) {\n // call load for non-rtmp streams\n oSound.load(options);\n }\n } // rtmp will play in onconnect\n\n\n if (!options.serverURL && options.autoPlay) {\n oSound.play();\n }\n\n return oSound;\n };\n /**\r\n * Destroys a SMSound sound object instance.\r\n *\r\n * @param {string} sID The ID of the sound to destroy\r\n */\n\n\n this.destroySound = function (sID, _bFromSound) {\n // explicitly destroy a sound before normal page unload, etc.\n if (!idCheck(sID)) return false;\n var oS = sm2.sounds[sID],\n i;\n oS.stop(); // Disable all callbacks after stop(), when the sound is being destroyed\n\n oS._iO = {};\n oS.unload();\n\n for (i = 0; i < sm2.soundIDs.length; i++) {\n if (sm2.soundIDs[i] === sID) {\n sm2.soundIDs.splice(i, 1);\n break;\n }\n }\n\n if (!_bFromSound) {\n // ignore if being called from SMSound instance\n oS.destruct(true);\n }\n\n oS = null;\n delete sm2.sounds[sID];\n return true;\n };\n /**\r\n * Calls the load() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @param {object} oOptions Optional: Sound options\r\n */\n\n\n this.load = function (sID, oOptions) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].load(oOptions);\n };\n /**\r\n * Calls the unload() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n */\n\n\n this.unload = function (sID) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].unload();\n };\n /**\r\n * Calls the onPosition() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @param {number} nPosition The position to watch for\r\n * @param {function} oMethod The relevant callback to fire\r\n * @param {object} oScope Optional: The scope to apply the callback to\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.onPosition = function (sID, nPosition, oMethod, oScope) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].onposition(nPosition, oMethod, oScope);\n }; // legacy/backwards-compability: lower-case method name\n\n\n this.onposition = this.onPosition;\n /**\r\n * Calls the clearOnPosition() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @param {number} nPosition The position to watch for\r\n * @param {function} oMethod Optional: The relevant callback to fire\r\n * @return {SMSound} The SMSound object\r\n */\n\n this.clearOnPosition = function (sID, nPosition, oMethod) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].clearOnPosition(nPosition, oMethod);\n };\n /**\r\n * Calls the play() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @param {object} oOptions Optional: Sound options\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.play = function (sID, oOptions) {\n var result = null,\n // legacy function-overloading use case: play('mySound', '/path/to/some.mp3');\n overloaded = oOptions && !(oOptions instanceof Object);\n\n if (!didInit || !sm2.ok()) {\n complain(sm + '.play(): ' + str(!didInit ? 'notReady' : 'notOK'));\n return false;\n }\n\n if (!idCheck(sID, overloaded)) {\n // no sound found for the given ID. Bail.\n if (!overloaded) return false;\n\n if (overloaded) {\n oOptions = {\n url: oOptions\n };\n }\n\n if (oOptions && oOptions.url) {\n // overloading use case, create+play: .play('someID', {url:'/path/to.mp3'});\n sm2._wD(sm + '.play(): Attempting to create \"' + sID + '\"', 1);\n\n oOptions.id = sID;\n result = sm2.createSound(oOptions).play();\n }\n } else if (overloaded) {\n // existing sound object case\n oOptions = {\n url: oOptions\n };\n }\n\n if (result === null) {\n // default case\n result = sm2.sounds[sID].play(oOptions);\n }\n\n return result;\n }; // just for convenience\n\n\n this.start = this.play;\n /**\r\n * Calls the setPlaybackRate() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @return {SMSound} The SMSound object\r\n */\n\n this.setPlaybackRate = function (sID, rate, allowOverride) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].setPlaybackRate(rate, allowOverride);\n };\n /**\r\n * Calls the setPosition() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @param {number} nMsecOffset Position (milliseconds)\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.setPosition = function (sID, nMsecOffset) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].setPosition(nMsecOffset);\n };\n /**\r\n * Calls the stop() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.stop = function (sID) {\n if (!idCheck(sID)) return false;\n\n sm2._wD(sm + '.stop(' + sID + ')', 1);\n\n return sm2.sounds[sID].stop();\n };\n /**\r\n * Stops all currently-playing sounds.\r\n */\n\n\n this.stopAll = function () {\n var oSound;\n\n sm2._wD(sm + '.stopAll()', 1);\n\n for (oSound in sm2.sounds) {\n if (sm2.sounds.hasOwnProperty(oSound)) {\n // apply only to sound objects\n sm2.sounds[oSound].stop();\n }\n }\n };\n /**\r\n * Calls the pause() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.pause = function (sID) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].pause();\n };\n /**\r\n * Pauses all currently-playing sounds.\r\n */\n\n\n this.pauseAll = function () {\n var i;\n\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\n sm2.sounds[sm2.soundIDs[i]].pause();\n }\n };\n /**\r\n * Calls the resume() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.resume = function (sID) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].resume();\n };\n /**\r\n * Resumes all currently-paused sounds.\r\n */\n\n\n this.resumeAll = function () {\n var i;\n\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\n sm2.sounds[sm2.soundIDs[i]].resume();\n }\n };\n /**\r\n * Calls the togglePause() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.togglePause = function (sID) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].togglePause();\n };\n /**\r\n * Calls the setPan() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @param {number} nPan The pan value (-100 to 100)\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.setPan = function (sID, nPan) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].setPan(nPan);\n };\n /**\r\n * Calls the setVolume() method of a SMSound object by ID\r\n * Overloaded case: pass only volume argument eg., setVolume(50) to apply to all sounds.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @param {number} nVol The volume value (0 to 100)\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.setVolume = function (sID, nVol) {\n // setVolume(50) function overloading case - apply to all sounds\n var i, j;\n\n if (sID !== _undefined && !isNaN(sID) && nVol === _undefined) {\n for (i = 0, j = sm2.soundIDs.length; i < j; i++) {\n sm2.sounds[sm2.soundIDs[i]].setVolume(sID);\n }\n\n return false;\n } // setVolume('mySound', 50) case\n\n\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].setVolume(nVol);\n };\n /**\r\n * Calls the mute() method of either a single SMSound object by ID, or all sound objects.\r\n *\r\n * @param {string} sID Optional: The ID of the sound (if omitted, all sounds will be used.)\r\n */\n\n\n this.mute = function (sID) {\n var i = 0;\n\n if (sID instanceof String) {\n sID = null;\n }\n\n if (!sID) {\n sm2._wD(sm + '.mute(): Muting all sounds');\n\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\n sm2.sounds[sm2.soundIDs[i]].mute();\n }\n\n sm2.muted = true;\n } else {\n if (!idCheck(sID)) return false;\n\n sm2._wD(sm + '.mute(): Muting \"' + sID + '\"');\n\n return sm2.sounds[sID].mute();\n }\n\n return true;\n };\n /**\r\n * Mutes all sounds.\r\n */\n\n\n this.muteAll = function () {\n sm2.mute();\n };\n /**\r\n * Calls the unmute() method of either a single SMSound object by ID, or all sound objects.\r\n *\r\n * @param {string} sID Optional: The ID of the sound (if omitted, all sounds will be used.)\r\n */\n\n\n this.unmute = function (sID) {\n var i;\n\n if (sID instanceof String) {\n sID = null;\n }\n\n if (!sID) {\n sm2._wD(sm + '.unmute(): Unmuting all sounds');\n\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\n sm2.sounds[sm2.soundIDs[i]].unmute();\n }\n\n sm2.muted = false;\n } else {\n if (!idCheck(sID)) return false;\n\n sm2._wD(sm + '.unmute(): Unmuting \"' + sID + '\"');\n\n return sm2.sounds[sID].unmute();\n }\n\n return true;\n };\n /**\r\n * Unmutes all sounds.\r\n */\n\n\n this.unmuteAll = function () {\n sm2.unmute();\n };\n /**\r\n * Calls the toggleMute() method of a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.toggleMute = function (sID) {\n if (!idCheck(sID)) return false;\n return sm2.sounds[sID].toggleMute();\n };\n /**\r\n * Retrieves the memory used by the flash plugin.\r\n *\r\n * @return {number} The amount of memory in use\r\n */\n\n\n this.getMemoryUse = function () {\n // flash-only\n var ram = 0;\n\n if (flash && fV !== 8) {\n ram = parseInt(flash._getMemoryUse(), 10);\n }\n\n return ram;\n };\n /**\r\n * Undocumented: NOPs soundManager and all SMSound objects.\r\n */\n\n\n this.disable = function (bNoDisable) {\n // destroy all functions\n var i;\n\n if (bNoDisable === _undefined) {\n bNoDisable = false;\n } // already disabled?\n\n\n if (disabled) return false;\n disabled = true;\n\n _wDS('shutdown', 1);\n\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\n disableObject(sm2.sounds[sm2.soundIDs[i]]);\n }\n\n disableObject(sm2); // fire \"complete\", despite fail\n\n initComplete(bNoDisable);\n event.remove(window, 'load', _initUserOnload);\n return true;\n };\n /**\r\n * Determines playability of a MIME type, eg. 'audio/mp3'.\r\n */\n\n\n this.canPlayMIME = function (sMIME) {\n var result;\n\n if (sm2.hasHTML5) {\n result = html5CanPlay({\n type: sMIME\n });\n }\n\n if (!result && needsFlash) {\n // if flash 9, test netStream (movieStar) types as well.\n result = sMIME && sm2.ok() ? !!((fV > 8 ? sMIME.match(netStreamMimeTypes) : null) || sMIME.match(sm2.mimePattern)) : null; // TODO: make less \"weird\" (per JSLint)\n }\n\n return result;\n };\n /**\r\n * Determines playability of a URL based on audio support.\r\n *\r\n * @param {string} sURL The URL to test\r\n * @return {boolean} URL playability\r\n */\n\n\n this.canPlayURL = function (sURL) {\n var result;\n\n if (sm2.hasHTML5) {\n result = html5CanPlay({\n url: sURL\n });\n }\n\n if (!result && needsFlash) {\n result = sURL && sm2.ok() ? !!sURL.match(sm2.filePattern) : null;\n }\n\n return result;\n };\n /**\r\n * Determines playability of an HTML DOM <a> object (or similar object literal) based on audio support.\r\n *\r\n * @param {object} oLink an HTML DOM <a> object or object literal including href and/or type attributes\r\n * @return {boolean} URL playability\r\n */\n\n\n this.canPlayLink = function (oLink) {\n if (oLink.type !== _undefined && oLink.type && sm2.canPlayMIME(oLink.type)) return true;\n return sm2.canPlayURL(oLink.href);\n };\n /**\r\n * Retrieves a SMSound object by ID.\r\n *\r\n * @param {string} sID The ID of the sound\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.getSoundById = function (sID, _suppressDebug) {\n if (!sID) return null;\n var result = sm2.sounds[sID]; // \n\n if (!result && !_suppressDebug) {\n sm2._wD(sm + '.getSoundById(): Sound \"' + sID + '\" not found.', 2);\n } // \n\n\n return result;\n };\n /**\r\n * Queues a callback for execution when SoundManager has successfully initialized.\r\n *\r\n * @param {function} oMethod The callback method to fire\r\n * @param {object} oScope Optional: The scope to apply to the callback\r\n */\n\n\n this.onready = function (oMethod, oScope) {\n var sType = 'onready',\n result = false;\n\n if (typeof oMethod === 'function') {\n // \n if (didInit) {\n sm2._wD(str('queue', sType));\n } // \n\n\n if (!oScope) {\n oScope = window;\n }\n\n addOnEvent(sType, oMethod, oScope);\n processOnEvents();\n result = true;\n } else {\n throw str('needFunction', sType);\n }\n\n return result;\n };\n /**\r\n * Queues a callback for execution when SoundManager has failed to initialize.\r\n *\r\n * @param {function} oMethod The callback method to fire\r\n * @param {object} oScope Optional: The scope to apply to the callback\r\n */\n\n\n this.ontimeout = function (oMethod, oScope) {\n var sType = 'ontimeout',\n result = false;\n\n if (typeof oMethod === 'function') {\n // \n if (didInit) {\n sm2._wD(str('queue', sType));\n } // \n\n\n if (!oScope) {\n oScope = window;\n }\n\n addOnEvent(sType, oMethod, oScope);\n processOnEvents({\n type: sType\n });\n result = true;\n } else {\n throw str('needFunction', sType);\n }\n\n return result;\n };\n /**\r\n * Writes console.log()-style debug output to a console or in-browser element.\r\n * Applies when debugMode = true\r\n *\r\n * @param {string} sText The console message\r\n * @param {object} nType Optional log level (number), or object. Number case: Log type/style where 0 = 'info', 1 = 'warn', 2 = 'error'. Object case: Object to be dumped.\r\n */\n\n\n this._writeDebug = function (sText, sTypeOrObject) {\n // pseudo-private console.log()-style output\n // \n var sDID = 'soundmanager-debug',\n o,\n oItem;\n if (!sm2.setupOptions.debugMode) return false;\n\n if (hasConsole && sm2.useConsole) {\n if (sTypeOrObject && _typeof(sTypeOrObject) === 'object') {\n // object passed; dump to console.\n console.log(sText, sTypeOrObject);\n } else if (debugLevels[sTypeOrObject] !== _undefined) {\n console[debugLevels[sTypeOrObject]](sText);\n } else {\n console.log(sText);\n }\n\n if (sm2.consoleOnly) return true;\n }\n\n o = id(sDID);\n if (!o) return false;\n oItem = doc.createElement('div');\n\n if (++wdCount % 2 === 0) {\n oItem.className = 'sm2-alt';\n }\n\n if (sTypeOrObject === _undefined) {\n sTypeOrObject = 0;\n } else {\n sTypeOrObject = parseInt(sTypeOrObject, 10);\n }\n\n oItem.appendChild(doc.createTextNode(sText));\n\n if (sTypeOrObject) {\n if (sTypeOrObject >= 2) {\n oItem.style.fontWeight = 'bold';\n }\n\n if (sTypeOrObject === 3) {\n oItem.style.color = '#ff3333';\n }\n } // top-to-bottom\n // o.appendChild(oItem);\n // bottom-to-top\n\n\n o.insertBefore(oItem, o.firstChild);\n o = null; // \n\n return true;\n }; // \n // last-resort debugging option\n\n\n if (wl.indexOf('sm2-debug=alert') !== -1) {\n this._writeDebug = function (sText) {\n window.alert(sText);\n };\n } // \n // alias\n\n\n this._wD = this._writeDebug;\n /**\r\n * Provides debug / state information on all SMSound objects.\r\n */\n\n this._debug = function () {\n // \n var i, j;\n\n _wDS('currentObj', 1);\n\n for (i = 0, j = sm2.soundIDs.length; i < j; i++) {\n sm2.sounds[sm2.soundIDs[i]]._debug();\n } // \n\n };\n /**\r\n * Restarts and re-initializes the SoundManager instance.\r\n *\r\n * @param {boolean} resetEvents Optional: When true, removes all registered onready and ontimeout event callbacks.\r\n * @param {boolean} excludeInit Options: When true, does not call beginDelayedInit() (which would restart SM2).\r\n * @return {object} soundManager The soundManager instance.\r\n */\n\n\n this.reboot = function (resetEvents, excludeInit) {\n // reset some (or all) state, and re-init unless otherwise specified.\n // \n if (sm2.soundIDs.length) {\n sm2._wD('Destroying ' + sm2.soundIDs.length + ' SMSound object' + (sm2.soundIDs.length !== 1 ? 's' : '') + '...');\n } // \n\n\n var i, j, k;\n\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\n sm2.sounds[sm2.soundIDs[i]].destruct();\n } // trash ze flash (remove from the DOM)\n\n\n if (flash) {\n try {\n if (isIE) {\n oRemovedHTML = flash.innerHTML;\n }\n\n oRemoved = flash.parentNode.removeChild(flash);\n } catch (e) {\n // Remove failed? May be due to flash blockers silently removing the SWF object/embed node from the DOM. Warn and continue.\n _wDS('badRemove', 2);\n }\n } // actually, force recreate of movie.\n\n\n oRemovedHTML = oRemoved = needsFlash = flash = null;\n sm2.enabled = didDCLoaded = didInit = waitingForEI = initPending = didAppend = appendSuccess = disabled = useGlobalHTML5Audio = sm2.swfLoaded = false;\n sm2.soundIDs = [];\n sm2.sounds = {};\n idCounter = 0;\n didSetup = false;\n\n if (!resetEvents) {\n // reset callbacks for onready, ontimeout etc. so that they will fire again on re-init\n for (i in on_queue) {\n if (on_queue.hasOwnProperty(i)) {\n for (j = 0, k = on_queue[i].length; j < k; j++) {\n on_queue[i][j].fired = false;\n }\n }\n }\n } else {\n // remove all callbacks entirely\n on_queue = [];\n } // \n\n\n if (!excludeInit) {\n sm2._wD(sm + ': Rebooting...');\n } // \n // reset HTML5 and flash canPlay test results\n\n\n sm2.html5 = {\n usingFlash: null\n };\n sm2.flash = {}; // reset device-specific HTML/flash mode switches\n\n sm2.html5Only = false;\n sm2.ignoreFlash = false;\n window.setTimeout(function () {\n // by default, re-init\n if (!excludeInit) {\n sm2.beginDelayedInit();\n }\n }, 20);\n return sm2;\n };\n\n this.reset = function () {\n /**\r\n * Shuts down and restores the SoundManager instance to its original loaded state, without an explicit reboot. All onready/ontimeout handlers are removed.\r\n * After this call, SM2 may be re-initialized via soundManager.beginDelayedInit().\r\n * @return {object} soundManager The soundManager instance.\r\n */\n _wDS('reset');\n\n return sm2.reboot(true, true);\n };\n /**\r\n * Undocumented: Determines the SM2 flash movie's load progress.\r\n *\r\n * @return {number or null} Percent loaded, or if invalid/unsupported, null.\r\n */\n\n\n this.getMoviePercent = function () {\n /**\r\n * Interesting syntax notes...\r\n * Flash/ExternalInterface (ActiveX/NPAPI) bridge methods are not typeof \"function\" nor instanceof Function, but are still valid.\r\n * Furthermore, using (flash && flash.PercentLoaded) causes IE to throw \"object doesn't support this property or method\".\r\n * Thus, 'in' syntax must be used.\r\n */\n return flash && 'PercentLoaded' in flash ? flash.PercentLoaded() : null;\n };\n /**\r\n * Additional helper for manually invoking SM2's init process after DOM Ready / window.onload().\r\n */\n\n\n this.beginDelayedInit = function () {\n windowLoaded = true;\n\n _domContentLoaded();\n\n setTimeout(function () {\n if (initPending) return false;\n createMovie();\n initMovie();\n initPending = true;\n return true;\n }, 20);\n delayWaitForEI();\n };\n /**\r\n * Destroys the SoundManager instance and all SMSound instances.\r\n */\n\n\n this.destruct = function () {\n sm2._wD(sm + '.destruct()');\n\n sm2.disable(true);\n };\n /**\r\n * SMSound() (sound object) constructor\r\n * ------------------------------------\r\n *\r\n * @param {object} oOptions Sound options (id and url are required attributes)\r\n * @return {SMSound} The new SMSound object\r\n */\n\n\n SMSound = function SMSound(oOptions) {\n var s = this,\n resetProperties,\n add_html5_events,\n remove_html5_events,\n stop_html5_timer,\n start_html5_timer,\n attachOnPosition,\n onplay_called = false,\n onPositionItems = [],\n onPositionFired = 0,\n detachOnPosition,\n applyFromTo,\n lastURL = null,\n lastHTML5State,\n urlOmitted;\n lastHTML5State = {\n // tracks duration + position (time)\n duration: null,\n time: null\n };\n this.id = oOptions.id; // legacy\n\n this.sID = this.id;\n this.url = oOptions.url;\n this.options = _mixin(oOptions); // per-play-instance-specific options\n\n this.instanceOptions = this.options; // short alias\n\n this._iO = this.instanceOptions; // assign property defaults\n\n this.pan = this.options.pan;\n this.volume = this.options.volume; // whether or not this object is using HTML5\n\n this.isHTML5 = false; // internal HTML5 Audio() object reference\n\n this._a = null; // for flash 8 special-case createSound() without url, followed by load/play with url case\n\n urlOmitted = !this.url;\n /**\r\n * SMSound() public methods\r\n * ------------------------\r\n */\n\n this.id3 = {};\n /**\r\n * Writes SMSound object parameters to debug console\r\n */\n\n this._debug = function () {\n // \n sm2._wD(s.id + ': Merged options:', s.options); // \n\n };\n /**\r\n * Begins loading a sound per its *url*.\r\n *\r\n * @param {object} options Optional: Sound options\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.load = function (options) {\n var oSound = null,\n instanceOptions;\n\n if (options !== _undefined) {\n s._iO = _mixin(options, s.options);\n } else {\n options = s.options;\n s._iO = options;\n\n if (lastURL && lastURL !== s.url) {\n _wDS('manURL');\n\n s._iO.url = s.url;\n s.url = null;\n }\n }\n\n if (!s._iO.url) {\n s._iO.url = s.url;\n }\n\n s._iO.url = parseURL(s._iO.url); // ensure we're in sync\n\n s.instanceOptions = s._iO; // local shortcut\n\n instanceOptions = s._iO;\n\n sm2._wD(s.id + ': load (' + instanceOptions.url + ')');\n\n if (!instanceOptions.url && !s.url) {\n sm2._wD(s.id + ': load(): url is unassigned. Exiting.', 2);\n\n return s;\n } // \n\n\n if (!s.isHTML5 && fV === 8 && !s.url && !instanceOptions.autoPlay) {\n // flash 8 load() -> play() won't work before onload has fired.\n sm2._wD(s.id + ': Flash 8 load() limitation: Wait for onload() before calling play().', 1);\n } // \n\n\n if (instanceOptions.url === s.url && s.readyState !== 0 && s.readyState !== 2) {\n _wDS('onURL', 1); // if loaded and an onload() exists, fire immediately.\n\n\n if (s.readyState === 3 && instanceOptions.onload) {\n // assume success based on truthy duration.\n wrapCallback(s, function () {\n instanceOptions.onload.apply(s, [!!s.duration]);\n });\n }\n\n return s;\n } // reset a few state properties\n\n\n s.loaded = false;\n s.readyState = 1;\n s.playState = 0;\n s.id3 = {}; // TODO: If switching from HTML5 -> flash (or vice versa), stop currently-playing audio.\n\n if (html5OK(instanceOptions)) {\n oSound = s._setup_html5(instanceOptions);\n\n if (!oSound._called_load) {\n s._html5_canplay = false; // TODO: review called_load / html5_canplay logic\n // if url provided directly to load(), assign it here.\n\n if (s.url !== instanceOptions.url) {\n sm2._wD(_wDS('manURL') + ': ' + instanceOptions.url);\n\n s._a.src = instanceOptions.url; // TODO: review / re-apply all relevant options (volume, loop, onposition etc.)\n // reset position for new URL\n\n s.setPosition(0);\n } // given explicit load call, try to preload.\n // early HTML5 implementation (non-standard)\n\n\n s._a.autobuffer = 'auto'; // standard property, values: none / metadata / auto\n // reference: http://msdn.microsoft.com/en-us/library/ie/ff974759%28v=vs.85%29.aspx\n\n s._a.preload = 'auto';\n s._a._called_load = true;\n } else {\n sm2._wD(s.id + ': Ignoring request to load again');\n }\n } else {\n if (sm2.html5Only) {\n sm2._wD(s.id + ': No flash support. Exiting.');\n\n return s;\n }\n\n if (s._iO.url && s._iO.url.match(/data:/i)) {\n // data: URIs not supported by Flash, either.\n sm2._wD(s.id + ': data: URIs not supported via Flash. Exiting.');\n\n return s;\n }\n\n try {\n s.isHTML5 = false;\n s._iO = policyFix(loopFix(instanceOptions)); // if we have \"position\", disable auto-play as we'll be seeking to that position at onload().\n\n if (s._iO.autoPlay && (s._iO.position || s._iO.from)) {\n sm2._wD(s.id + ': Disabling autoPlay because of non-zero offset case');\n\n s._iO.autoPlay = false;\n } // re-assign local shortcut\n\n\n instanceOptions = s._iO;\n\n if (fV === 8) {\n flash._load(s.id, instanceOptions.url, instanceOptions.stream, instanceOptions.autoPlay, instanceOptions.usePolicyFile);\n } else {\n flash._load(s.id, instanceOptions.url, !!instanceOptions.stream, !!instanceOptions.autoPlay, instanceOptions.loops || 1, !!instanceOptions.autoLoad, instanceOptions.usePolicyFile);\n }\n } catch (e) {\n _wDS('smError', 2);\n\n debugTS('onload', false);\n catchError({\n type: 'SMSOUND_LOAD_JS_EXCEPTION',\n fatal: true\n });\n }\n } // after all of this, ensure sound url is up to date.\n\n\n s.url = instanceOptions.url;\n return s;\n };\n /**\r\n * Unloads a sound, canceling any open HTTP requests.\r\n *\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.unload = function () {\n // Flash 8/AS2 can't \"close\" a stream - fake it by loading an empty URL\n // Flash 9/AS3: Close stream, preventing further load\n // HTML5: Most UAs will use empty URL\n if (s.readyState !== 0) {\n sm2._wD(s.id + ': unload()');\n\n if (!s.isHTML5) {\n if (fV === 8) {\n flash._unload(s.id, emptyURL);\n } else {\n flash._unload(s.id);\n }\n } else {\n stop_html5_timer();\n\n if (s._a) {\n s._a.pause(); // update empty URL, too\n\n\n lastURL = html5Unload(s._a);\n }\n } // reset load/status flags\n\n\n resetProperties();\n }\n\n return s;\n };\n /**\r\n * Unloads and destroys a sound.\r\n */\n\n\n this.destruct = function (_bFromSM) {\n sm2._wD(s.id + ': Destruct');\n\n if (!s.isHTML5) {\n // kill sound within Flash\n // Disable the onfailure handler\n s._iO.onfailure = null;\n\n flash._destroySound(s.id);\n } else {\n stop_html5_timer();\n\n if (s._a) {\n s._a.pause();\n\n html5Unload(s._a);\n\n if (!useGlobalHTML5Audio) {\n remove_html5_events();\n } // break obvious circular reference\n\n\n s._a._s = null;\n s._a = null;\n }\n }\n\n if (!_bFromSM) {\n // ensure deletion from controller\n sm2.destroySound(s.id, true);\n }\n };\n /**\r\n * Begins playing a sound.\r\n *\r\n * @param {object} options Optional: Sound options\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.play = function (options, _updatePlayState) {\n var fN,\n allowMulti,\n a,\n onready,\n audioClone,\n _onended,\n _oncanplay,\n startOK = true; // \n\n\n fN = s.id + ': play(): '; // \n // default to true\n\n _updatePlayState = _updatePlayState === _undefined ? true : _updatePlayState;\n\n if (!options) {\n options = {};\n } // first, use local URL (if specified)\n\n\n if (s.url) {\n s._iO.url = s.url;\n } // mix in any options defined at createSound()\n\n\n s._iO = _mixin(s._iO, s.options); // mix in any options specific to this method\n\n s._iO = _mixin(options, s._iO);\n s._iO.url = parseURL(s._iO.url);\n s.instanceOptions = s._iO; // RTMP-only\n\n if (!s.isHTML5 && s._iO.serverURL && !s.connected) {\n if (!s.getAutoPlay()) {\n sm2._wD(fN + ' Netstream not connected yet - setting autoPlay');\n\n s.setAutoPlay(true);\n } // play will be called in onconnect()\n\n\n return s;\n }\n\n if (html5OK(s._iO)) {\n s._setup_html5(s._iO);\n\n start_html5_timer();\n }\n\n if (s.playState === 1 && !s.paused) {\n allowMulti = s._iO.multiShot;\n\n if (!allowMulti) {\n sm2._wD(fN + 'Already playing (one-shot)', 1);\n\n if (s.isHTML5) {\n // go back to original position.\n s.setPosition(s._iO.position);\n }\n\n return s;\n }\n\n sm2._wD(fN + 'Already playing (multi-shot)', 1);\n } // edge case: play() with explicit URL parameter\n\n\n if (options.url && options.url !== s.url) {\n // special case for createSound() followed by load() / play() with url; avoid double-load case.\n if (!s.readyState && !s.isHTML5 && fV === 8 && urlOmitted) {\n urlOmitted = false;\n } else {\n // load using merged options\n s.load(s._iO);\n }\n }\n\n if (!s.loaded) {\n if (s.readyState === 0) {\n sm2._wD(fN + 'Attempting to load'); // try to get this sound playing ASAP\n\n\n if (!s.isHTML5 && !sm2.html5Only) {\n // flash: assign directly because setAutoPlay() increments the instanceCount\n s._iO.autoPlay = true;\n s.load(s._iO);\n } else if (s.isHTML5) {\n // iOS needs this when recycling sounds, loading a new URL on an existing object.\n s.load(s._iO);\n } else {\n sm2._wD(fN + 'Unsupported type. Exiting.');\n\n return s;\n } // HTML5 hack - re-set instanceOptions?\n\n\n s.instanceOptions = s._iO;\n } else if (s.readyState === 2) {\n sm2._wD(fN + 'Could not load - exiting', 2);\n\n return s;\n } else {\n sm2._wD(fN + 'Loading - attempting to play...');\n }\n } else {\n // \"play()\"\n sm2._wD(fN.substr(0, fN.lastIndexOf(':')));\n }\n\n if (!s.isHTML5 && fV === 9 && s.position > 0 && s.position === s.duration) {\n // flash 9 needs a position reset if play() is called while at the end of a sound.\n sm2._wD(fN + 'Sound at end, resetting to position: 0');\n\n options.position = 0;\n }\n /**\r\n * Streams will pause when their buffer is full if they are being loaded.\r\n * In this case paused is true, but the song hasn't started playing yet.\r\n * If we just call resume() the onplay() callback will never be called.\r\n * So only call resume() if the position is > 0.\r\n * Another reason is because options like volume won't have been applied yet.\r\n * For normal sounds, just resume.\r\n */\n\n\n if (s.paused && s.position >= 0 && (!s._iO.serverURL || s.position > 0)) {\n // https://gist.github.com/37b17df75cc4d7a90bf6\n sm2._wD(fN + 'Resuming from paused state', 1);\n\n s.resume();\n } else {\n s._iO = _mixin(options, s._iO);\n /**\r\n * Preload in the event of play() with position under Flash,\r\n * or from/to parameters and non-RTMP case\r\n */\n\n if ((!s.isHTML5 && s._iO.position !== null && s._iO.position > 0 || s._iO.from !== null && s._iO.from > 0 || s._iO.to !== null) && s.instanceCount === 0 && s.playState === 0 && !s._iO.serverURL) {\n onready = function onready() {\n // sound \"canplay\" or onload()\n // re-apply position/from/to to instance options, and start playback\n s._iO = _mixin(options, s._iO);\n s.play(s._iO);\n }; // HTML5 needs to at least have \"canplay\" fired before seeking.\n\n\n if (s.isHTML5 && !s._html5_canplay) {\n // this hasn't been loaded yet. load it first, and then do this again.\n sm2._wD(fN + 'Beginning load for non-zero offset case');\n\n s.load({\n // note: custom HTML5-only event added for from/to implementation.\n _oncanplay: onready\n });\n } else if (!s.isHTML5 && !s.loaded && (!s.readyState || s.readyState !== 2)) {\n // to be safe, preload the whole thing in Flash.\n sm2._wD(fN + 'Preloading for non-zero offset case');\n\n s.load({\n onload: onready\n });\n } // otherwise, we're ready to go. re-apply local options, and continue\n\n\n s._iO = applyFromTo();\n } // sm2._wD(fN + 'Starting to play');\n // increment instance counter, where enabled + supported\n\n\n if (!s.instanceCount || s._iO.multiShotEvents || s.isHTML5 && s._iO.multiShot && !useGlobalHTML5Audio || !s.isHTML5 && fV > 8 && !s.getAutoPlay()) {\n s.instanceCount++;\n } // if first play and onposition parameters exist, apply them now\n\n\n if (s._iO.onposition && s.playState === 0) {\n attachOnPosition(s);\n }\n\n s.playState = 1;\n s.paused = false;\n s.position = s._iO.position !== _undefined && !isNaN(s._iO.position) ? s._iO.position : 0;\n\n if (!s.isHTML5) {\n s._iO = policyFix(loopFix(s._iO));\n }\n\n if (s._iO.onplay && _updatePlayState) {\n s._iO.onplay.apply(s);\n\n onplay_called = true;\n }\n\n s.setVolume(s._iO.volume, true);\n s.setPan(s._iO.pan, true);\n\n if (s._iO.playbackRate !== 1) {\n s.setPlaybackRate(s._iO.playbackRate);\n }\n\n if (!s.isHTML5) {\n startOK = flash._start(s.id, s._iO.loops || 1, fV === 9 ? s.position : s.position / msecScale, s._iO.multiShot || false);\n\n if (fV === 9 && !startOK) {\n // edge case: no sound hardware, or 32-channel flash ceiling hit.\n // applies only to Flash 9, non-NetStream/MovieStar sounds.\n // http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/media/Sound.html#play%28%29\n sm2._wD(fN + 'No sound hardware, or 32-sound ceiling hit', 2);\n\n if (s._iO.onplayerror) {\n s._iO.onplayerror.apply(s);\n }\n }\n } else if (s.instanceCount < 2) {\n // HTML5 single-instance case\n start_html5_timer();\n a = s._setup_html5();\n s.setPosition(s._iO.position);\n a.play();\n } else {\n // HTML5 multi-shot case\n sm2._wD(s.id + ': Cloning Audio() for instance #' + s.instanceCount + '...');\n\n audioClone = new Audio(s._iO.url);\n\n _onended = function onended() {\n event.remove(audioClone, 'ended', _onended);\n\n s._onfinish(s); // cleanup\n\n\n html5Unload(audioClone);\n audioClone = null;\n };\n\n _oncanplay = function oncanplay() {\n event.remove(audioClone, 'canplay', _oncanplay);\n\n try {\n audioClone.currentTime = s._iO.position / msecScale;\n } catch (err) {\n complain(s.id + ': multiShot play() failed to apply position of ' + s._iO.position / msecScale);\n }\n\n audioClone.play();\n };\n\n event.add(audioClone, 'ended', _onended); // apply volume to clones, too\n\n if (s._iO.volume !== _undefined) {\n audioClone.volume = Math.max(0, Math.min(1, s._iO.volume / 100));\n } // playing multiple muted sounds? if you do this, you're weird ;) - but let's cover it.\n\n\n if (s.muted) {\n audioClone.muted = true;\n }\n\n if (s._iO.position) {\n // HTML5 audio can't seek before onplay() event has fired.\n // wait for canplay, then seek to position and start playback.\n event.add(audioClone, 'canplay', _oncanplay);\n } else {\n // begin playback at currentTime: 0\n audioClone.play();\n }\n }\n }\n\n return s;\n }; // just for convenience\n\n\n this.start = this.play;\n /**\r\n * Stops playing a sound (and optionally, all sounds)\r\n *\r\n * @param {boolean} bAll Optional: Whether to stop all sounds\r\n * @return {SMSound} The SMSound object\r\n */\n\n this.stop = function (bAll) {\n var instanceOptions = s._iO,\n originalPosition;\n\n if (s.playState === 1) {\n sm2._wD(s.id + ': stop()');\n\n s._onbufferchange(0);\n\n s._resetOnPosition(0);\n\n s.paused = false;\n\n if (!s.isHTML5) {\n s.playState = 0;\n } // remove onPosition listeners, if any\n\n\n detachOnPosition(); // and \"to\" position, if set\n\n if (instanceOptions.to) {\n s.clearOnPosition(instanceOptions.to);\n }\n\n if (!s.isHTML5) {\n flash._stop(s.id, bAll); // hack for netStream: just unload\n\n\n if (instanceOptions.serverURL) {\n s.unload();\n }\n } else if (s._a) {\n originalPosition = s.position; // act like Flash, though\n\n s.setPosition(0); // hack: reflect old position for onstop() (also like Flash)\n\n s.position = originalPosition; // html5 has no stop()\n // NOTE: pausing means iOS requires interaction to resume.\n\n s._a.pause();\n\n s.playState = 0; // and update UI\n\n s._onTimer();\n\n stop_html5_timer();\n }\n\n s.instanceCount = 0;\n s._iO = {};\n\n if (instanceOptions.onstop) {\n instanceOptions.onstop.apply(s);\n }\n }\n\n return s;\n };\n /**\r\n * Undocumented/internal: Sets autoPlay for RTMP.\r\n *\r\n * @param {boolean} autoPlay state\r\n */\n\n\n this.setAutoPlay = function (autoPlay) {\n sm2._wD(s.id + ': Autoplay turned ' + (autoPlay ? 'on' : 'off'));\n\n s._iO.autoPlay = autoPlay;\n\n if (!s.isHTML5) {\n flash._setAutoPlay(s.id, autoPlay);\n\n if (autoPlay) {\n // only increment the instanceCount if the sound isn't loaded (TODO: verify RTMP)\n if (!s.instanceCount && s.readyState === 1) {\n s.instanceCount++;\n\n sm2._wD(s.id + ': Incremented instance count to ' + s.instanceCount);\n }\n }\n }\n };\n /**\r\n * Undocumented/internal: Returns the autoPlay boolean.\r\n *\r\n * @return {boolean} The current autoPlay value\r\n */\n\n\n this.getAutoPlay = function () {\n return s._iO.autoPlay;\n };\n /**\r\n * Sets the playback rate of a sound (HTML5-only.)\r\n *\r\n * @param {number} playbackRate (+/-)\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.setPlaybackRate = function (playbackRate) {\n // Per Mozilla, limit acceptable values to prevent playback from stopping (unless allowOverride is truthy.)\n // https://developer.mozilla.org/en-US/Apps/Build/Audio_and_video_delivery/WebAudio_playbackRate_explained\n var normalizedRate = Math.max(0.5, Math.min(4, playbackRate)); // \n\n if (normalizedRate !== playbackRate) {\n sm2._wD(s.id + ': setPlaybackRate(' + playbackRate + '): limiting rate to ' + normalizedRate, 2);\n } // \n\n\n if (s.isHTML5) {\n try {\n s._iO.playbackRate = normalizedRate;\n s._a.playbackRate = normalizedRate;\n } catch (e) {\n sm2._wD(s.id + ': setPlaybackRate(' + normalizedRate + ') failed: ' + e.message, 2);\n }\n }\n\n return s;\n };\n /**\r\n * Sets the position of a sound.\r\n *\r\n * @param {number} nMsecOffset Position (milliseconds)\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.setPosition = function (nMsecOffset) {\n if (nMsecOffset === _undefined) {\n nMsecOffset = 0;\n }\n\n var position,\n position1K,\n // Use the duration from the instance options, if we don't have a track duration yet.\n // position >= 0 and <= current available (loaded) duration\n offset = s.isHTML5 ? Math.max(nMsecOffset, 0) : Math.min(s.duration || s._iO.duration, Math.max(nMsecOffset, 0));\n s.position = offset;\n position1K = s.position / msecScale;\n\n s._resetOnPosition(s.position);\n\n s._iO.position = offset;\n\n if (!s.isHTML5) {\n position = fV === 9 ? s.position : position1K;\n\n if (s.readyState && s.readyState !== 2) {\n // if paused or not playing, will not resume (by playing)\n flash._setPosition(s.id, position, s.paused || !s.playState, s._iO.multiShot);\n }\n } else if (s._a) {\n // Set the position in the canplay handler if the sound is not ready yet\n if (s._html5_canplay) {\n if (s._a.currentTime.toFixed(3) !== position1K.toFixed(3)) {\n /**\r\n * DOM/JS errors/exceptions to watch out for:\r\n * if seek is beyond (loaded?) position, \"DOM exception 11\"\r\n * \"INDEX_SIZE_ERR\": DOM exception 1\r\n */\n sm2._wD(s.id + ': setPosition(' + position1K + ')');\n\n try {\n s._a.currentTime = position1K;\n\n if (s.playState === 0 || s.paused) {\n // allow seek without auto-play/resume\n s._a.pause();\n }\n } catch (e) {\n sm2._wD(s.id + ': setPosition(' + position1K + ') failed: ' + e.message, 2);\n }\n }\n } else if (position1K) {\n // warn on non-zero seek attempts\n sm2._wD(s.id + ': setPosition(' + position1K + '): Cannot seek yet, sound not ready', 2);\n\n return s;\n }\n\n if (s.paused) {\n // if paused, refresh UI right away by forcing update\n s._onTimer(true);\n }\n }\n\n return s;\n };\n /**\r\n * Pauses sound playback.\r\n *\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.pause = function (_bCallFlash) {\n if (s.paused || s.playState === 0 && s.readyState !== 1) return s;\n\n sm2._wD(s.id + ': pause()');\n\n s.paused = true;\n\n if (!s.isHTML5) {\n if (_bCallFlash || _bCallFlash === _undefined) {\n flash._pause(s.id, s._iO.multiShot);\n }\n } else {\n s._setup_html5().pause();\n\n stop_html5_timer();\n }\n\n if (s._iO.onpause) {\n s._iO.onpause.apply(s);\n }\n\n return s;\n };\n /**\r\n * Resumes sound playback.\r\n *\r\n * @return {SMSound} The SMSound object\r\n */\n\n /**\r\n * When auto-loaded streams pause on buffer full they have a playState of 0.\r\n * We need to make sure that the playState is set to 1 when these streams \"resume\".\r\n * When a paused stream is resumed, we need to trigger the onplay() callback if it\r\n * hasn't been called already. In this case since the sound is being played for the\r\n * first time, I think it's more appropriate to call onplay() rather than onresume().\r\n */\n\n\n this.resume = function () {\n var instanceOptions = s._iO;\n if (!s.paused) return s;\n\n sm2._wD(s.id + ': resume()');\n\n s.paused = false;\n s.playState = 1;\n\n if (!s.isHTML5) {\n if (instanceOptions.isMovieStar && !instanceOptions.serverURL) {\n // Bizarre Webkit bug (Chrome reported via 8tracks.com dudes): AAC content paused for 30+ seconds(?) will not resume without a reposition.\n s.setPosition(s.position);\n } // flash method is toggle-based (pause/resume)\n\n\n flash._pause(s.id, instanceOptions.multiShot);\n } else {\n s._setup_html5().play();\n\n start_html5_timer();\n }\n\n if (!onplay_called && instanceOptions.onplay) {\n instanceOptions.onplay.apply(s);\n onplay_called = true;\n } else if (instanceOptions.onresume) {\n instanceOptions.onresume.apply(s);\n }\n\n return s;\n };\n /**\r\n * Toggles sound playback.\r\n *\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.togglePause = function () {\n sm2._wD(s.id + ': togglePause()');\n\n if (s.playState === 0) {\n s.play({\n position: fV === 9 && !s.isHTML5 ? s.position : s.position / msecScale\n });\n return s;\n }\n\n if (s.paused) {\n s.resume();\n } else {\n s.pause();\n }\n\n return s;\n };\n /**\r\n * Sets the panning (L-R) effect.\r\n *\r\n * @param {number} nPan The pan value (-100 to 100)\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.setPan = function (nPan, bInstanceOnly) {\n if (nPan === _undefined) {\n nPan = 0;\n }\n\n if (bInstanceOnly === _undefined) {\n bInstanceOnly = false;\n }\n\n if (!s.isHTML5) {\n flash._setPan(s.id, nPan);\n } // else { no HTML5 pan? }\n\n\n s._iO.pan = nPan;\n\n if (!bInstanceOnly) {\n s.pan = nPan;\n s.options.pan = nPan;\n }\n\n return s;\n };\n /**\r\n * Sets the volume.\r\n *\r\n * @param {number} nVol The volume value (0 to 100)\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.setVolume = function (nVol, _bInstanceOnly) {\n /**\r\n * Note: Setting volume has no effect on iOS \"special snowflake\" devices.\r\n * Hardware volume control overrides software, and volume\r\n * will always return 1 per Apple docs. (iOS 4 + 5.)\r\n * http://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/HTML-canvas-guide/AddingSoundtoCanvasAnimations/AddingSoundtoCanvasAnimations.html\r\n */\n if (nVol === _undefined) {\n nVol = 100;\n }\n\n if (_bInstanceOnly === _undefined) {\n _bInstanceOnly = false;\n }\n\n if (!s.isHTML5) {\n flash._setVolume(s.id, sm2.muted && !s.muted || s.muted ? 0 : nVol);\n } else if (s._a) {\n if (sm2.muted && !s.muted) {\n s.muted = true;\n s._a.muted = true;\n } // valid range for native HTML5 Audio(): 0-1\n\n\n s._a.volume = Math.max(0, Math.min(1, nVol / 100));\n }\n\n s._iO.volume = nVol;\n\n if (!_bInstanceOnly) {\n s.volume = nVol;\n s.options.volume = nVol;\n }\n\n return s;\n };\n /**\r\n * Mutes the sound.\r\n *\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.mute = function () {\n s.muted = true;\n\n if (!s.isHTML5) {\n flash._setVolume(s.id, 0);\n } else if (s._a) {\n s._a.muted = true;\n }\n\n return s;\n };\n /**\r\n * Unmutes the sound.\r\n *\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.unmute = function () {\n s.muted = false;\n var hasIO = s._iO.volume !== _undefined;\n\n if (!s.isHTML5) {\n flash._setVolume(s.id, hasIO ? s._iO.volume : s.options.volume);\n } else if (s._a) {\n s._a.muted = false;\n }\n\n return s;\n };\n /**\r\n * Toggles the muted state of a sound.\r\n *\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.toggleMute = function () {\n return s.muted ? s.unmute() : s.mute();\n };\n /**\r\n * Registers a callback to be fired when a sound reaches a given position during playback.\r\n *\r\n * @param {number} nPosition The position to watch for\r\n * @param {function} oMethod The relevant callback to fire\r\n * @param {object} oScope Optional: The scope to apply the callback to\r\n * @return {SMSound} The SMSound object\r\n */\n\n\n this.onPosition = function (nPosition, oMethod, oScope) {\n // TODO: basic dupe checking?\n onPositionItems.push({\n position: parseInt(nPosition, 10),\n method: oMethod,\n scope: oScope !== _undefined ? oScope : s,\n fired: false\n });\n return s;\n }; // legacy/backwards-compability: lower-case method name\n\n\n this.onposition = this.onPosition;\n /**\r\n * Removes registered callback(s) from a sound, by position and/or callback.\r\n *\r\n * @param {number} nPosition The position to clear callback(s) for\r\n * @param {function} oMethod Optional: Identify one callback to be removed when multiple listeners exist for one position\r\n * @return {SMSound} The SMSound object\r\n */\n\n this.clearOnPosition = function (nPosition, oMethod) {\n var i;\n nPosition = parseInt(nPosition, 10);\n\n if (isNaN(nPosition)) {\n // safety check\n return;\n }\n\n for (i = 0; i < onPositionItems.length; i++) {\n if (nPosition === onPositionItems[i].position) {\n // remove this item if no method was specified, or, if the method matches\n if (!oMethod || oMethod === onPositionItems[i].method) {\n if (onPositionItems[i].fired) {\n // decrement \"fired\" counter, too\n onPositionFired--;\n }\n\n onPositionItems.splice(i, 1);\n }\n }\n }\n };\n\n this._processOnPosition = function () {\n var i,\n item,\n j = onPositionItems.length;\n if (!j || !s.playState || onPositionFired >= j) return false;\n\n for (i = j - 1; i >= 0; i--) {\n item = onPositionItems[i];\n\n if (!item.fired && s.position >= item.position) {\n item.fired = true;\n onPositionFired++;\n item.method.apply(item.scope, [item.position]); // reset j -- onPositionItems.length can be changed in the item callback above... occasionally breaking the loop.\n\n j = onPositionItems.length;\n }\n }\n\n return true;\n };\n\n this._resetOnPosition = function (nPosition) {\n // reset \"fired\" for items interested in this position\n var i,\n item,\n j = onPositionItems.length;\n if (!j) return false;\n\n for (i = j - 1; i >= 0; i--) {\n item = onPositionItems[i];\n\n if (item.fired && nPosition <= item.position) {\n item.fired = false;\n onPositionFired--;\n }\n }\n\n return true;\n };\n /**\r\n * SMSound() private internals\r\n * --------------------------------\r\n */\n\n\n applyFromTo = function applyFromTo() {\n var instanceOptions = s._iO,\n f = instanceOptions.from,\n t = instanceOptions.to,\n start,\n _end;\n\n _end = function end() {\n // end has been reached.\n sm2._wD(s.id + ': \"To\" time of ' + t + ' reached.'); // detach listener\n\n\n s.clearOnPosition(t, _end); // stop should clear this, too\n\n s.stop();\n };\n\n start = function start() {\n sm2._wD(s.id + ': Playing \"from\" ' + f); // add listener for end\n\n\n if (t !== null && !isNaN(t)) {\n s.onPosition(t, _end);\n }\n };\n\n if (f !== null && !isNaN(f)) {\n // apply to instance options, guaranteeing correct start position.\n instanceOptions.position = f; // multiShot timing can't be tracked, so prevent that.\n\n instanceOptions.multiShot = false;\n start();\n } // return updated instanceOptions including starting position\n\n\n return instanceOptions;\n };\n\n attachOnPosition = function attachOnPosition() {\n var item,\n op = s._iO.onposition; // attach onposition things, if any, now.\n\n if (op) {\n for (item in op) {\n if (op.hasOwnProperty(item)) {\n s.onPosition(parseInt(item, 10), op[item]);\n }\n }\n }\n };\n\n detachOnPosition = function detachOnPosition() {\n var item,\n op = s._iO.onposition; // detach any onposition()-style listeners.\n\n if (op) {\n for (item in op) {\n if (op.hasOwnProperty(item)) {\n s.clearOnPosition(parseInt(item, 10));\n }\n }\n }\n };\n\n start_html5_timer = function start_html5_timer() {\n if (s.isHTML5) {\n startTimer(s);\n }\n };\n\n stop_html5_timer = function stop_html5_timer() {\n if (s.isHTML5) {\n stopTimer(s);\n }\n };\n\n resetProperties = function resetProperties(retainPosition) {\n if (!retainPosition) {\n onPositionItems = [];\n onPositionFired = 0;\n }\n\n onplay_called = false;\n s._hasTimer = null;\n s._a = null;\n s._html5_canplay = false;\n s.bytesLoaded = null;\n s.bytesTotal = null;\n s.duration = s._iO && s._iO.duration ? s._iO.duration : null;\n s.durationEstimate = null;\n s.buffered = []; // legacy: 1D array\n\n s.eqData = [];\n s.eqData.left = [];\n s.eqData.right = [];\n s.failures = 0;\n s.isBuffering = false;\n s.instanceOptions = {};\n s.instanceCount = 0;\n s.loaded = false;\n s.metadata = {}; // 0 = uninitialised, 1 = loading, 2 = failed/error, 3 = loaded/success\n\n s.readyState = 0;\n s.muted = false;\n s.paused = false;\n s.peakData = {\n left: 0,\n right: 0\n };\n s.waveformData = {\n left: [],\n right: []\n };\n s.playState = 0;\n s.position = null;\n s.id3 = {};\n };\n\n resetProperties();\n /**\r\n * Pseudo-private SMSound internals\r\n * --------------------------------\r\n */\n\n this._onTimer = function (bForce) {\n /**\r\n * HTML5-only _whileplaying() etc.\r\n * called from both HTML5 native events, and polling/interval-based timers\r\n * mimics flash and fires only when time/duration change, so as to be polling-friendly\r\n */\n var duration,\n isNew = false,\n time,\n x = {};\n\n if (s._hasTimer || bForce) {\n // TODO: May not need to track readyState (1 = loading)\n if (s._a && (bForce || (s.playState > 0 || s.readyState === 1) && !s.paused)) {\n duration = s._get_html5_duration();\n\n if (duration !== lastHTML5State.duration) {\n lastHTML5State.duration = duration;\n s.duration = duration;\n isNew = true;\n } // TODO: investigate why this goes wack if not set/re-set each time.\n\n\n s.durationEstimate = s.duration;\n time = s._a.currentTime * msecScale || 0;\n\n if (time !== lastHTML5State.time) {\n lastHTML5State.time = time;\n isNew = true;\n }\n\n if (isNew || bForce) {\n s._whileplaying(time, x, x, x, x);\n }\n }\n /* else {\r\n // sm2._wD('_onTimer: Warn for \"'+s.id+'\": '+(!s._a?'Could not find element. ':'')+(s.playState === 0?'playState bad, 0?':'playState = '+s.playState+', OK'));\r\n return false;\r\n }*/\n\n }\n\n return isNew;\n };\n\n this._get_html5_duration = function () {\n var instanceOptions = s._iO,\n // if audio object exists, use its duration - else, instance option duration (if provided - it's a hack, really, and should be retired) OR null\n d = s._a && s._a.duration ? s._a.duration * msecScale : instanceOptions && instanceOptions.duration ? instanceOptions.duration : null,\n result = d && !isNaN(d) && d !== Infinity ? d : null;\n return result;\n };\n\n this._apply_loop = function (a, nLoops) {\n /**\r\n * boolean instead of \"loop\", for webkit? - spec says string. http://www.w3.org/TR/html-markup/audio.html#audio.attrs.loop\r\n * note that loop is either off or infinite under HTML5, unlike Flash which allows arbitrary loop counts to be specified.\r\n */\n // \n if (!a.loop && nLoops > 1) {\n sm2._wD('Note: Native HTML5 looping is infinite.', 1);\n } // \n\n\n a.loop = nLoops > 1 ? 'loop' : '';\n };\n\n this._setup_html5 = function (options) {\n var instanceOptions = _mixin(s._iO, options),\n a = useGlobalHTML5Audio ? globalHTML5Audio : s._a,\n dURL = decodeURI(instanceOptions.url),\n sameURL;\n /**\r\n * \"First things first, I, Poppa...\" (reset the previous state of the old sound, if playing)\r\n * Fixes case with devices that can only play one sound at a time\r\n * Otherwise, other sounds in mid-play will be terminated without warning and in a stuck state\r\n */\n\n\n if (useGlobalHTML5Audio) {\n if (dURL === decodeURI(lastGlobalHTML5URL)) {\n // global HTML5 audio: re-use of URL\n sameURL = true;\n }\n } else if (dURL === decodeURI(lastURL)) {\n // options URL is the same as the \"last\" URL, and we used (loaded) it\n sameURL = true;\n }\n\n if (a) {\n if (a._s) {\n if (useGlobalHTML5Audio) {\n if (a._s && a._s.playState && !sameURL) {\n // global HTML5 audio case, and loading a new URL. stop the currently-playing one.\n a._s.stop();\n }\n } else if (!useGlobalHTML5Audio && dURL === decodeURI(lastURL)) {\n // non-global HTML5 reuse case: same url, ignore request\n s._apply_loop(a, instanceOptions.loops);\n\n return a;\n }\n }\n\n if (!sameURL) {\n // don't retain onPosition() stuff with new URLs.\n if (lastURL) {\n resetProperties(false);\n } // assign new HTML5 URL\n\n\n a.src = instanceOptions.url;\n s.url = instanceOptions.url;\n lastURL = instanceOptions.url;\n lastGlobalHTML5URL = instanceOptions.url;\n a._called_load = false;\n }\n } else {\n if (instanceOptions.autoLoad || instanceOptions.autoPlay) {\n s._a = new Audio(instanceOptions.url);\n\n s._a.load();\n } else {\n // null for stupid Opera 9.64 case\n s._a = isOpera && opera.version() < 10 ? new Audio(null) : new Audio();\n } // assign local reference\n\n\n a = s._a;\n a._called_load = false;\n\n if (useGlobalHTML5Audio) {\n globalHTML5Audio = a;\n }\n }\n\n s.isHTML5 = true; // store a ref on the track\n\n s._a = a; // store a ref on the audio\n\n a._s = s;\n add_html5_events();\n\n s._apply_loop(a, instanceOptions.loops);\n\n if (instanceOptions.autoLoad || instanceOptions.autoPlay) {\n s.load();\n } else {\n // early HTML5 implementation (non-standard)\n a.autobuffer = false; // standard ('none' is also an option.)\n\n a.preload = 'auto';\n }\n\n return a;\n };\n\n add_html5_events = function add_html5_events() {\n if (s._a._added_events) return false;\n var f;\n\n function add(oEvt, oFn, bCapture) {\n return s._a ? s._a.addEventListener(oEvt, oFn, bCapture || false) : null;\n }\n\n s._a._added_events = true;\n\n for (f in html5_events) {\n if (html5_events.hasOwnProperty(f)) {\n add(f, html5_events[f]);\n }\n }\n\n return true;\n };\n\n remove_html5_events = function remove_html5_events() {\n // Remove event listeners\n var f;\n\n function remove(oEvt, oFn, bCapture) {\n return s._a ? s._a.removeEventListener(oEvt, oFn, bCapture || false) : null;\n }\n\n sm2._wD(s.id + ': Removing event listeners');\n\n s._a._added_events = false;\n\n for (f in html5_events) {\n if (html5_events.hasOwnProperty(f)) {\n remove(f, html5_events[f]);\n }\n }\n };\n /**\r\n * Pseudo-private event internals\r\n * ------------------------------\r\n */\n\n\n this._onload = function (nSuccess) {\n var fN,\n // check for duration to prevent false positives from flash 8 when loading from cache.\n loadOK = !!nSuccess || !s.isHTML5 && fV === 8 && s.duration; // \n\n fN = s.id + ': ';\n\n sm2._wD(fN + (loadOK ? 'onload()' : 'Failed to load / invalid sound?' + (!s.duration ? ' Zero-length duration reported.' : ' -') + ' (' + s.url + ')'), loadOK ? 1 : 2);\n\n if (!loadOK && !s.isHTML5) {\n if (sm2.sandbox.noRemote === true) {\n sm2._wD(fN + str('noNet'), 1);\n }\n\n if (sm2.sandbox.noLocal === true) {\n sm2._wD(fN + str('noLocal'), 1);\n }\n } // \n\n\n s.loaded = loadOK;\n s.readyState = loadOK ? 3 : 2;\n\n s._onbufferchange(0);\n\n if (!loadOK && !s.isHTML5) {\n // note: no error code from Flash.\n s._onerror();\n }\n\n if (s._iO.onload) {\n wrapCallback(s, function () {\n s._iO.onload.apply(s, [loadOK]);\n });\n }\n\n return true;\n };\n\n this._onerror = function (errorCode, description) {\n // https://html.spec.whatwg.org/multipage/embedded-content.html#error-codes\n if (s._iO.onerror) {\n wrapCallback(s, function () {\n s._iO.onerror.apply(s, [errorCode, description]);\n });\n }\n };\n\n this._onbufferchange = function (nIsBuffering) {\n // ignore if not playing\n if (s.playState === 0) return false;\n if (nIsBuffering && s.isBuffering || !nIsBuffering && !s.isBuffering) return false;\n s.isBuffering = nIsBuffering === 1;\n\n if (s._iO.onbufferchange) {\n sm2._wD(s.id + ': Buffer state change: ' + nIsBuffering);\n\n s._iO.onbufferchange.apply(s, [nIsBuffering]);\n }\n\n return true;\n };\n /**\r\n * Playback may have stopped due to buffering, or related reason.\r\n * This state can be encountered on iOS < 6 when auto-play is blocked.\r\n */\n\n\n this._onsuspend = function () {\n if (s._iO.onsuspend) {\n sm2._wD(s.id + ': Playback suspended');\n\n s._iO.onsuspend.apply(s);\n }\n\n return true;\n };\n /**\r\n * flash 9/movieStar + RTMP-only method, should fire only once at most\r\n * at this point we just recreate failed sounds rather than trying to reconnect\r\n */\n\n\n this._onfailure = function (msg, level, code) {\n s.failures++;\n\n sm2._wD(s.id + ': Failure (' + s.failures + '): ' + msg);\n\n if (s._iO.onfailure && s.failures === 1) {\n s._iO.onfailure(msg, level, code);\n } else {\n sm2._wD(s.id + ': Ignoring failure');\n }\n };\n /**\r\n * flash 9/movieStar + RTMP-only method for unhandled warnings/exceptions from Flash\r\n * e.g., RTMP \"method missing\" warning (non-fatal) for getStreamLength on server\r\n */\n\n\n this._onwarning = function (msg, level, code) {\n if (s._iO.onwarning) {\n s._iO.onwarning(msg, level, code);\n }\n };\n\n this._onfinish = function () {\n // store local copy before it gets trashed...\n var io_onfinish = s._iO.onfinish;\n\n s._onbufferchange(0);\n\n s._resetOnPosition(0); // reset some state items\n\n\n if (s.instanceCount) {\n s.instanceCount--;\n\n if (!s.instanceCount) {\n // remove onPosition listeners, if any\n detachOnPosition(); // reset instance options\n\n s.playState = 0;\n s.paused = false;\n s.instanceCount = 0;\n s.instanceOptions = {};\n s._iO = {};\n stop_html5_timer(); // reset position, too\n\n if (s.isHTML5) {\n s.position = 0;\n }\n }\n\n if (!s.instanceCount || s._iO.multiShotEvents) {\n // fire onfinish for last, or every instance\n if (io_onfinish) {\n sm2._wD(s.id + ': onfinish()');\n\n wrapCallback(s, function () {\n io_onfinish.apply(s);\n });\n }\n }\n }\n };\n\n this._whileloading = function (nBytesLoaded, nBytesTotal, nDuration, nBufferLength) {\n var instanceOptions = s._iO;\n s.bytesLoaded = nBytesLoaded;\n s.bytesTotal = nBytesTotal;\n s.duration = Math.floor(nDuration);\n s.bufferLength = nBufferLength;\n\n if (!s.isHTML5 && !instanceOptions.isMovieStar) {\n if (instanceOptions.duration) {\n // use duration from options, if specified and larger. nobody should be specifying duration in options, actually, and it should be retired.\n s.durationEstimate = s.duration > instanceOptions.duration ? s.duration : instanceOptions.duration;\n } else {\n s.durationEstimate = parseInt(s.bytesTotal / s.bytesLoaded * s.duration, 10);\n }\n } else {\n s.durationEstimate = s.duration;\n } // for flash, reflect sequential-load-style buffering\n\n\n if (!s.isHTML5) {\n s.buffered = [{\n start: 0,\n end: s.duration\n }];\n } // allow whileloading to fire even if \"load\" fired under HTML5, due to HTTP range/partials\n\n\n if ((s.readyState !== 3 || s.isHTML5) && instanceOptions.whileloading) {\n instanceOptions.whileloading.apply(s);\n }\n };\n\n this._whileplaying = function (nPosition, oPeakData, oWaveformDataLeft, oWaveformDataRight, oEQData) {\n var instanceOptions = s._iO,\n eqLeft; // flash safety net\n\n if (isNaN(nPosition) || nPosition === null) return false; // Safari HTML5 play() may return small -ve values when starting from position: 0, eg. -50.120396875. Unexpected/invalid per W3, I think. Normalize to 0.\n\n s.position = Math.max(0, nPosition);\n\n s._processOnPosition();\n\n if (!s.isHTML5 && fV > 8) {\n if (instanceOptions.usePeakData && oPeakData !== _undefined && oPeakData) {\n s.peakData = {\n left: oPeakData.leftPeak,\n right: oPeakData.rightPeak\n };\n }\n\n if (instanceOptions.useWaveformData && oWaveformDataLeft !== _undefined && oWaveformDataLeft) {\n s.waveformData = {\n left: oWaveformDataLeft.split(','),\n right: oWaveformDataRight.split(',')\n };\n }\n\n if (instanceOptions.useEQData) {\n if (oEQData !== _undefined && oEQData && oEQData.leftEQ) {\n eqLeft = oEQData.leftEQ.split(',');\n s.eqData = eqLeft;\n s.eqData.left = eqLeft;\n\n if (oEQData.rightEQ !== _undefined && oEQData.rightEQ) {\n s.eqData.right = oEQData.rightEQ.split(',');\n }\n }\n }\n }\n\n if (s.playState === 1) {\n // special case/hack: ensure buffering is false if loading from cache (and not yet started)\n if (!s.isHTML5 && fV === 8 && !s.position && s.isBuffering) {\n s._onbufferchange(0);\n }\n\n if (instanceOptions.whileplaying) {\n // flash may call after actual finish\n instanceOptions.whileplaying.apply(s);\n }\n }\n\n return true;\n };\n\n this._oncaptiondata = function (oData) {\n /**\r\n * internal: flash 9 + NetStream (MovieStar/RTMP-only) feature\r\n *\r\n * @param {object} oData\r\n */\n sm2._wD(s.id + ': Caption data received.');\n\n s.captiondata = oData;\n\n if (s._iO.oncaptiondata) {\n s._iO.oncaptiondata.apply(s, [oData]);\n }\n };\n\n this._onmetadata = function (oMDProps, oMDData) {\n /**\r\n * internal: flash 9 + NetStream (MovieStar/RTMP-only) feature\r\n * RTMP may include song title, MovieStar content may include encoding info\r\n *\r\n * @param {array} oMDProps (names)\r\n * @param {array} oMDData (values)\r\n */\n sm2._wD(s.id + ': Metadata received.');\n\n var oData = {},\n i,\n j;\n\n for (i = 0, j = oMDProps.length; i < j; i++) {\n oData[oMDProps[i]] = oMDData[i];\n }\n\n s.metadata = oData;\n\n if (s._iO.onmetadata) {\n s._iO.onmetadata.call(s, s.metadata);\n }\n };\n\n this._onid3 = function (oID3Props, oID3Data) {\n /**\r\n * internal: flash 8 + flash 9 ID3 feature\r\n * may include artist, song title etc.\r\n *\r\n * @param {array} oID3Props (names)\r\n * @param {array} oID3Data (values)\r\n */\n sm2._wD(s.id + ': ID3 data received.');\n\n var oData = [],\n i,\n j;\n\n for (i = 0, j = oID3Props.length; i < j; i++) {\n oData[oID3Props[i]] = oID3Data[i];\n }\n\n s.id3 = _mixin(s.id3, oData);\n\n if (s._iO.onid3) {\n s._iO.onid3.apply(s);\n }\n }; // flash/RTMP-only\n\n\n this._onconnect = function (bSuccess) {\n bSuccess = bSuccess === 1;\n\n sm2._wD(s.id + ': ' + (bSuccess ? 'Connected.' : 'Failed to connect? - ' + s.url), bSuccess ? 1 : 2);\n\n s.connected = bSuccess;\n\n if (bSuccess) {\n s.failures = 0;\n\n if (idCheck(s.id)) {\n if (s.getAutoPlay()) {\n // only update the play state if auto playing\n s.play(_undefined, s.getAutoPlay());\n } else if (s._iO.autoLoad) {\n s.load();\n }\n }\n\n if (s._iO.onconnect) {\n s._iO.onconnect.apply(s, [bSuccess]);\n }\n }\n };\n\n this._ondataerror = function (sError) {\n // flash 9 wave/eq data handler\n // hack: called at start, and end from flash at/after onfinish()\n if (s.playState > 0) {\n sm2._wD(s.id + ': Data error: ' + sError);\n\n if (s._iO.ondataerror) {\n s._iO.ondataerror.apply(s);\n }\n }\n }; // \n\n\n this._debug(); // \n\n }; // SMSound()\n\n /**\r\n * Private SoundManager internals\r\n * ------------------------------\r\n */\n\n\n getDocument = function getDocument() {\n return doc.body || doc.getElementsByTagName('div')[0];\n };\n\n id = function id(sID) {\n return doc.getElementById(sID);\n };\n\n _mixin = function mixin(oMain, oAdd) {\n // non-destructive merge\n var o1 = oMain || {},\n o2,\n o; // if unspecified, o2 is the default options object\n\n o2 = oAdd === _undefined ? sm2.defaultOptions : oAdd;\n\n for (o in o2) {\n if (o2.hasOwnProperty(o) && o1[o] === _undefined) {\n if (_typeof(o2[o]) !== 'object' || o2[o] === null) {\n // assign directly\n o1[o] = o2[o];\n } else {\n // recurse through o2\n o1[o] = _mixin(o1[o], o2[o]);\n }\n }\n }\n\n return o1;\n };\n\n wrapCallback = function wrapCallback(oSound, callback) {\n /**\r\n * 03/03/2013: Fix for Flash Player 11.6.602.171 + Flash 8 (flashVersion = 8) SWF issue\r\n * setTimeout() fix for certain SMSound callbacks like onload() and onfinish(), where subsequent calls like play() and load() fail when Flash Player 11.6.602.171 is installed, and using soundManager with flashVersion = 8 (which is the default).\r\n * Not sure of exact cause. Suspect race condition and/or invalid (NaN-style) position argument trickling down to the next JS -> Flash _start() call, in the play() case.\r\n * Fix: setTimeout() to yield, plus safer null / NaN checking on position argument provided to Flash.\r\n * https://getsatisfaction.com/schillmania/topics/recent_chrome_update_seems_to_have_broken_my_sm2_audio_player\r\n */\n if (!oSound.isHTML5 && fV === 8) {\n window.setTimeout(callback, 0);\n } else {\n callback();\n }\n }; // additional soundManager properties that soundManager.setup() will accept\n\n\n extraOptions = {\n onready: 1,\n ontimeout: 1,\n defaultOptions: 1,\n flash9Options: 1,\n movieStarOptions: 1\n };\n\n _assign = function assign(o, oParent) {\n /**\r\n * recursive assignment of properties, soundManager.setup() helper\r\n * allows property assignment based on whitelist\r\n */\n var i,\n result = true,\n hasParent = oParent !== _undefined,\n setupOptions = sm2.setupOptions,\n bonusOptions = extraOptions; // \n // if soundManager.setup() called, show accepted parameters.\n\n if (o === _undefined) {\n result = [];\n\n for (i in setupOptions) {\n if (setupOptions.hasOwnProperty(i)) {\n result.push(i);\n }\n }\n\n for (i in bonusOptions) {\n if (bonusOptions.hasOwnProperty(i)) {\n if (_typeof(sm2[i]) === 'object') {\n result.push(i + ': {...}');\n } else if (sm2[i] instanceof Function) {\n result.push(i + ': function() {...}');\n } else {\n result.push(i);\n }\n }\n }\n\n sm2._wD(str('setup', result.join(', ')));\n\n return false;\n } // \n\n\n for (i in o) {\n if (o.hasOwnProperty(i)) {\n // if not an {object} we want to recurse through...\n if (_typeof(o[i]) !== 'object' || o[i] === null || o[i] instanceof Array || o[i] instanceof RegExp) {\n // check \"allowed\" options\n if (hasParent && bonusOptions[oParent] !== _undefined) {\n // valid recursive / nested object option, eg., { defaultOptions: { volume: 50 } }\n sm2[oParent][i] = o[i];\n } else if (setupOptions[i] !== _undefined) {\n // special case: assign to setupOptions object, which soundManager property references\n sm2.setupOptions[i] = o[i]; // assign directly to soundManager, too\n\n sm2[i] = o[i];\n } else if (bonusOptions[i] === _undefined) {\n // invalid or disallowed parameter. complain.\n complain(str(sm2[i] === _undefined ? 'setupUndef' : 'setupError', i), 2);\n result = false;\n } else if (sm2[i] instanceof Function) {\n /**\r\n * valid extraOptions (bonusOptions) parameter.\r\n * is it a method, like onready/ontimeout? call it.\r\n * multiple parameters should be in an array, eg. soundManager.setup({onready: [myHandler, myScope]});\r\n */\n sm2[i].apply(sm2, o[i] instanceof Array ? o[i] : [o[i]]);\n } else {\n // good old-fashioned direct assignment\n sm2[i] = o[i];\n }\n } else if (bonusOptions[i] === _undefined) {\n // recursion case, eg., { defaultOptions: { ... } }\n // invalid or disallowed parameter. complain.\n complain(str(sm2[i] === _undefined ? 'setupUndef' : 'setupError', i), 2);\n result = false;\n } else {\n // recurse through object\n return _assign(o[i], i);\n }\n }\n }\n\n return result;\n };\n\n function preferFlashCheck(kind) {\n // whether flash should play a given type\n return sm2.preferFlash && hasFlash && !sm2.ignoreFlash && sm2.flash[kind] !== _undefined && sm2.flash[kind];\n }\n /**\r\n * Internal DOM2-level event helpers\r\n * ---------------------------------\r\n */\n\n\n event = function () {\n // normalize event methods\n var old = window.attachEvent,\n evt = {\n add: old ? 'attachEvent' : 'addEventListener',\n remove: old ? 'detachEvent' : 'removeEventListener'\n }; // normalize \"on\" event prefix, optional capture argument\n\n function getArgs(oArgs) {\n var args = slice.call(oArgs),\n len = args.length;\n\n if (old) {\n // prefix\n args[1] = 'on' + args[1];\n\n if (len > 3) {\n // no capture\n args.pop();\n }\n } else if (len === 3) {\n args.push(false);\n }\n\n return args;\n }\n\n function apply(args, sType) {\n // normalize and call the event method, with the proper arguments\n var element = args.shift(),\n method = [evt[sType]];\n\n if (old) {\n // old IE can't do apply().\n element[method](args[0], args[1]);\n } else {\n element[method].apply(element, args);\n }\n }\n\n function add() {\n apply(getArgs(arguments), 'add');\n }\n\n function remove() {\n apply(getArgs(arguments), 'remove');\n }\n\n return {\n add: add,\n remove: remove\n };\n }();\n /**\r\n * Internal HTML5 event handling\r\n * -----------------------------\r\n */\n\n\n function html5_event(oFn) {\n // wrap html5 event handlers so we don't call them on destroyed and/or unloaded sounds\n return function (e) {\n var s = this._s,\n result;\n\n if (!s || !s._a) {\n // \n if (s && s.id) {\n sm2._wD(s.id + ': Ignoring ' + e.type);\n } else {\n sm2._wD(h5 + 'Ignoring ' + e.type);\n } // \n\n\n result = null;\n } else {\n result = oFn.call(this, e);\n }\n\n return result;\n };\n }\n\n html5_events = {\n // HTML5 event-name-to-handler map\n abort: html5_event(function () {\n sm2._wD(this._s.id + ': abort');\n }),\n // enough has loaded to play\n canplay: html5_event(function () {\n var s = this._s,\n position1K;\n\n if (s._html5_canplay) {\n // this event has already fired. ignore.\n return;\n }\n\n s._html5_canplay = true;\n\n sm2._wD(s.id + ': canplay');\n\n s._onbufferchange(0); // position according to instance options\n\n\n position1K = s._iO.position !== _undefined && !isNaN(s._iO.position) ? s._iO.position / msecScale : null; // set the position if position was provided before the sound loaded\n\n if (this.currentTime !== position1K) {\n sm2._wD(s.id + ': canplay: Setting position to ' + position1K);\n\n try {\n this.currentTime = position1K;\n } catch (ee) {\n sm2._wD(s.id + ': canplay: Setting position of ' + position1K + ' failed: ' + ee.message, 2);\n }\n } // hack for HTML5 from/to case\n\n\n if (s._iO._oncanplay) {\n s._iO._oncanplay();\n }\n }),\n canplaythrough: html5_event(function () {\n var s = this._s;\n\n if (!s.loaded) {\n s._onbufferchange(0);\n\n s._whileloading(s.bytesLoaded, s.bytesTotal, s._get_html5_duration());\n\n s._onload(true);\n }\n }),\n durationchange: html5_event(function () {\n // durationchange may fire at various times, probably the safest way to capture accurate/final duration.\n var s = this._s,\n duration;\n duration = s._get_html5_duration();\n\n if (!isNaN(duration) && duration !== s.duration) {\n sm2._wD(this._s.id + ': durationchange (' + duration + ')' + (s.duration ? ', previously ' + s.duration : ''));\n\n s.durationEstimate = s.duration = duration;\n }\n }),\n // TODO: Reserved for potential use\n\n /*\r\n emptied: html5_event(function() {\r\n sm2._wD(this._s.id + ': emptied');\r\n }),\r\n */\n ended: html5_event(function () {\n var s = this._s;\n\n sm2._wD(s.id + ': ended');\n\n s._onfinish();\n }),\n error: html5_event(function () {\n var description = html5ErrorCodes[this.error.code] || null;\n\n sm2._wD(this._s.id + ': HTML5 error, code ' + this.error.code + (description ? ' (' + description + ')' : ''));\n\n this._s._onload(false);\n\n this._s._onerror(this.error.code, description);\n }),\n loadeddata: html5_event(function () {\n var s = this._s;\n\n sm2._wD(s.id + ': loadeddata'); // safari seems to nicely report progress events, eventually totalling 100%\n\n\n if (!s._loaded && !isSafari) {\n s.duration = s._get_html5_duration();\n }\n }),\n loadedmetadata: html5_event(function () {\n sm2._wD(this._s.id + ': loadedmetadata');\n }),\n loadstart: html5_event(function () {\n sm2._wD(this._s.id + ': loadstart'); // assume buffering at first\n\n\n this._s._onbufferchange(1);\n }),\n play: html5_event(function () {\n // sm2._wD(this._s.id + ': play()');\n // once play starts, no buffering\n this._s._onbufferchange(0);\n }),\n playing: html5_event(function () {\n sm2._wD(this._s.id + ': playing ' + String.fromCharCode(9835)); // once play starts, no buffering\n\n\n this._s._onbufferchange(0);\n }),\n progress: html5_event(function (e) {\n // note: can fire repeatedly after \"loaded\" event, due to use of HTTP range/partials\n var s = this._s,\n i,\n j,\n progStr,\n buffered = 0,\n isProgress = e.type === 'progress',\n ranges = e.target.buffered,\n // firefox 3.6 implements e.loaded/total (bytes)\n loaded = e.loaded || 0,\n total = e.total || 1; // reset the \"buffered\" (loaded byte ranges) array\n\n s.buffered = [];\n\n if (ranges && ranges.length) {\n // if loaded is 0, try TimeRanges implementation as % of load\n // https://developer.mozilla.org/en/DOM/TimeRanges\n // re-build \"buffered\" array\n // HTML5 returns seconds. SM2 API uses msec for setPosition() etc., whether Flash or HTML5.\n for (i = 0, j = ranges.length; i < j; i++) {\n s.buffered.push({\n start: ranges.start(i) * msecScale,\n end: ranges.end(i) * msecScale\n });\n } // use the last value locally\n\n\n buffered = (ranges.end(0) - ranges.start(0)) * msecScale; // linear case, buffer sum; does not account for seeking and HTTP partials / byte ranges\n\n loaded = Math.min(1, buffered / (e.target.duration * msecScale)); // \n\n if (isProgress && ranges.length > 1) {\n progStr = [];\n j = ranges.length;\n\n for (i = 0; i < j; i++) {\n progStr.push(e.target.buffered.start(i) * msecScale + '-' + e.target.buffered.end(i) * msecScale);\n }\n\n sm2._wD(this._s.id + ': progress, timeRanges: ' + progStr.join(', '));\n }\n\n if (isProgress && !isNaN(loaded)) {\n sm2._wD(this._s.id + ': progress, ' + Math.floor(loaded * 100) + '% loaded');\n } // \n\n }\n\n if (!isNaN(loaded)) {\n // TODO: prevent calls with duplicate values.\n s._whileloading(loaded, total, s._get_html5_duration());\n\n if (loaded && total && loaded === total) {\n // in case \"onload\" doesn't fire (eg. gecko 1.9.2)\n html5_events.canplaythrough.call(this, e);\n }\n }\n }),\n ratechange: html5_event(function () {\n sm2._wD(this._s.id + ': ratechange');\n }),\n suspend: html5_event(function (e) {\n // download paused/stopped, may have finished (eg. onload)\n var s = this._s;\n\n sm2._wD(this._s.id + ': suspend');\n\n html5_events.progress.call(this, e);\n\n s._onsuspend();\n }),\n stalled: html5_event(function () {\n sm2._wD(this._s.id + ': stalled');\n }),\n timeupdate: html5_event(function () {\n this._s._onTimer();\n }),\n waiting: html5_event(function () {\n var s = this._s; // see also: seeking\n\n sm2._wD(this._s.id + ': waiting'); // playback faster than download rate, etc.\n\n\n s._onbufferchange(1);\n })\n };\n\n html5OK = function html5OK(iO) {\n // playability test based on URL or MIME type\n var result;\n\n if (!iO || !iO.type && !iO.url && !iO.serverURL) {\n // nothing to check\n result = false;\n } else if (iO.serverURL || iO.type && preferFlashCheck(iO.type)) {\n // RTMP, or preferring flash\n result = false;\n } else {\n // Use type, if specified. Pass data: URIs to HTML5. If HTML5-only mode, no other options, so just give 'er\n result = iO.type ? html5CanPlay({\n type: iO.type\n }) : html5CanPlay({\n url: iO.url\n }) || sm2.html5Only || iO.url.match(/data:/i);\n }\n\n return result;\n };\n\n html5Unload = function html5Unload(oAudio) {\n /**\r\n * Internal method: Unload media, and cancel any current/pending network requests.\r\n * Firefox can load an empty URL, which allegedly destroys the decoder and stops the download.\r\n * https://developer.mozilla.org/En/Using_audio_and_video_in_Firefox#Stopping_the_download_of_media\r\n * However, Firefox has been seen loading a relative URL from '' and thus requesting the hosting page on unload.\r\n * Other UA behaviour is unclear, so everyone else gets an about:blank-style URL.\r\n */\n var url;\n\n if (oAudio) {\n // Firefox and Chrome accept short WAVe data: URIs. Chome dislikes audio/wav, but accepts audio/wav for data: MIME.\n // Desktop Safari complains / fails on data: URI, so it gets about:blank.\n url = isSafari ? emptyURL : sm2.html5.canPlayType('audio/wav') ? emptyWAV : emptyURL;\n oAudio.src = url; // reset some state, too\n\n if (oAudio._called_unload !== _undefined) {\n oAudio._called_load = false;\n }\n }\n\n if (useGlobalHTML5Audio) {\n // ensure URL state is trashed, also\n lastGlobalHTML5URL = null;\n }\n\n return url;\n };\n\n html5CanPlay = function html5CanPlay(o) {\n /**\r\n * Try to find MIME, test and return truthiness\r\n * o = {\r\n * url: '/path/to/an.mp3',\r\n * type: 'audio/mp3'\r\n * }\r\n */\n if (!sm2.useHTML5Audio || !sm2.hasHTML5) return false;\n var url = o.url || null,\n mime = o.type || null,\n aF = sm2.audioFormats,\n result,\n offset,\n fileExt,\n item; // account for known cases like audio/mp3\n\n if (mime && sm2.html5[mime] !== _undefined) return sm2.html5[mime] && !preferFlashCheck(mime);\n\n if (!html5Ext) {\n html5Ext = [];\n\n for (item in aF) {\n if (aF.hasOwnProperty(item)) {\n html5Ext.push(item);\n\n if (aF[item].related) {\n html5Ext = html5Ext.concat(aF[item].related);\n }\n }\n }\n\n html5Ext = new RegExp('\\\\.(' + html5Ext.join('|') + ')(\\\\?.*)?$', 'i');\n } // TODO: Strip URL queries, etc.\n\n\n fileExt = url ? url.toLowerCase().match(html5Ext) : null;\n\n if (!fileExt || !fileExt.length) {\n if (!mime) {\n result = false;\n } else {\n // audio/mp3 -> mp3, result should be known\n offset = mime.indexOf(';'); // strip \"audio/X; codecs...\"\n\n fileExt = (offset !== -1 ? mime.substr(0, offset) : mime).substr(6);\n }\n } else {\n // match the raw extension name - \"mp3\", for example\n fileExt = fileExt[1];\n }\n\n if (fileExt && sm2.html5[fileExt] !== _undefined) {\n // result known\n result = sm2.html5[fileExt] && !preferFlashCheck(fileExt);\n } else {\n mime = 'audio/' + fileExt;\n result = sm2.html5.canPlayType({\n type: mime\n });\n sm2.html5[fileExt] = result; // sm2._wD('canPlayType, found result: ' + result);\n\n result = result && sm2.html5[mime] && !preferFlashCheck(mime);\n }\n\n return result;\n };\n\n testHTML5 = function testHTML5() {\n /**\r\n * Internal: Iterates over audioFormats, determining support eg. audio/mp3, audio/mpeg and so on\r\n * assigns results to html5[] and flash[].\r\n */\n if (!sm2.useHTML5Audio || !sm2.hasHTML5) {\n // without HTML5, we need Flash.\n sm2.html5.usingFlash = true;\n needsFlash = true;\n return false;\n } // double-whammy: Opera 9.64 throws WRONG_ARGUMENTS_ERR if no parameter passed to Audio(), and Webkit + iOS happily tries to load \"null\" as a URL. :/\n\n\n var a = Audio !== _undefined ? isOpera && opera.version() < 10 ? new Audio(null) : new Audio() : null,\n item,\n lookup,\n support = {},\n aF,\n i;\n\n function cp(m) {\n var canPlay,\n j,\n result = false,\n isOK = false;\n if (!a || typeof a.canPlayType !== 'function') return result;\n\n if (m instanceof Array) {\n // iterate through all mime types, return any successes\n for (i = 0, j = m.length; i < j; i++) {\n if (sm2.html5[m[i]] || a.canPlayType(m[i]).match(sm2.html5Test)) {\n isOK = true;\n sm2.html5[m[i]] = true; // note flash support, too\n\n sm2.flash[m[i]] = !!m[i].match(flashMIME);\n }\n }\n\n result = isOK;\n } else {\n canPlay = a && typeof a.canPlayType === 'function' ? a.canPlayType(m) : false;\n result = !!(canPlay && canPlay.match(sm2.html5Test));\n }\n\n return result;\n } // test all registered formats + codecs\n\n\n aF = sm2.audioFormats;\n\n for (item in aF) {\n if (aF.hasOwnProperty(item)) {\n lookup = 'audio/' + item;\n support[item] = cp(aF[item].type); // write back generic type too, eg. audio/mp3\n\n support[lookup] = support[item]; // assign flash\n\n if (item.match(flashMIME)) {\n sm2.flash[item] = true;\n sm2.flash[lookup] = true;\n } else {\n sm2.flash[item] = false;\n sm2.flash[lookup] = false;\n } // assign result to related formats, too\n\n\n if (aF[item] && aF[item].related) {\n for (i = aF[item].related.length - 1; i >= 0; i--) {\n // eg. audio/m4a\n support['audio/' + aF[item].related[i]] = support[item];\n sm2.html5[aF[item].related[i]] = support[item];\n sm2.flash[aF[item].related[i]] = support[item];\n }\n }\n }\n }\n\n support.canPlayType = a ? cp : null;\n sm2.html5 = _mixin(sm2.html5, support);\n sm2.html5.usingFlash = featureCheck();\n needsFlash = sm2.html5.usingFlash;\n return true;\n };\n\n strings = {\n // \n notReady: 'Unavailable - wait until onready() has fired.',\n notOK: 'Audio support is not available.',\n domError: sm + 'exception caught while appending SWF to DOM.',\n spcWmode: 'Removing wmode, preventing known SWF loading issue(s)',\n swf404: smc + 'Verify that %s is a valid path.',\n tryDebug: 'Try ' + sm + '.debugFlash = true for more security details (output goes to SWF.)',\n checkSWF: 'See SWF output for more debug info.',\n localFail: smc + 'Non-HTTP page (' + doc.location.protocol + ' URL?) Review Flash player security settings for this special case:\\nhttp://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html\\nMay need to add/allow path, eg. c:/sm2/ or /users/me/sm2/',\n waitFocus: smc + 'Special case: Waiting for SWF to load with window focus...',\n waitForever: smc + 'Waiting indefinitely for Flash (will recover if unblocked)...',\n waitSWF: smc + 'Waiting for 100% SWF load...',\n needFunction: smc + 'Function object expected for %s',\n badID: 'Sound ID \"%s\" should be a string, starting with a non-numeric character',\n currentObj: smc + '_debug(): Current sound objects',\n waitOnload: smc + 'Waiting for window.onload()',\n docLoaded: smc + 'Document already loaded',\n onload: smc + 'initComplete(): calling soundManager.onload()',\n onloadOK: sm + '.onload() complete',\n didInit: smc + 'init(): Already called?',\n secNote: 'Flash security note: Network/internet URLs will not load due to security restrictions. Access can be configured via Flash Player Global Security Settings Page: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html',\n badRemove: smc + 'Failed to remove Flash node.',\n shutdown: sm + '.disable(): Shutting down',\n queue: smc + 'Queueing %s handler',\n smError: 'SMSound.load(): Exception: JS-Flash communication failed, or JS error.',\n fbTimeout: 'No flash response, applying .' + swfCSS.swfTimedout + ' CSS...',\n fbLoaded: 'Flash loaded',\n fbHandler: smc + 'flashBlockHandler()',\n manURL: 'SMSound.load(): Using manually-assigned URL',\n onURL: sm + '.load(): current URL already assigned.',\n badFV: sm + '.flashVersion must be 8 or 9. \"%s\" is invalid. Reverting to %s.',\n as2loop: 'Note: Setting stream:false so looping can work (flash 8 limitation)',\n noNSLoop: 'Note: Looping not implemented for MovieStar formats',\n needfl9: 'Note: Switching to flash 9, required for MP4 formats.',\n mfTimeout: 'Setting flashLoadTimeout = 0 (infinite) for off-screen, mobile flash case',\n needFlash: smc + 'Fatal error: Flash is needed to play some required formats, but is not available.',\n gotFocus: smc + 'Got window focus.',\n policy: 'Enabling usePolicyFile for data access',\n setup: sm + '.setup(): allowed parameters: %s',\n setupError: sm + '.setup(): \"%s\" cannot be assigned with this method.',\n setupUndef: sm + '.setup(): Could not find option \"%s\"',\n setupLate: sm + '.setup(): url, flashVersion and html5Test property changes will not take effect until reboot().',\n noURL: smc + 'Flash URL required. Call soundManager.setup({url:...}) to get started.',\n sm2Loaded: 'SoundManager 2: Ready. ' + String.fromCharCode(10003),\n reset: sm + '.reset(): Removing event callbacks',\n mobileUA: 'Mobile UA detected, preferring HTML5 by default.',\n globalHTML5: 'Using singleton HTML5 Audio() pattern for this device.',\n ignoreMobile: 'Ignoring mobile restrictions for this device.' // \n\n };\n\n str = function str() {\n // internal string replace helper.\n // arguments: o [,items to replace]\n // \n var args, i, j, o, sstr; // real array, please\n\n args = slice.call(arguments); // first argument\n\n o = args.shift();\n sstr = strings && strings[o] ? strings[o] : '';\n\n if (sstr && args && args.length) {\n for (i = 0, j = args.length; i < j; i++) {\n sstr = sstr.replace('%s', args[i]);\n }\n }\n\n return sstr; // \n };\n\n loopFix = function loopFix(sOpt) {\n // flash 8 requires stream = false for looping to work\n if (fV === 8 && sOpt.loops > 1 && sOpt.stream) {\n _wDS('as2loop');\n\n sOpt.stream = false;\n }\n\n return sOpt;\n };\n\n policyFix = function policyFix(sOpt, sPre) {\n if (sOpt && !sOpt.usePolicyFile && (sOpt.onid3 || sOpt.usePeakData || sOpt.useWaveformData || sOpt.useEQData)) {\n sm2._wD((sPre || '') + str('policy'));\n\n sOpt.usePolicyFile = true;\n }\n\n return sOpt;\n };\n\n complain = function complain(sMsg) {\n // \n if (hasConsole && console.warn !== _undefined) {\n console.warn(sMsg);\n } else {\n sm2._wD(sMsg);\n } // \n\n };\n\n doNothing = function doNothing() {\n return false;\n };\n\n disableObject = function disableObject(o) {\n var oProp;\n\n for (oProp in o) {\n if (o.hasOwnProperty(oProp) && typeof o[oProp] === 'function') {\n o[oProp] = doNothing;\n }\n }\n\n oProp = null;\n };\n\n failSafely = function failSafely(bNoDisable) {\n // general failure exception handler\n if (bNoDisable === _undefined) {\n bNoDisable = false;\n }\n\n if (disabled || bNoDisable) {\n sm2.disable(bNoDisable);\n }\n };\n\n normalizeMovieURL = function normalizeMovieURL(movieURL) {\n var urlParams = null,\n url;\n\n if (movieURL) {\n if (movieURL.match(/\\.swf(\\?.*)?$/i)) {\n urlParams = movieURL.substr(movieURL.toLowerCase().lastIndexOf('.swf?') + 4); // assume user knows what they're doing\n\n if (urlParams) return movieURL;\n } else if (movieURL.lastIndexOf('/') !== movieURL.length - 1) {\n // append trailing slash, if needed\n movieURL += '/';\n }\n }\n\n url = (movieURL && movieURL.lastIndexOf('/') !== -1 ? movieURL.substr(0, movieURL.lastIndexOf('/') + 1) : './') + sm2.movieURL;\n\n if (sm2.noSWFCache) {\n url += '?ts=' + new Date().getTime();\n }\n\n return url;\n };\n\n setVersionInfo = function setVersionInfo() {\n // short-hand for internal use\n fV = parseInt(sm2.flashVersion, 10);\n\n if (fV !== 8 && fV !== 9) {\n sm2._wD(str('badFV', fV, defaultFlashVersion));\n\n sm2.flashVersion = fV = defaultFlashVersion;\n } // debug flash movie, if applicable\n\n\n var isDebug = sm2.debugMode || sm2.debugFlash ? '_debug.swf' : '.swf';\n\n if (sm2.useHTML5Audio && !sm2.html5Only && sm2.audioFormats.mp4.required && fV < 9) {\n sm2._wD(str('needfl9'));\n\n sm2.flashVersion = fV = 9;\n }\n\n sm2.version = sm2.versionNumber + (sm2.html5Only ? ' (HTML5-only mode)' : fV === 9 ? ' (AS3/Flash 9)' : ' (AS2/Flash 8)'); // set up default options\n\n if (fV > 8) {\n // +flash 9 base options\n sm2.defaultOptions = _mixin(sm2.defaultOptions, sm2.flash9Options);\n sm2.features.buffering = true; // +moviestar support\n\n sm2.defaultOptions = _mixin(sm2.defaultOptions, sm2.movieStarOptions);\n sm2.filePatterns.flash9 = new RegExp('\\\\.(mp3|' + netStreamTypes.join('|') + ')(\\\\?.*)?$', 'i');\n sm2.features.movieStar = true;\n } else {\n sm2.features.movieStar = false;\n } // regExp for flash canPlay(), etc.\n\n\n sm2.filePattern = sm2.filePatterns[fV !== 8 ? 'flash9' : 'flash8']; // if applicable, use _debug versions of SWFs\n\n sm2.movieURL = (fV === 8 ? 'soundmanager2.swf' : 'soundmanager2_flash9.swf').replace('.swf', isDebug);\n sm2.features.peakData = sm2.features.waveformData = sm2.features.eqData = fV > 8;\n };\n\n setPolling = function setPolling(bPolling, bHighPerformance) {\n if (!flash) {\n return;\n }\n\n flash._setPolling(bPolling, bHighPerformance);\n };\n\n initDebug = function initDebug() {\n // starts debug mode, creating output
for UAs without console object\n // allow force of debug mode via URL\n // \n if (sm2.debugURLParam.test(wl)) {\n sm2.setupOptions.debugMode = sm2.debugMode = true;\n }\n\n if (id(sm2.debugID)) {\n return;\n }\n\n var oD, oDebug, oTarget, oToggle, tmp;\n\n if (sm2.debugMode && !id(sm2.debugID) && (!hasConsole || !sm2.useConsole || !sm2.consoleOnly)) {\n oD = doc.createElement('div');\n oD.id = sm2.debugID + '-toggle';\n oToggle = {\n position: 'fixed',\n bottom: '0px',\n right: '0px',\n width: '1.2em',\n height: '1.2em',\n lineHeight: '1.2em',\n margin: '2px',\n textAlign: 'center',\n border: '1px solid #999',\n cursor: 'pointer',\n background: '#fff',\n color: '#333',\n zIndex: 10001\n };\n oD.appendChild(doc.createTextNode('-'));\n oD.onclick = toggleDebug;\n oD.title = 'Toggle SM2 debug console';\n\n if (ua.match(/msie 6/i)) {\n oD.style.position = 'absolute';\n oD.style.cursor = 'hand';\n }\n\n for (tmp in oToggle) {\n if (oToggle.hasOwnProperty(tmp)) {\n oD.style[tmp] = oToggle[tmp];\n }\n }\n\n oDebug = doc.createElement('div');\n oDebug.id = sm2.debugID;\n oDebug.style.display = sm2.debugMode ? 'block' : 'none';\n\n if (sm2.debugMode && !id(oD.id)) {\n try {\n oTarget = getDocument();\n oTarget.appendChild(oD);\n } catch (e2) {\n throw new Error(str('domError') + ' \\n' + e2.toString());\n }\n\n oTarget.appendChild(oDebug);\n }\n }\n\n oTarget = null; // \n };\n\n idCheck = this.getSoundById; // \n\n _wDS = function _wDS(o, errorLevel) {\n return !o ? '' : sm2._wD(str(o), errorLevel);\n };\n\n toggleDebug = function toggleDebug() {\n var o = id(sm2.debugID),\n oT = id(sm2.debugID + '-toggle');\n\n if (!o) {\n return;\n }\n\n if (debugOpen) {\n // minimize\n oT.innerHTML = '+';\n o.style.display = 'none';\n } else {\n oT.innerHTML = '-';\n o.style.display = 'block';\n }\n\n debugOpen = !debugOpen;\n };\n\n debugTS = function debugTS(sEventType, bSuccess, sMessage) {\n // troubleshooter debug hooks\n if (window.sm2Debugger !== _undefined) {\n try {\n sm2Debugger.handleEvent(sEventType, bSuccess, sMessage);\n } catch (e) {\n // oh well\n return false;\n }\n }\n\n return true;\n }; // \n\n\n getSWFCSS = function getSWFCSS() {\n var css = [];\n\n if (sm2.debugMode) {\n css.push(swfCSS.sm2Debug);\n }\n\n if (sm2.debugFlash) {\n css.push(swfCSS.flashDebug);\n }\n\n if (sm2.useHighPerformance) {\n css.push(swfCSS.highPerf);\n }\n\n return css.join(' ');\n };\n\n flashBlockHandler = function flashBlockHandler() {\n // *possible* flash block situation.\n var name = str('fbHandler'),\n p = sm2.getMoviePercent(),\n css = swfCSS,\n error = {\n type: 'FLASHBLOCK'\n };\n\n if (sm2.html5Only) {\n // no flash, or unused\n return;\n }\n\n if (!sm2.ok()) {\n if (needsFlash) {\n // make the movie more visible, so user can fix\n sm2.oMC.className = getSWFCSS() + ' ' + css.swfDefault + ' ' + (p === null ? css.swfTimedout : css.swfError);\n\n sm2._wD(name + ': ' + str('fbTimeout') + (p ? ' (' + str('fbLoaded') + ')' : ''));\n }\n\n sm2.didFlashBlock = true; // fire onready(), complain lightly\n\n processOnEvents({\n type: 'ontimeout',\n ignoreInit: true,\n error: error\n });\n catchError(error);\n } else {\n // SM2 loaded OK (or recovered)\n // \n if (sm2.didFlashBlock) {\n sm2._wD(name + ': Unblocked');\n } // \n\n\n if (sm2.oMC) {\n sm2.oMC.className = [getSWFCSS(), css.swfDefault, css.swfLoaded + (sm2.didFlashBlock ? ' ' + css.swfUnblocked : '')].join(' ');\n }\n }\n };\n\n addOnEvent = function addOnEvent(sType, oMethod, oScope) {\n if (on_queue[sType] === _undefined) {\n on_queue[sType] = [];\n }\n\n on_queue[sType].push({\n method: oMethod,\n scope: oScope || null,\n fired: false\n });\n };\n\n processOnEvents = function processOnEvents(oOptions) {\n // if unspecified, assume OK/error\n if (!oOptions) {\n oOptions = {\n type: sm2.ok() ? 'onready' : 'ontimeout'\n };\n } // not ready yet.\n\n\n if (!didInit && oOptions && !oOptions.ignoreInit) return false; // invalid case\n\n if (oOptions.type === 'ontimeout' && (sm2.ok() || disabled && !oOptions.ignoreInit)) return false;\n var status = {\n success: oOptions && oOptions.ignoreInit ? sm2.ok() : !disabled\n },\n // queue specified by type, or none\n srcQueue = oOptions && oOptions.type ? on_queue[oOptions.type] || [] : [],\n queue = [],\n i,\n j,\n args = [status],\n canRetry = needsFlash && !sm2.ok();\n\n if (oOptions.error) {\n args[0].error = oOptions.error;\n }\n\n for (i = 0, j = srcQueue.length; i < j; i++) {\n if (srcQueue[i].fired !== true) {\n queue.push(srcQueue[i]);\n }\n }\n\n if (queue.length) {\n // sm2._wD(sm + ': Firing ' + queue.length + ' ' + oOptions.type + '() item' + (queue.length === 1 ? '' : 's'));\n for (i = 0, j = queue.length; i < j; i++) {\n if (queue[i].scope) {\n queue[i].method.apply(queue[i].scope, args);\n } else {\n queue[i].method.apply(this, args);\n }\n\n if (!canRetry) {\n // useFlashBlock and SWF timeout case doesn't count here.\n queue[i].fired = true;\n }\n }\n }\n\n return true;\n };\n\n _initUserOnload = function initUserOnload() {\n window.setTimeout(function () {\n if (sm2.useFlashBlock) {\n flashBlockHandler();\n }\n\n processOnEvents(); // call user-defined \"onload\", scoped to window\n\n if (typeof sm2.onload === 'function') {\n _wDS('onload', 1);\n\n sm2.onload.apply(window);\n\n _wDS('onloadOK', 1);\n }\n\n if (sm2.waitForWindowLoad) {\n event.add(window, 'load', _initUserOnload);\n }\n }, 1);\n };\n\n detectFlash = function detectFlash() {\n /**\r\n * Hat tip: Flash Detect library (BSD, (C) 2007) by Carl \"DocYes\" S. Yestrau\r\n * http://featureblend.com/javascript-flash-detection-library.html / http://featureblend.com/license.txt\r\n */\n // this work has already been done.\n if (hasFlash !== _undefined) return hasFlash;\n var hasPlugin = false,\n n = navigator,\n obj,\n type,\n types,\n AX = window.ActiveXObject; // MS Edge 14 throws an \"Unspecified Error\" because n.plugins is inaccessible due to permissions\n\n var nP;\n\n try {\n nP = n.plugins;\n } catch (e) {\n nP = undefined;\n }\n\n if (nP && nP.length) {\n type = 'application/x-shockwave-flash';\n types = n.mimeTypes;\n\n if (types && types[type] && types[type].enabledPlugin && types[type].enabledPlugin.description) {\n hasPlugin = true;\n }\n } else if (AX !== _undefined && !ua.match(/MSAppHost/i)) {\n // Windows 8 Store Apps (MSAppHost) are weird (compatibility?) and won't complain here, but will barf if Flash/ActiveX object is appended to the DOM.\n try {\n obj = new AX('ShockwaveFlash.ShockwaveFlash');\n } catch (e) {\n // oh well\n obj = null;\n }\n\n hasPlugin = !!obj; // cleanup, because it is ActiveX after all\n\n obj = null;\n }\n\n hasFlash = hasPlugin;\n return hasPlugin;\n };\n\n featureCheck = function featureCheck() {\n var flashNeeded,\n item,\n formats = sm2.audioFormats,\n // iPhone <= 3.1 has broken HTML5 audio(), but firmware 3.2 (original iPad) + iOS4 works.\n isSpecial = is_iDevice && !!ua.match(/os (1|2|3_0|3_1)\\s/i);\n\n if (isSpecial) {\n // has Audio(), but is broken; let it load links directly.\n sm2.hasHTML5 = false; // ignore flash case, however\n\n sm2.html5Only = true; // hide the SWF, if present\n\n if (sm2.oMC) {\n sm2.oMC.style.display = 'none';\n }\n } else if (sm2.useHTML5Audio) {\n if (!sm2.html5 || !sm2.html5.canPlayType) {\n sm2._wD('SoundManager: No HTML5 Audio() support detected.');\n\n sm2.hasHTML5 = false;\n } // \n\n\n if (isBadSafari) {\n sm2._wD(smc + 'Note: Buggy HTML5 Audio in Safari on this OS X release, see https://bugs.webkit.org/show_bug.cgi?id=32159 - ' + (!hasFlash ? ' would use flash fallback for MP3/MP4, but none detected.' : 'will use flash fallback for MP3/MP4, if available'), 1);\n } // \n\n }\n\n if (sm2.useHTML5Audio && sm2.hasHTML5) {\n // sort out whether flash is optional, required or can be ignored.\n // innocent until proven guilty.\n canIgnoreFlash = true;\n\n for (item in formats) {\n if (formats.hasOwnProperty(item)) {\n if (formats[item].required) {\n if (!sm2.html5.canPlayType(formats[item].type)) {\n // 100% HTML5 mode is not possible.\n canIgnoreFlash = false;\n flashNeeded = true;\n } else if (sm2.preferFlash && (sm2.flash[item] || sm2.flash[formats[item].type])) {\n // flash may be required, or preferred for this format.\n flashNeeded = true;\n }\n }\n }\n }\n } // sanity check...\n\n\n if (sm2.ignoreFlash) {\n flashNeeded = false;\n canIgnoreFlash = true;\n }\n\n sm2.html5Only = sm2.hasHTML5 && sm2.useHTML5Audio && !flashNeeded;\n return !sm2.html5Only;\n };\n\n parseURL = function parseURL(url) {\n /**\r\n * Internal: Finds and returns the first playable URL (or failing that, the first URL.)\r\n * @param {string or array} url A single URL string, OR, an array of URL strings or {url:'/path/to/resource', type:'audio/mp3'} objects.\r\n */\n var i,\n j,\n urlResult = 0,\n result;\n\n if (url instanceof Array) {\n // find the first good one\n for (i = 0, j = url.length; i < j; i++) {\n if (url[i] instanceof Object) {\n // MIME check\n if (sm2.canPlayMIME(url[i].type)) {\n urlResult = i;\n break;\n }\n } else if (sm2.canPlayURL(url[i])) {\n // URL string check\n urlResult = i;\n break;\n }\n } // normalize to string\n\n\n if (url[urlResult].url) {\n url[urlResult] = url[urlResult].url;\n }\n\n result = url[urlResult];\n } else {\n // single URL case\n result = url;\n }\n\n return result;\n };\n\n startTimer = function startTimer(oSound) {\n /**\r\n * attach a timer to this sound, and start an interval if needed\r\n */\n if (!oSound._hasTimer) {\n oSound._hasTimer = true;\n\n if (!mobileHTML5 && sm2.html5PollingInterval) {\n if (h5IntervalTimer === null && h5TimerCount === 0) {\n h5IntervalTimer = setInterval(timerExecute, sm2.html5PollingInterval);\n }\n\n h5TimerCount++;\n }\n }\n };\n\n stopTimer = function stopTimer(oSound) {\n /**\r\n * detach a timer\r\n */\n if (oSound._hasTimer) {\n oSound._hasTimer = false;\n\n if (!mobileHTML5 && sm2.html5PollingInterval) {\n // interval will stop itself at next execution.\n h5TimerCount--;\n }\n }\n };\n\n timerExecute = function timerExecute() {\n /**\r\n * manual polling for HTML5 progress events, ie., whileplaying()\r\n * (can achieve greater precision than conservative default HTML5 interval)\r\n */\n var i;\n\n if (h5IntervalTimer !== null && !h5TimerCount) {\n // no active timers, stop polling interval.\n clearInterval(h5IntervalTimer);\n h5IntervalTimer = null;\n return;\n } // check all HTML5 sounds with timers\n\n\n for (i = sm2.soundIDs.length - 1; i >= 0; i--) {\n if (sm2.sounds[sm2.soundIDs[i]].isHTML5 && sm2.sounds[sm2.soundIDs[i]]._hasTimer) {\n sm2.sounds[sm2.soundIDs[i]]._onTimer();\n }\n }\n };\n\n catchError = function catchError(options) {\n options = options !== _undefined ? options : {};\n\n if (typeof sm2.onerror === 'function') {\n sm2.onerror.apply(window, [{\n type: options.type !== _undefined ? options.type : null\n }]);\n }\n\n if (options.fatal !== _undefined && options.fatal) {\n sm2.disable();\n }\n };\n\n badSafariFix = function badSafariFix() {\n // special case: \"bad\" Safari (OS X 10.3 - 10.7) must fall back to flash for MP3/MP4\n if (!isBadSafari || !detectFlash()) {\n // doesn't apply\n return;\n }\n\n var aF = sm2.audioFormats,\n i,\n item;\n\n for (item in aF) {\n if (aF.hasOwnProperty(item)) {\n if (item === 'mp3' || item === 'mp4') {\n sm2._wD(sm + ': Using flash fallback for ' + item + ' format');\n\n sm2.html5[item] = false; // assign result to related formats, too\n\n if (aF[item] && aF[item].related) {\n for (i = aF[item].related.length - 1; i >= 0; i--) {\n sm2.html5[aF[item].related[i]] = false;\n }\n }\n }\n }\n }\n };\n /**\r\n * Pseudo-private flash/ExternalInterface methods\r\n * ----------------------------------------------\r\n */\n\n\n this._setSandboxType = function (sandboxType) {\n // \n // Security sandbox according to Flash plugin\n var sb = sm2.sandbox;\n sb.type = sandboxType;\n sb.description = sb.types[sb.types[sandboxType] !== _undefined ? sandboxType : 'unknown'];\n\n if (sb.type === 'localWithFile') {\n sb.noRemote = true;\n sb.noLocal = false;\n\n _wDS('secNote', 2);\n } else if (sb.type === 'localWithNetwork') {\n sb.noRemote = false;\n sb.noLocal = true;\n } else if (sb.type === 'localTrusted') {\n sb.noRemote = false;\n sb.noLocal = false;\n } // \n\n };\n\n this._externalInterfaceOK = function (swfVersion) {\n // flash callback confirming flash loaded, EI working etc.\n // swfVersion: SWF build string\n if (sm2.swfLoaded) {\n return;\n }\n\n var e;\n debugTS('swf', true);\n debugTS('flashtojs', true);\n sm2.swfLoaded = true;\n tryInitOnFocus = false;\n\n if (isBadSafari) {\n badSafariFix();\n } // complain if JS + SWF build/version strings don't match, excluding +DEV builds\n // \n\n\n if (!swfVersion || swfVersion.replace(/\\+dev/i, '') !== sm2.versionNumber.replace(/\\+dev/i, '')) {\n e = sm + ': Fatal: JavaScript file build \"' + sm2.versionNumber + '\" does not match Flash SWF build \"' + swfVersion + '\" at ' + sm2.url + '. Ensure both are up-to-date.'; // escape flash -> JS stack so this error fires in window.\n\n setTimeout(function () {\n throw new Error(e);\n }, 0); // exit, init will fail with timeout\n\n return;\n } // \n // IE needs a larger timeout\n\n\n setTimeout(init, isIE ? 100 : 1);\n };\n /**\r\n * Private initialization helpers\r\n * ------------------------------\r\n */\n\n\n createMovie = function createMovie(movieID, movieURL) {\n // ignore if already connected\n if (didAppend && appendSuccess) return false;\n\n function initMsg() {\n // \n var options = [],\n title,\n msg = [],\n delimiter = ' + ';\n title = 'SoundManager ' + sm2.version + (!sm2.html5Only && sm2.useHTML5Audio ? sm2.hasHTML5 ? ' + HTML5 audio' : ', no HTML5 audio support' : '');\n\n if (!sm2.html5Only) {\n if (sm2.preferFlash) {\n options.push('preferFlash');\n }\n\n if (sm2.useHighPerformance) {\n options.push('useHighPerformance');\n }\n\n if (sm2.flashPollingInterval) {\n options.push('flashPollingInterval (' + sm2.flashPollingInterval + 'ms)');\n }\n\n if (sm2.html5PollingInterval) {\n options.push('html5PollingInterval (' + sm2.html5PollingInterval + 'ms)');\n }\n\n if (sm2.wmode) {\n options.push('wmode (' + sm2.wmode + ')');\n }\n\n if (sm2.debugFlash) {\n options.push('debugFlash');\n }\n\n if (sm2.useFlashBlock) {\n options.push('flashBlock');\n }\n } else if (sm2.html5PollingInterval) {\n options.push('html5PollingInterval (' + sm2.html5PollingInterval + 'ms)');\n }\n\n if (options.length) {\n msg = msg.concat([options.join(delimiter)]);\n }\n\n sm2._wD(title + (msg.length ? delimiter + msg.join(', ') : ''), 1);\n\n showSupport(); // \n }\n\n if (sm2.html5Only) {\n // 100% HTML5 mode\n setVersionInfo();\n initMsg();\n sm2.oMC = id(sm2.movieID);\n init(); // prevent multiple init attempts\n\n didAppend = true;\n appendSuccess = true;\n return false;\n } // flash path\n\n\n var remoteURL = movieURL || sm2.url,\n localURL = sm2.altURL || remoteURL,\n swfTitle = 'JS/Flash audio component (SoundManager 2)',\n oTarget = getDocument(),\n extraClass = getSWFCSS(),\n isRTL = null,\n html = doc.getElementsByTagName('html')[0],\n oEmbed,\n oMovie,\n tmp,\n movieHTML,\n oEl,\n s,\n x,\n sClass;\n isRTL = html && html.dir && html.dir.match(/rtl/i);\n movieID = movieID === _undefined ? sm2.id : movieID;\n\n function param(name, value) {\n return '';\n } // safety check for legacy (change to Flash 9 URL)\n\n\n setVersionInfo();\n sm2.url = normalizeMovieURL(overHTTP ? remoteURL : localURL);\n movieURL = sm2.url;\n sm2.wmode = !sm2.wmode && sm2.useHighPerformance ? 'transparent' : sm2.wmode;\n\n if (sm2.wmode !== null && (ua.match(/msie 8/i) || !isIE && !sm2.useHighPerformance) && navigator.platform.match(/win32|win64/i)) {\n /**\r\n * extra-special case: movie doesn't load until scrolled into view when using wmode = anything but 'window' here\r\n * does not apply when using high performance (position:fixed means on-screen), OR infinite flash load timeout\r\n * wmode breaks IE 8 on Vista + Win7 too in some cases, as of January 2011 (?)\r\n */\n messages.push(strings.spcWmode);\n sm2.wmode = null;\n }\n\n oEmbed = {\n name: movieID,\n id: movieID,\n src: movieURL,\n quality: 'high',\n allowScriptAccess: sm2.allowScriptAccess,\n bgcolor: sm2.bgColor,\n pluginspage: http + 'www.macromedia.com/go/getflashplayer',\n title: swfTitle,\n type: 'application/x-shockwave-flash',\n wmode: sm2.wmode,\n // http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c36cfb8137124318eebc6-7ffd.html\n hasPriority: 'true'\n };\n\n if (sm2.debugFlash) {\n oEmbed.FlashVars = 'debug=1';\n }\n\n if (!sm2.wmode) {\n // don't write empty attribute\n delete oEmbed.wmode;\n }\n\n if (isIE) {\n // IE is \"special\".\n oMovie = doc.createElement('div');\n movieHTML = ['', param('movie', movieURL), param('AllowScriptAccess', sm2.allowScriptAccess), param('quality', oEmbed.quality), sm2.wmode ? param('wmode', sm2.wmode) : '', param('bgcolor', sm2.bgColor), param('hasPriority', 'true'), sm2.debugFlash ? param('FlashVars', oEmbed.FlashVars) : '', ''].join('');\n } else {\n oMovie = doc.createElement('embed');\n\n for (tmp in oEmbed) {\n if (oEmbed.hasOwnProperty(tmp)) {\n oMovie.setAttribute(tmp, oEmbed[tmp]);\n }\n }\n }\n\n initDebug();\n extraClass = getSWFCSS();\n oTarget = getDocument();\n\n if (oTarget) {\n sm2.oMC = id(sm2.movieID) || doc.createElement('div');\n\n if (!sm2.oMC.id) {\n sm2.oMC.id = sm2.movieID;\n sm2.oMC.className = swfCSS.swfDefault + ' ' + extraClass;\n s = null;\n oEl = null;\n\n if (!sm2.useFlashBlock) {\n if (sm2.useHighPerformance) {\n // on-screen at all times\n s = {\n position: 'fixed',\n width: '8px',\n height: '8px',\n // >= 6px for flash to run fast, >= 8px to start up under Firefox/win32 in some cases. odd? yes.\n bottom: '0px',\n left: '0px',\n overflow: 'hidden'\n };\n } else {\n // hide off-screen, lower priority\n s = {\n position: 'absolute',\n width: '6px',\n height: '6px',\n top: '-9999px',\n left: '-9999px'\n };\n\n if (isRTL) {\n s.left = Math.abs(parseInt(s.left, 10)) + 'px';\n }\n }\n }\n\n if (isWebkit) {\n // soundcloud-reported render/crash fix, safari 5\n sm2.oMC.style.zIndex = 10000;\n }\n\n if (!sm2.debugFlash) {\n for (x in s) {\n if (s.hasOwnProperty(x)) {\n sm2.oMC.style[x] = s[x];\n }\n }\n }\n\n try {\n if (!isIE) {\n sm2.oMC.appendChild(oMovie);\n }\n\n oTarget.appendChild(sm2.oMC);\n\n if (isIE) {\n oEl = sm2.oMC.appendChild(doc.createElement('div'));\n oEl.className = swfCSS.swfBox;\n oEl.innerHTML = movieHTML;\n }\n\n appendSuccess = true;\n } catch (e) {\n throw new Error(str('domError') + ' \\n' + e.toString());\n }\n } else {\n // SM2 container is already in the document (eg. flashblock use case)\n sClass = sm2.oMC.className;\n sm2.oMC.className = (sClass ? sClass + ' ' : swfCSS.swfDefault) + (extraClass ? ' ' + extraClass : '');\n sm2.oMC.appendChild(oMovie);\n\n if (isIE) {\n oEl = sm2.oMC.appendChild(doc.createElement('div'));\n oEl.className = swfCSS.swfBox;\n oEl.innerHTML = movieHTML;\n }\n\n appendSuccess = true;\n }\n }\n\n didAppend = true;\n initMsg(); // sm2._wD(sm + ': Trying to load ' + movieURL + (!overHTTP && sm2.altURL ? ' (alternate URL)' : ''), 1);\n\n return true;\n };\n\n initMovie = function initMovie() {\n if (sm2.html5Only) {\n createMovie();\n return false;\n } // attempt to get, or create, movie (may already exist)\n\n\n if (flash) return false;\n\n if (!sm2.url) {\n /**\r\n * Something isn't right - we've reached init, but the soundManager url property has not been set.\r\n * User has not called setup({url: ...}), or has not set soundManager.url (legacy use case) directly before init time.\r\n * Notify and exit. If user calls setup() with a url: property, init will be restarted as in the deferred loading case.\r\n */\n _wDS('noURL');\n\n return false;\n } // inline markup case\n\n\n flash = sm2.getMovie(sm2.id);\n\n if (!flash) {\n if (!oRemoved) {\n // try to create\n createMovie(sm2.id, sm2.url);\n } else {\n // try to re-append removed movie after reboot()\n if (!isIE) {\n sm2.oMC.appendChild(oRemoved);\n } else {\n sm2.oMC.innerHTML = oRemovedHTML;\n }\n\n oRemoved = null;\n didAppend = true;\n }\n\n flash = sm2.getMovie(sm2.id);\n }\n\n if (typeof sm2.oninitmovie === 'function') {\n setTimeout(sm2.oninitmovie, 1);\n } // \n\n\n flushMessages(); // \n\n return true;\n };\n\n delayWaitForEI = function delayWaitForEI() {\n setTimeout(waitForEI, 1000);\n };\n\n rebootIntoHTML5 = function rebootIntoHTML5() {\n // special case: try for a reboot with preferFlash: false, if 100% HTML5 mode is possible and useFlashBlock is not enabled.\n window.setTimeout(function () {\n complain(smc + 'useFlashBlock is false, 100% HTML5 mode is possible. Rebooting with preferFlash: false...');\n sm2.setup({\n preferFlash: false\n }).reboot(); // if for some reason you want to detect this case, use an ontimeout() callback and look for html5Only and didFlashBlock == true.\n\n sm2.didFlashBlock = true;\n sm2.beginDelayedInit();\n }, 1);\n };\n\n waitForEI = function waitForEI() {\n var p,\n loadIncomplete = false;\n\n if (!sm2.url) {\n // No SWF url to load (noURL case) - exit for now. Will be retried when url is set.\n return;\n }\n\n if (waitingForEI) {\n return;\n }\n\n waitingForEI = true;\n event.remove(window, 'load', delayWaitForEI);\n\n if (hasFlash && tryInitOnFocus && !isFocused) {\n // Safari won't load flash in background tabs, only when focused.\n _wDS('waitFocus');\n\n return;\n }\n\n if (!didInit) {\n p = sm2.getMoviePercent();\n\n if (p > 0 && p < 100) {\n loadIncomplete = true;\n }\n }\n\n setTimeout(function () {\n p = sm2.getMoviePercent();\n\n if (loadIncomplete) {\n // special case: if movie *partially* loaded, retry until it's 100% before assuming failure.\n waitingForEI = false;\n\n sm2._wD(str('waitSWF'));\n\n window.setTimeout(delayWaitForEI, 1);\n return;\n } // \n\n\n if (!didInit) {\n sm2._wD(sm + ': No Flash response within expected time. Likely causes: ' + (p === 0 ? 'SWF load failed, ' : '') + 'Flash blocked or JS-Flash security error.' + (sm2.debugFlash ? ' ' + str('checkSWF') : ''), 2);\n\n if (!overHTTP && p) {\n _wDS('localFail', 2);\n\n if (!sm2.debugFlash) {\n _wDS('tryDebug', 2);\n }\n }\n\n if (p === 0) {\n // if 0 (not null), probably a 404.\n sm2._wD(str('swf404', sm2.url), 1);\n }\n\n debugTS('flashtojs', false, ': Timed out' + (overHTTP ? ' (Check flash security or flash blockers)' : ' (No plugin/missing SWF?)'));\n } // \n // give up / time-out, depending\n\n\n if (!didInit && okToDisable) {\n if (p === null) {\n // SWF failed to report load progress. Possibly blocked.\n if (sm2.useFlashBlock || sm2.flashLoadTimeout === 0) {\n if (sm2.useFlashBlock) {\n flashBlockHandler();\n }\n\n _wDS('waitForever');\n } else if (!sm2.useFlashBlock && canIgnoreFlash) {\n // no custom flash block handling, but SWF has timed out. Will recover if user unblocks / allows SWF load.\n rebootIntoHTML5();\n } else {\n _wDS('waitForever'); // fire any regular registered ontimeout() listeners.\n\n\n processOnEvents({\n type: 'ontimeout',\n ignoreInit: true,\n error: {\n type: 'INIT_FLASHBLOCK'\n }\n });\n }\n } else if (sm2.flashLoadTimeout === 0) {\n // SWF loaded? Shouldn't be a blocking issue, then.\n _wDS('waitForever');\n } else if (!sm2.useFlashBlock && canIgnoreFlash) {\n rebootIntoHTML5();\n } else {\n failSafely(true);\n }\n }\n }, sm2.flashLoadTimeout);\n };\n\n _handleFocus = function handleFocus() {\n function cleanup() {\n event.remove(window, 'focus', _handleFocus);\n }\n\n if (isFocused || !tryInitOnFocus) {\n // already focused, or not special Safari background tab case\n cleanup();\n return true;\n }\n\n okToDisable = true;\n isFocused = true;\n\n _wDS('gotFocus'); // allow init to restart\n\n\n waitingForEI = false; // kick off ExternalInterface timeout, now that the SWF has started\n\n delayWaitForEI();\n cleanup();\n return true;\n };\n\n flushMessages = function flushMessages() {\n // \n // SM2 pre-init debug messages\n if (messages.length) {\n sm2._wD('SoundManager 2: ' + messages.join(' '), 1);\n\n messages = [];\n } // \n\n };\n\n showSupport = function showSupport() {\n // \n flushMessages();\n var item,\n tests = [];\n\n if (sm2.useHTML5Audio && sm2.hasHTML5) {\n for (item in sm2.audioFormats) {\n if (sm2.audioFormats.hasOwnProperty(item)) {\n tests.push(item + ' = ' + sm2.html5[item] + (!sm2.html5[item] && needsFlash && sm2.flash[item] ? ' (using flash)' : sm2.preferFlash && sm2.flash[item] && needsFlash ? ' (preferring flash)' : !sm2.html5[item] ? ' (' + (sm2.audioFormats[item].required ? 'required, ' : '') + 'and no flash support)' : ''));\n }\n }\n\n sm2._wD('SoundManager 2 HTML5 support: ' + tests.join(', '), 1);\n } // \n\n };\n\n initComplete = function initComplete(bNoDisable) {\n if (didInit) return false;\n\n if (sm2.html5Only) {\n // all good.\n _wDS('sm2Loaded', 1);\n\n didInit = true;\n\n _initUserOnload();\n\n debugTS('onload', true);\n return true;\n }\n\n var wasTimeout = sm2.useFlashBlock && sm2.flashLoadTimeout && !sm2.getMoviePercent(),\n result = true,\n error;\n\n if (!wasTimeout) {\n didInit = true;\n }\n\n error = {\n type: !hasFlash && needsFlash ? 'NO_FLASH' : 'INIT_TIMEOUT'\n };\n\n sm2._wD('SoundManager 2 ' + (disabled ? 'failed to load' : 'loaded') + ' (' + (disabled ? 'Flash security/load error' : 'OK') + ') ' + String.fromCharCode(disabled ? 10006 : 10003), disabled ? 2 : 1);\n\n if (disabled || bNoDisable) {\n if (sm2.useFlashBlock && sm2.oMC) {\n sm2.oMC.className = getSWFCSS() + ' ' + (sm2.getMoviePercent() === null ? swfCSS.swfTimedout : swfCSS.swfError);\n }\n\n processOnEvents({\n type: 'ontimeout',\n error: error,\n ignoreInit: true\n });\n debugTS('onload', false);\n catchError(error);\n result = false;\n } else {\n debugTS('onload', true);\n }\n\n if (!disabled) {\n if (sm2.waitForWindowLoad && !windowLoaded) {\n _wDS('waitOnload');\n\n event.add(window, 'load', _initUserOnload);\n } else {\n // \n if (sm2.waitForWindowLoad && windowLoaded) {\n _wDS('docLoaded');\n } // \n\n\n _initUserOnload();\n }\n }\n\n return result;\n };\n /**\r\n * apply top-level setupOptions object as local properties, eg., this.setupOptions.flashVersion -> this.flashVersion (soundManager.flashVersion)\r\n * this maintains backward compatibility, and allows properties to be defined separately for use by soundManager.setup().\r\n */\n\n\n setProperties = function setProperties() {\n var i,\n o = sm2.setupOptions;\n\n for (i in o) {\n if (o.hasOwnProperty(i)) {\n // assign local property if not already defined\n if (sm2[i] === _undefined) {\n sm2[i] = o[i];\n } else if (sm2[i] !== o[i]) {\n // legacy support: write manually-assigned property (eg., soundManager.url) back to setupOptions to keep things in sync\n sm2.setupOptions[i] = sm2[i];\n }\n }\n }\n };\n\n init = function init() {\n // called after onload()\n if (didInit) {\n _wDS('didInit');\n\n return false;\n }\n\n function cleanup() {\n event.remove(window, 'load', sm2.beginDelayedInit);\n }\n\n if (sm2.html5Only) {\n if (!didInit) {\n // we don't need no steenking flash!\n cleanup();\n sm2.enabled = true;\n initComplete();\n }\n\n return true;\n } // flash path\n\n\n initMovie();\n\n try {\n // attempt to talk to Flash\n flash._externalInterfaceTest(false);\n /**\r\n * Apply user-specified polling interval, OR, if \"high performance\" set, faster vs. default polling\r\n * (determines frequency of whileloading/whileplaying callbacks, effectively driving UI framerates)\r\n */\n\n\n setPolling(true, sm2.flashPollingInterval || (sm2.useHighPerformance ? 10 : 50));\n\n if (!sm2.debugMode) {\n // stop the SWF from making debug output calls to JS\n flash._disableDebug();\n }\n\n sm2.enabled = true;\n debugTS('jstoflash', true);\n\n if (!sm2.html5Only) {\n // prevent browser from showing cached page state (or rather, restoring \"suspended\" page state) via back button, because flash may be dead\n // http://www.webkit.org/blog/516/webkit-page-cache-ii-the-unload-event/\n event.add(window, 'unload', doNothing);\n }\n } catch (e) {\n sm2._wD('js/flash exception: ' + e.toString());\n\n debugTS('jstoflash', false);\n catchError({\n type: 'JS_TO_FLASH_EXCEPTION',\n fatal: true\n }); // don't disable, for reboot()\n\n failSafely(true);\n initComplete();\n return false;\n }\n\n initComplete(); // disconnect events\n\n cleanup();\n return true;\n };\n\n _domContentLoaded = function domContentLoaded() {\n if (didDCLoaded) return false;\n didDCLoaded = true; // assign top-level soundManager properties eg. soundManager.url\n\n setProperties();\n initDebug();\n\n if (!hasFlash && sm2.hasHTML5) {\n sm2._wD('SoundManager 2: No Flash detected' + (!sm2.useHTML5Audio ? ', enabling HTML5.' : '. Trying HTML5-only mode.'), 1);\n\n sm2.setup({\n useHTML5Audio: true,\n // make sure we aren't preferring flash, either\n // TODO: preferFlash should not matter if flash is not installed. Currently, stuff breaks without the below tweak.\n preferFlash: false\n });\n }\n\n testHTML5();\n\n if (!hasFlash && needsFlash) {\n messages.push(strings.needFlash); // TODO: Fatal here vs. timeout approach, etc.\n // hack: fail sooner.\n\n sm2.setup({\n flashLoadTimeout: 1\n });\n }\n\n if (doc.removeEventListener) {\n doc.removeEventListener('DOMContentLoaded', _domContentLoaded, false);\n }\n\n initMovie();\n return true;\n };\n\n _domContentLoadedIE = function domContentLoadedIE() {\n if (doc.readyState === 'complete') {\n _domContentLoaded();\n\n doc.detachEvent('onreadystatechange', _domContentLoadedIE);\n }\n\n return true;\n };\n\n _winOnLoad = function winOnLoad() {\n // catch edge case of initComplete() firing after window.load()\n windowLoaded = true; // catch case where DOMContentLoaded has been sent, but we're still in doc.readyState = 'interactive'\n\n _domContentLoaded();\n\n event.remove(window, 'load', _winOnLoad);\n }; // sniff up-front\n\n\n detectFlash(); // focus and window load, init (primarily flash-driven)\n\n event.add(window, 'focus', _handleFocus);\n event.add(window, 'load', delayWaitForEI);\n event.add(window, 'load', _winOnLoad);\n\n if (doc.addEventListener) {\n doc.addEventListener('DOMContentLoaded', _domContentLoaded, false);\n } else if (doc.attachEvent) {\n doc.attachEvent('onreadystatechange', _domContentLoadedIE);\n } else {\n // no add/attachevent support - safe to assume no JS -> Flash either\n debugTS('onload', false);\n catchError({\n type: 'NO_DOM2_EVENTS',\n fatal: true\n });\n }\n } // SoundManager()\n // SM2_DEFER details: http://www.schillmania.com/projects/soundmanager2/doc/getstarted/#lazy-loading\n\n\n if (window.SM2_DEFER === _undefined || !SM2_DEFER) {\n soundManager = new SoundManager();\n }\n /**\r\n * SoundManager public interfaces\r\n * ------------------------------\r\n */\n\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object' && module && _typeof(module.exports) === 'object') {\n /**\r\n * commonJS module\r\n */\n module.exports.SoundManager = SoundManager;\n module.exports.soundManager = soundManager;\n } else if (typeof define === 'function' && define.amd) {\n /**\r\n * AMD - requireJS\r\n * basic usage:\r\n * require([\"/path/to/soundmanager2.js\"], function(SoundManager) {\r\n * SoundManager.getInstance().setup({\r\n * url: '/swf/',\r\n * onready: function() { ... }\r\n * })\r\n * });\r\n *\r\n * SM2_DEFER usage:\r\n * window.SM2_DEFER = true;\r\n * require([\"/path/to/soundmanager2.js\"], function(SoundManager) {\r\n * SoundManager.getInstance(function() {\r\n * var soundManager = new SoundManager.constructor();\r\n * soundManager.setup({\r\n * url: '/swf/',\r\n * ...\r\n * });\r\n * ...\r\n * soundManager.beginDelayedInit();\r\n * return soundManager;\r\n * })\r\n * });\r\n */\n define(function () {\n /**\r\n * Retrieve the global instance of SoundManager.\r\n * If a global instance does not exist it can be created using a callback.\r\n *\r\n * @param {Function} smBuilder Optional: Callback used to create a new SoundManager instance\r\n * @return {SoundManager} The global SoundManager instance\r\n */\n function getInstance(smBuilder) {\n if (!window.soundManager && smBuilder instanceof Function) {\n var instance = smBuilder(SoundManager);\n\n if (instance instanceof SoundManager) {\n window.soundManager = instance;\n }\n }\n\n return window.soundManager;\n }\n\n return {\n constructor: SoundManager,\n getInstance: getInstance\n };\n });\n } // standard browser case\n // constructor\n\n\n window.SoundManager = SoundManager;\n /**\r\n * note: SM2 requires a window global due to Flash, which makes calls to window.soundManager.\r\n * Flash may not always be needed, but this is not known until async init and SM2 may even \"reboot\" into Flash mode.\r\n */\n // public API, flash callbacks etc.\n\n window.soundManager = soundManager;\n})(window);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * jQuery JavaScript Library v3.5.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2020-05-04T22:49Z\n */\n(function (global, factory) {\n \"use strict\";\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && _typeof(module.exports) === \"object\") {\n // For CommonJS and CommonJS-like environments where a proper `window`\n // is present, execute the factory and get jQuery.\n // For environments that do not have a `window` with a `document`\n // (such as Node.js), expose a factory as module.exports.\n // This accentuates the need for the creation of a real `window`.\n // e.g. var jQuery = require(\"jquery\")(window);\n // See ticket #14549 for more info.\n module.exports = global.document ? factory(global, true) : function (w) {\n if (!w.document) {\n throw new Error(\"jQuery requires a window with a document\");\n }\n\n return factory(w);\n };\n } else {\n factory(global);\n } // Pass this if window is not defined yet\n\n})(typeof window !== \"undefined\" ? window : this, function (window, noGlobal) {\n // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n // enough that all such attempts are guarded in a try block.\n \"use strict\";\n\n var arr = [];\n var getProto = Object.getPrototypeOf;\n var _slice = arr.slice;\n var flat = arr.flat ? function (array) {\n return arr.flat.call(array);\n } : function (array) {\n return arr.concat.apply([], array);\n };\n var push = arr.push;\n var indexOf = arr.indexOf;\n var class2type = {};\n var toString = class2type.toString;\n var hasOwn = class2type.hasOwnProperty;\n var fnToString = hasOwn.toString;\n var ObjectFunctionString = fnToString.call(Object);\n var support = {};\n\n var isFunction = function isFunction(obj) {\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n var isWindow = function isWindow(obj) {\n return obj != null && obj === obj.window;\n };\n\n var document = window.document;\n var preservedScriptAttributes = {\n type: true,\n src: true,\n nonce: true,\n noModule: true\n };\n\n function DOMEval(code, node, doc) {\n doc = doc || document;\n var i,\n val,\n script = doc.createElement(\"script\");\n script.text = code;\n\n if (node) {\n for (i in preservedScriptAttributes) {\n // Support: Firefox 64+, Edge 18+\n // Some browsers don't support the \"nonce\" property on scripts.\n // On the other hand, just using `getAttribute` is not enough as\n // the `nonce` attribute is reset to an empty string whenever it\n // becomes browsing-context connected.\n // See https://github.com/whatwg/html/issues/2369\n // See https://html.spec.whatwg.org/#nonce-attributes\n // The `node.getAttribute` check was added for the sake of\n // `jQuery.globalEval` so that it can fake a nonce-containing node\n // via an object.\n val = node[i] || node.getAttribute && node.getAttribute(i);\n\n if (val) {\n script.setAttribute(i, val);\n }\n }\n }\n\n doc.head.appendChild(script).parentNode.removeChild(script);\n }\n\n function toType(obj) {\n if (obj == null) {\n return obj + \"\";\n } // Support: Android <=2.3 only (functionish RegExp)\n\n\n return _typeof(obj) === \"object\" || typeof obj === \"function\" ? class2type[toString.call(obj)] || \"object\" : _typeof(obj);\n }\n /* global Symbol */\n // Defining this global in .eslintrc.json would create a danger of using the global\n // unguarded in another place, it seems safer to define global only for this module\n\n\n var version = \"3.5.1\",\n // Define a local copy of jQuery\n jQuery = function jQuery(selector, context) {\n // The jQuery object is actually just the init constructor 'enhanced'\n // Need init if jQuery is called (just allow error to be thrown if not included)\n return new jQuery.fn.init(selector, context);\n };\n\n jQuery.fn = jQuery.prototype = {\n // The current version of jQuery being used\n jquery: version,\n constructor: jQuery,\n // The default length of a jQuery object is 0\n length: 0,\n toArray: function toArray() {\n return _slice.call(this);\n },\n // Get the Nth element in the matched element set OR\n // Get the whole matched element set as a clean array\n get: function get(num) {\n // Return all the elements in a clean array\n if (num == null) {\n return _slice.call(this);\n } // Return just the one element from the set\n\n\n return num < 0 ? this[num + this.length] : this[num];\n },\n // Take an array of elements and push it onto the stack\n // (returning the new matched element set)\n pushStack: function pushStack(elems) {\n // Build a new jQuery matched element set\n var ret = jQuery.merge(this.constructor(), elems); // Add the old object onto the stack (as a reference)\n\n ret.prevObject = this; // Return the newly-formed element set\n\n return ret;\n },\n // Execute a callback for every element in the matched set.\n each: function each(callback) {\n return jQuery.each(this, callback);\n },\n map: function map(callback) {\n return this.pushStack(jQuery.map(this, function (elem, i) {\n return callback.call(elem, i, elem);\n }));\n },\n slice: function slice() {\n return this.pushStack(_slice.apply(this, arguments));\n },\n first: function first() {\n return this.eq(0);\n },\n last: function last() {\n return this.eq(-1);\n },\n even: function even() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return (i + 1) % 2;\n }));\n },\n odd: function odd() {\n return this.pushStack(jQuery.grep(this, function (_elem, i) {\n return i % 2;\n }));\n },\n eq: function eq(i) {\n var len = this.length,\n j = +i + (i < 0 ? len : 0);\n return this.pushStack(j >= 0 && j < len ? [this[j]] : []);\n },\n end: function end() {\n return this.prevObject || this.constructor();\n },\n // For internal use only.\n // Behaves like an Array's method, not like a jQuery method.\n push: push,\n sort: arr.sort,\n splice: arr.splice\n };\n\n jQuery.extend = jQuery.fn.extend = function () {\n var options,\n name,\n src,\n copy,\n copyIsArray,\n clone,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length,\n deep = false; // Handle a deep copy situation\n\n if (typeof target === \"boolean\") {\n deep = target; // Skip the boolean and the target\n\n target = arguments[i] || {};\n i++;\n } // Handle case when target is a string or something (possible in deep copy)\n\n\n if (_typeof(target) !== \"object\" && !isFunction(target)) {\n target = {};\n } // Extend jQuery itself if only one argument is passed\n\n\n if (i === length) {\n target = this;\n i--;\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n if ((options = arguments[i]) != null) {\n // Extend the base object\n for (name in options) {\n copy = options[name]; // Prevent Object.prototype pollution\n // Prevent never-ending loop\n\n if (name === \"__proto__\" || target === copy) {\n continue;\n } // Recurse if we're merging plain objects or arrays\n\n\n if (deep && copy && (jQuery.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n src = target[name]; // Ensure proper type for the source value\n\n if (copyIsArray && !Array.isArray(src)) {\n clone = [];\n } else if (!copyIsArray && !jQuery.isPlainObject(src)) {\n clone = {};\n } else {\n clone = src;\n }\n\n copyIsArray = false; // Never move original objects, clone them\n\n target[name] = jQuery.extend(deep, clone, copy); // Don't bring in undefined values\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n } // Return the modified object\n\n\n return target;\n };\n\n jQuery.extend({\n // Unique for each copy of jQuery on the page\n expando: \"jQuery\" + (version + Math.random()).replace(/\\D/g, \"\"),\n // Assume jQuery is ready without the ready module\n isReady: true,\n error: function error(msg) {\n throw new Error(msg);\n },\n noop: function noop() {},\n isPlainObject: function isPlainObject(obj) {\n var proto, Ctor; // Detect obvious negatives\n // Use toString instead of jQuery.type to catch host objects\n\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n\n proto = getProto(obj); // Objects with no prototype (e.g., `Object.create( null )`) are plain\n\n if (!proto) {\n return true;\n } // Objects with prototype are plain iff they were constructed by a global Object function\n\n\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n },\n isEmptyObject: function isEmptyObject(obj) {\n var name;\n\n for (name in obj) {\n return false;\n }\n\n return true;\n },\n // Evaluates a script in a provided context; falls back to the global one\n // if not specified.\n globalEval: function globalEval(code, options, doc) {\n DOMEval(code, {\n nonce: options && options.nonce\n }, doc);\n },\n each: function each(obj, callback) {\n var length,\n i = 0;\n\n if (isArrayLike(obj)) {\n length = obj.length;\n\n for (; i < length; i++) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n } else {\n for (i in obj) {\n if (callback.call(obj[i], i, obj[i]) === false) {\n break;\n }\n }\n }\n\n return obj;\n },\n // results is for internal usage only\n makeArray: function makeArray(arr, results) {\n var ret = results || [];\n\n if (arr != null) {\n if (isArrayLike(Object(arr))) {\n jQuery.merge(ret, typeof arr === \"string\" ? [arr] : arr);\n } else {\n push.call(ret, arr);\n }\n }\n\n return ret;\n },\n inArray: function inArray(elem, arr, i) {\n return arr == null ? -1 : indexOf.call(arr, elem, i);\n },\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n merge: function merge(first, second) {\n var len = +second.length,\n j = 0,\n i = first.length;\n\n for (; j < len; j++) {\n first[i++] = second[j];\n }\n\n first.length = i;\n return first;\n },\n grep: function grep(elems, callback, invert) {\n var callbackInverse,\n matches = [],\n i = 0,\n length = elems.length,\n callbackExpect = !invert; // Go through the array, only saving the items\n // that pass the validator function\n\n for (; i < length; i++) {\n callbackInverse = !callback(elems[i], i);\n\n if (callbackInverse !== callbackExpect) {\n matches.push(elems[i]);\n }\n }\n\n return matches;\n },\n // arg is for internal usage only\n map: function map(elems, callback, arg) {\n var length,\n value,\n i = 0,\n ret = []; // Go through the array, translating each of the items to their new values\n\n if (isArrayLike(elems)) {\n length = elems.length;\n\n for (; i < length; i++) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n } // Go through every key on the object,\n\n } else {\n for (i in elems) {\n value = callback(elems[i], i, arg);\n\n if (value != null) {\n ret.push(value);\n }\n }\n } // Flatten any nested arrays\n\n\n return flat(ret);\n },\n // A global GUID counter for objects\n guid: 1,\n // jQuery.support is not used in Core but other projects attach their\n // properties to it so it needs to exist.\n support: support\n });\n\n if (typeof Symbol === \"function\") {\n jQuery.fn[Symbol.iterator] = arr[Symbol.iterator];\n } // Populate the class2type map\n\n\n jQuery.each(\"Boolean Number String Function Array Date RegExp Object Error Symbol\".split(\" \"), function (_i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n });\n\n function isArrayLike(obj) {\n // Support: real iOS 8.2 only (not reproducible in simulator)\n // `in` check used to prevent JIT error (gh-2145)\n // hasOwn isn't used here due to false negatives\n // regarding Nodelist length in IE\n var length = !!obj && \"length\" in obj && obj.length,\n type = toType(obj);\n\n if (isFunction(obj) || isWindow(obj)) {\n return false;\n }\n\n return type === \"array\" || length === 0 || typeof length === \"number\" && length > 0 && length - 1 in obj;\n }\n\n var Sizzle =\n /*!\n * Sizzle CSS Selector Engine v2.3.5\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2020-03-14\n */\n function (window) {\n var i,\n support,\n Expr,\n getText,\n isXML,\n tokenize,\n compile,\n select,\n outermostContext,\n sortInput,\n hasDuplicate,\n // Local document vars\n setDocument,\n document,\n docElem,\n documentIsHTML,\n rbuggyQSA,\n rbuggyMatches,\n matches,\n contains,\n // Instance-specific data\n expando = \"sizzle\" + 1 * new Date(),\n preferredDoc = window.document,\n dirruns = 0,\n done = 0,\n classCache = createCache(),\n tokenCache = createCache(),\n compilerCache = createCache(),\n nonnativeSelectorCache = createCache(),\n sortOrder = function sortOrder(a, b) {\n if (a === b) {\n hasDuplicate = true;\n }\n\n return 0;\n },\n // Instance methods\n hasOwn = {}.hasOwnProperty,\n arr = [],\n pop = arr.pop,\n pushNative = arr.push,\n push = arr.push,\n slice = arr.slice,\n // Use a stripped-down indexOf as it's faster than native\n // https://jsperf.com/thor-indexof-vs-for/5\n indexOf = function indexOf(list, elem) {\n var i = 0,\n len = list.length;\n\n for (; i < len; i++) {\n if (list[i] === elem) {\n return i;\n }\n }\n\n return -1;\n },\n booleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" + \"ismap|loop|multiple|open|readonly|required|scoped\",\n // Regular expressions\n // http://www.w3.org/TR/css3-selectors/#whitespace\n whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n identifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n attributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace + // Operator (capture 2)\n \"*([*^$|!~]?=)\" + whitespace + // \"Attribute values must be CSS identifiers [capture 5]\n // or strings [capture 3 or capture 4]\"\n \"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace + \"*\\\\]\",\n pseudos = \":(\" + identifier + \")(?:\\\\((\" + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n // 1. quoted (capture 3; capture 4 or capture 5)\n \"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" + // 2. simple (capture 6)\n \"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" + // 3. anything else (capture 2)\n \".*\" + \")\\\\)|)\",\n // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n rwhitespace = new RegExp(whitespace + \"+\", \"g\"),\n rtrim = new RegExp(\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\"),\n rcomma = new RegExp(\"^\" + whitespace + \"*,\" + whitespace + \"*\"),\n rcombinators = new RegExp(\"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\"),\n rdescend = new RegExp(whitespace + \"|>\"),\n rpseudo = new RegExp(pseudos),\n ridentifier = new RegExp(\"^\" + identifier + \"$\"),\n matchExpr = {\n \"ID\": new RegExp(\"^#(\" + identifier + \")\"),\n \"CLASS\": new RegExp(\"^\\\\.(\" + identifier + \")\"),\n \"TAG\": new RegExp(\"^(\" + identifier + \"|[*])\"),\n \"ATTR\": new RegExp(\"^\" + attributes),\n \"PSEUDO\": new RegExp(\"^\" + pseudos),\n \"CHILD\": new RegExp(\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\"),\n \"bool\": new RegExp(\"^(?:\" + booleans + \")$\", \"i\"),\n // For use in libraries implementing .is()\n // We use this for POS matching in `select`\n \"needsContext\": new RegExp(\"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\")\n },\n rhtml = /HTML$/i,\n rinputs = /^(?:input|select|textarea|button)$/i,\n rheader = /^h\\d$/i,\n rnative = /^[^{]+\\{\\s*\\[native \\w/,\n // Easily-parseable/retrievable ID or TAG or CLASS selectors\n rquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n rsibling = /[+~]/,\n // CSS escapes\n // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n runescape = new RegExp(\"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\"),\n funescape = function funescape(escape, nonHex) {\n var high = \"0x\" + escape.slice(1) - 0x10000;\n return nonHex ? // Strip the backslash prefix from a non-hex escape sequence\n nonHex : // Replace a hexadecimal escape sequence with the encoded Unicode code point\n // Support: IE <=11+\n // For values outside the Basic Multilingual Plane (BMP), manually construct a\n // surrogate pair\n high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00);\n },\n // CSS string/identifier serialization\n // https://drafts.csswg.org/cssom/#common-serializing-idioms\n rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n fcssescape = function fcssescape(ch, asCodePoint) {\n if (asCodePoint) {\n // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n if (ch === \"\\0\") {\n return \"\\uFFFD\";\n } // Control characters and (dependent upon position) numbers get escaped as code points\n\n\n return ch.slice(0, -1) + \"\\\\\" + ch.charCodeAt(ch.length - 1).toString(16) + \" \";\n } // Other potentially-special ASCII characters get backslash-escaped\n\n\n return \"\\\\\" + ch;\n },\n // Used for iframes\n // See setDocument()\n // Removing the function wrapper causes a \"Permission Denied\"\n // error in IE\n unloadHandler = function unloadHandler() {\n setDocument();\n },\n inDisabledFieldset = addCombinator(function (elem) {\n return elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n }, {\n dir: \"parentNode\",\n next: \"legend\"\n }); // Optimize for push.apply( _, NodeList )\n\n\n try {\n push.apply(arr = slice.call(preferredDoc.childNodes), preferredDoc.childNodes); // Support: Android<4.0\n // Detect silently failing push.apply\n // eslint-disable-next-line no-unused-expressions\n\n arr[preferredDoc.childNodes.length].nodeType;\n } catch (e) {\n push = {\n apply: arr.length ? // Leverage slice if possible\n function (target, els) {\n pushNative.apply(target, slice.call(els));\n } : // Support: IE<9\n // Otherwise append directly\n function (target, els) {\n var j = target.length,\n i = 0; // Can't trust NodeList.length\n\n while (target[j++] = els[i++]) {}\n\n target.length = j - 1;\n }\n };\n }\n\n function Sizzle(selector, context, results, seed) {\n var m,\n i,\n elem,\n nid,\n match,\n groups,\n newSelector,\n newContext = context && context.ownerDocument,\n // nodeType defaults to 9, since context defaults to document\n nodeType = context ? context.nodeType : 9;\n results = results || []; // Return early from calls with invalid selector or context\n\n if (typeof selector !== \"string\" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) {\n return results;\n } // Try to shortcut find operations (as opposed to filters) in HTML documents\n\n\n if (!seed) {\n setDocument(context);\n context = context || document;\n\n if (documentIsHTML) {\n // If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n // (excepting DocumentFragment context, where the methods don't exist)\n if (nodeType !== 11 && (match = rquickExpr.exec(selector))) {\n // ID selector\n if (m = match[1]) {\n // Document context\n if (nodeType === 9) {\n if (elem = context.getElementById(m)) {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (elem.id === m) {\n results.push(elem);\n return results;\n }\n } else {\n return results;\n } // Element context\n\n } else {\n // Support: IE, Opera, Webkit\n // TODO: identify versions\n // getElementById can match elements by name instead of ID\n if (newContext && (elem = newContext.getElementById(m)) && contains(context, elem) && elem.id === m) {\n results.push(elem);\n return results;\n }\n } // Type selector\n\n } else if (match[2]) {\n push.apply(results, context.getElementsByTagName(selector));\n return results; // Class selector\n } else if ((m = match[3]) && support.getElementsByClassName && context.getElementsByClassName) {\n push.apply(results, context.getElementsByClassName(m));\n return results;\n }\n } // Take advantage of querySelectorAll\n\n\n if (support.qsa && !nonnativeSelectorCache[selector + \" \"] && (!rbuggyQSA || !rbuggyQSA.test(selector)) && ( // Support: IE 8 only\n // Exclude object elements\n nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\")) {\n newSelector = selector;\n newContext = context; // qSA considers elements outside a scoping root when evaluating child or\n // descendant combinators, which is not what we want.\n // In such cases, we work around the behavior by prefixing every selector in the\n // list with an ID selector referencing the scope context.\n // The technique has to be used as well when a leading combinator is used\n // as such selectors are not recognized by querySelectorAll.\n // Thanks to Andrew Dupont for this technique.\n\n if (nodeType === 1 && (rdescend.test(selector) || rcombinators.test(selector))) {\n // Expand context for sibling selectors\n newContext = rsibling.test(selector) && testContext(context.parentNode) || context; // We can use :scope instead of the ID hack if the browser\n // supports it & if we're not changing the context.\n\n if (newContext !== context || !support.scope) {\n // Capture the context ID, setting it first if necessary\n if (nid = context.getAttribute(\"id\")) {\n nid = nid.replace(rcssescape, fcssescape);\n } else {\n context.setAttribute(\"id\", nid = expando);\n }\n } // Prefix every selector in the list\n\n\n groups = tokenize(selector);\n i = groups.length;\n\n while (i--) {\n groups[i] = (nid ? \"#\" + nid : \":scope\") + \" \" + toSelector(groups[i]);\n }\n\n newSelector = groups.join(\",\");\n }\n\n try {\n push.apply(results, newContext.querySelectorAll(newSelector));\n return results;\n } catch (qsaError) {\n nonnativeSelectorCache(selector, true);\n } finally {\n if (nid === expando) {\n context.removeAttribute(\"id\");\n }\n }\n }\n }\n } // All others\n\n\n return select(selector.replace(rtrim, \"$1\"), context, results, seed);\n }\n /**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\n\n\n function createCache() {\n var keys = [];\n\n function cache(key, value) {\n // Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n if (keys.push(key + \" \") > Expr.cacheLength) {\n // Only keep the most recent entries\n delete cache[keys.shift()];\n }\n\n return cache[key + \" \"] = value;\n }\n\n return cache;\n }\n /**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\n\n\n function markFunction(fn) {\n fn[expando] = true;\n return fn;\n }\n /**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\n\n\n function assert(fn) {\n var el = document.createElement(\"fieldset\");\n\n try {\n return !!fn(el);\n } catch (e) {\n return false;\n } finally {\n // Remove from its parent by default\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n } // release memory in IE\n\n\n el = null;\n }\n }\n /**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\n\n\n function addHandle(attrs, handler) {\n var arr = attrs.split(\"|\"),\n i = arr.length;\n\n while (i--) {\n Expr.attrHandle[arr[i]] = handler;\n }\n }\n /**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\n\n\n function siblingCheck(a, b) {\n var cur = b && a,\n diff = cur && a.nodeType === 1 && b.nodeType === 1 && a.sourceIndex - b.sourceIndex; // Use IE sourceIndex if available on both nodes\n\n if (diff) {\n return diff;\n } // Check if b follows a\n\n\n if (cur) {\n while (cur = cur.nextSibling) {\n if (cur === b) {\n return -1;\n }\n }\n }\n\n return a ? 1 : -1;\n }\n /**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\n\n\n function createInputPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\n\n\n function createButtonPseudo(type) {\n return function (elem) {\n var name = elem.nodeName.toLowerCase();\n return (name === \"input\" || name === \"button\") && elem.type === type;\n };\n }\n /**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\n\n\n function createDisabledPseudo(disabled) {\n // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n return function (elem) {\n // Only certain elements can match :enabled or :disabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n if (\"form\" in elem) {\n // Check for inherited disabledness on relevant non-disabled elements:\n // * listed form-associated elements in a disabled fieldset\n // https://html.spec.whatwg.org/multipage/forms.html#category-listed\n // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n // * option elements in a disabled optgroup\n // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n // All such elements have a \"form\" property.\n if (elem.parentNode && elem.disabled === false) {\n // Option elements defer to a parent optgroup if present\n if (\"label\" in elem) {\n if (\"label\" in elem.parentNode) {\n return elem.parentNode.disabled === disabled;\n } else {\n return elem.disabled === disabled;\n }\n } // Support: IE 6 - 11\n // Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\n\n return elem.isDisabled === disabled || // Where there is no isDisabled, check manually\n\n /* jshint -W018 */\n elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled;\n }\n\n return elem.disabled === disabled; // Try to winnow out elements that can't be disabled before trusting the disabled property.\n // Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n // even exist on them, let alone have a boolean value.\n } else if (\"label\" in elem) {\n return elem.disabled === disabled;\n } // Remaining elements are neither :enabled nor :disabled\n\n\n return false;\n };\n }\n /**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\n\n\n function createPositionalPseudo(fn) {\n return markFunction(function (argument) {\n argument = +argument;\n return markFunction(function (seed, matches) {\n var j,\n matchIndexes = fn([], seed.length, argument),\n i = matchIndexes.length; // Match elements found at the specified indexes\n\n while (i--) {\n if (seed[j = matchIndexes[i]]) {\n seed[j] = !(matches[j] = seed[j]);\n }\n }\n });\n });\n }\n /**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\n\n\n function testContext(context) {\n return context && typeof context.getElementsByTagName !== \"undefined\" && context;\n } // Expose support vars for convenience\n\n\n support = Sizzle.support = {};\n /**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\n\n isXML = Sizzle.isXML = function (elem) {\n var namespace = elem.namespaceURI,\n docElem = (elem.ownerDocument || elem).documentElement; // Support: IE <=8\n // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n // https://bugs.jquery.com/ticket/4833\n\n return !rhtml.test(namespace || docElem && docElem.nodeName || \"HTML\");\n };\n /**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\n\n\n setDocument = Sizzle.setDocument = function (node) {\n var hasCompare,\n subWindow,\n doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (doc == document || doc.nodeType !== 9 || !doc.documentElement) {\n return document;\n } // Update global variables\n\n\n document = doc;\n docElem = document.documentElement;\n documentIsHTML = !isXML(document); // Support: IE 9 - 11+, Edge 12 - 18+\n // Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) {\n // Support: IE 11, Edge\n if (subWindow.addEventListener) {\n subWindow.addEventListener(\"unload\", unloadHandler, false); // Support: IE 9 - 10 only\n } else if (subWindow.attachEvent) {\n subWindow.attachEvent(\"onunload\", unloadHandler);\n }\n } // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n // Safari 4 - 5 only, Opera <=11.6 - 12.x only\n // IE/Edge & older browsers don't support the :scope pseudo-class.\n // Support: Safari 6.0 only\n // Safari 6.0 supports :scope but it's an alias of :root there.\n\n\n support.scope = assert(function (el) {\n docElem.appendChild(el).appendChild(document.createElement(\"div\"));\n return typeof el.querySelectorAll !== \"undefined\" && !el.querySelectorAll(\":scope fieldset div\").length;\n });\n /* Attributes\n ---------------------------------------------------------------------- */\n // Support: IE<8\n // Verify that getAttribute really returns attributes and not properties\n // (excepting IE8 booleans)\n\n support.attributes = assert(function (el) {\n el.className = \"i\";\n return !el.getAttribute(\"className\");\n });\n /* getElement(s)By*\n ---------------------------------------------------------------------- */\n // Check if getElementsByTagName(\"*\") returns only elements\n\n support.getElementsByTagName = assert(function (el) {\n el.appendChild(document.createComment(\"\"));\n return !el.getElementsByTagName(\"*\").length;\n }); // Support: IE<9\n\n support.getElementsByClassName = rnative.test(document.getElementsByClassName); // Support: IE<10\n // Check if getElementById returns elements by name\n // The broken getElementById methods don't pick up programmatically-set names,\n // so use a roundabout getElementsByName test\n\n support.getById = assert(function (el) {\n docElem.appendChild(el).id = expando;\n return !document.getElementsByName || !document.getElementsByName(expando).length;\n }); // ID filter and find\n\n if (support.getById) {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n return elem.getAttribute(\"id\") === attrId;\n };\n };\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var elem = context.getElementById(id);\n return elem ? [elem] : [];\n }\n };\n } else {\n Expr.filter[\"ID\"] = function (id) {\n var attrId = id.replace(runescape, funescape);\n return function (elem) {\n var node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n return node && node.value === attrId;\n };\n }; // Support: IE 6 - 7 only\n // getElementById is not reliable as a find shortcut\n\n\n Expr.find[\"ID\"] = function (id, context) {\n if (typeof context.getElementById !== \"undefined\" && documentIsHTML) {\n var node,\n i,\n elems,\n elem = context.getElementById(id);\n\n if (elem) {\n // Verify the id attribute\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n } // Fall back on getElementsByName\n\n\n elems = context.getElementsByName(id);\n i = 0;\n\n while (elem = elems[i++]) {\n node = elem.getAttributeNode(\"id\");\n\n if (node && node.value === id) {\n return [elem];\n }\n }\n }\n\n return [];\n }\n };\n } // Tag\n\n\n Expr.find[\"TAG\"] = support.getElementsByTagName ? function (tag, context) {\n if (typeof context.getElementsByTagName !== \"undefined\") {\n return context.getElementsByTagName(tag); // DocumentFragment nodes don't have gEBTN\n } else if (support.qsa) {\n return context.querySelectorAll(tag);\n }\n } : function (tag, context) {\n var elem,\n tmp = [],\n i = 0,\n // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n results = context.getElementsByTagName(tag); // Filter out possible comments\n\n if (tag === \"*\") {\n while (elem = results[i++]) {\n if (elem.nodeType === 1) {\n tmp.push(elem);\n }\n }\n\n return tmp;\n }\n\n return results;\n }; // Class\n\n Expr.find[\"CLASS\"] = support.getElementsByClassName && function (className, context) {\n if (typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML) {\n return context.getElementsByClassName(className);\n }\n };\n /* QSA/matchesSelector\n ---------------------------------------------------------------------- */\n // QSA and matchesSelector support\n // matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\n\n rbuggyMatches = []; // qSa(:focus) reports false when true (Chrome 21)\n // We allow this because of a bug in IE8/9 that throws an error\n // whenever `document.activeElement` is accessed on an iframe\n // So, we allow :focus to pass through QSA all the time to avoid the IE error\n // See https://bugs.jquery.com/ticket/13378\n\n rbuggyQSA = [];\n\n if (support.qsa = rnative.test(document.querySelectorAll)) {\n // Build QSA regex\n // Regex strategy adopted from Diego Perini\n assert(function (el) {\n var input; // Select is set to empty string on purpose\n // This is to test IE's treatment of not explicitly\n // setting a boolean content attribute,\n // since its presence should be enough\n // https://bugs.jquery.com/ticket/12359\n\n docElem.appendChild(el).innerHTML = \"\" + \"\"; // Support: IE8, Opera 11-12.16\n // Nothing should be selected when empty strings follow ^= or $= or *=\n // The test attribute must be unknown in Opera but \"safe\" for WinRT\n // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\n if (el.querySelectorAll(\"[msallowcapture^='']\").length) {\n rbuggyQSA.push(\"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Support: IE8\n // Boolean attributes and \"value\" are not treated correctly\n\n\n if (!el.querySelectorAll(\"[selected]\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\");\n } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\n\n if (!el.querySelectorAll(\"[id~=\" + expando + \"-]\").length) {\n rbuggyQSA.push(\"~=\");\n } // Support: IE 11+, Edge 15 - 18+\n // IE 11/Edge don't find elements on a `[name='']` query in some cases.\n // Adding a temporary attribute to the document before the selection works\n // around the issue.\n // Interestingly, IE 10 & older don't seem to have the issue.\n\n\n input = document.createElement(\"input\");\n input.setAttribute(\"name\", \"\");\n el.appendChild(input);\n\n if (!el.querySelectorAll(\"[name='']\").length) {\n rbuggyQSA.push(\"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" + whitespace + \"*(?:''|\\\"\\\")\");\n } // Webkit/Opera - :checked should return selected option elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n // IE8 throws error here and will not see later tests\n\n\n if (!el.querySelectorAll(\":checked\").length) {\n rbuggyQSA.push(\":checked\");\n } // Support: Safari 8+, iOS 8+\n // https://bugs.webkit.org/show_bug.cgi?id=136851\n // In-page `selector#id sibling-combinator selector` fails\n\n\n if (!el.querySelectorAll(\"a#\" + expando + \"+*\").length) {\n rbuggyQSA.push(\".#.+[+~]\");\n } // Support: Firefox <=3.6 - 5 only\n // Old Firefox doesn't throw on a badly-escaped identifier.\n\n\n el.querySelectorAll(\"\\\\\\f\");\n rbuggyQSA.push(\"[\\\\r\\\\n\\\\f]\");\n });\n assert(function (el) {\n el.innerHTML = \"\" + \"\"; // Support: Windows 8 Native Apps\n // The type and name attributes are restricted during .innerHTML assignment\n\n var input = document.createElement(\"input\");\n input.setAttribute(\"type\", \"hidden\");\n el.appendChild(input).setAttribute(\"name\", \"D\"); // Support: IE8\n // Enforce case-sensitivity of name attribute\n\n if (el.querySelectorAll(\"[name=d]\").length) {\n rbuggyQSA.push(\"name\" + whitespace + \"*[*^$|!~]?=\");\n } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n // IE8 throws error here and will not see later tests\n\n\n if (el.querySelectorAll(\":enabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: IE9-11+\n // IE's :disabled selector does not pick up the children of disabled fieldsets\n\n\n docElem.appendChild(el).disabled = true;\n\n if (el.querySelectorAll(\":disabled\").length !== 2) {\n rbuggyQSA.push(\":enabled\", \":disabled\");\n } // Support: Opera 10 - 11 only\n // Opera 10-11 does not throw on post-comma invalid pseudos\n\n\n el.querySelectorAll(\"*,:x\");\n rbuggyQSA.push(\",.*:\");\n });\n }\n\n if (support.matchesSelector = rnative.test(matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector)) {\n assert(function (el) {\n // Check to see if it's possible to do matchesSelector\n // on a disconnected node (IE 9)\n support.disconnectedMatch = matches.call(el, \"*\"); // This should fail with an exception\n // Gecko does not error, returns false instead\n\n matches.call(el, \"[s!='']:x\");\n rbuggyMatches.push(\"!=\", pseudos);\n });\n }\n\n rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join(\"|\"));\n rbuggyMatches = rbuggyMatches.length && new RegExp(rbuggyMatches.join(\"|\"));\n /* Contains\n ---------------------------------------------------------------------- */\n\n hasCompare = rnative.test(docElem.compareDocumentPosition); // Element contains another\n // Purposefully self-exclusive\n // As in, an element does not contain itself\n\n contains = hasCompare || rnative.test(docElem.contains) ? function (a, b) {\n var adown = a.nodeType === 9 ? a.documentElement : a,\n bup = b && b.parentNode;\n return a === bup || !!(bup && bup.nodeType === 1 && (adown.contains ? adown.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16));\n } : function (a, b) {\n if (b) {\n while (b = b.parentNode) {\n if (b === a) {\n return true;\n }\n }\n }\n\n return false;\n };\n /* Sorting\n ---------------------------------------------------------------------- */\n // Document order sorting\n\n sortOrder = hasCompare ? function (a, b) {\n // Flag for duplicate removal\n if (a === b) {\n hasDuplicate = true;\n return 0;\n } // Sort on method existence if only one input has compareDocumentPosition\n\n\n var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\n if (compare) {\n return compare;\n } // Calculate position if both inputs belong to the same document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : // Otherwise we know they are disconnected\n 1; // Disconnected nodes\n\n if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) {\n // Choose the first element that is related to our preferred document\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if (a == document || a.ownerDocument == preferredDoc && contains(preferredDoc, a)) {\n return -1;\n } // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n\n if (b == document || b.ownerDocument == preferredDoc && contains(preferredDoc, b)) {\n return 1;\n } // Maintain original order\n\n\n return sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0;\n }\n\n return compare & 4 ? -1 : 1;\n } : function (a, b) {\n // Exit early if the nodes are identical\n if (a === b) {\n hasDuplicate = true;\n return 0;\n }\n\n var cur,\n i = 0,\n aup = a.parentNode,\n bup = b.parentNode,\n ap = [a],\n bp = [b]; // Parentless nodes are either documents or disconnected\n\n if (!aup || !bup) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n return a == document ? -1 : b == document ? 1 :\n /* eslint-enable eqeqeq */\n aup ? -1 : bup ? 1 : sortInput ? indexOf(sortInput, a) - indexOf(sortInput, b) : 0; // If the nodes are siblings, we can do a quick check\n } else if (aup === bup) {\n return siblingCheck(a, b);\n } // Otherwise we need full lists of their ancestors for comparison\n\n\n cur = a;\n\n while (cur = cur.parentNode) {\n ap.unshift(cur);\n }\n\n cur = b;\n\n while (cur = cur.parentNode) {\n bp.unshift(cur);\n } // Walk down the tree looking for a discrepancy\n\n\n while (ap[i] === bp[i]) {\n i++;\n }\n\n return i ? // Do a sibling check if the nodes have a common ancestor\n siblingCheck(ap[i], bp[i]) : // Otherwise nodes in our document sort first\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n\n /* eslint-disable eqeqeq */\n ap[i] == preferredDoc ? -1 : bp[i] == preferredDoc ? 1 :\n /* eslint-enable eqeqeq */\n 0;\n };\n return document;\n };\n\n Sizzle.matches = function (expr, elements) {\n return Sizzle(expr, null, null, elements);\n };\n\n Sizzle.matchesSelector = function (elem, expr) {\n setDocument(elem);\n\n if (support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[expr + \" \"] && (!rbuggyMatches || !rbuggyMatches.test(expr)) && (!rbuggyQSA || !rbuggyQSA.test(expr))) {\n try {\n var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes\n\n if (ret || support.disconnectedMatch || // As well, disconnected nodes are said to be in a document\n // fragment in IE 9\n elem.document && elem.document.nodeType !== 11) {\n return ret;\n }\n } catch (e) {\n nonnativeSelectorCache(expr, true);\n }\n }\n\n return Sizzle(expr, document, null, [elem]).length > 0;\n };\n\n Sizzle.contains = function (context, elem) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((context.ownerDocument || context) != document) {\n setDocument(context);\n }\n\n return contains(context, elem);\n };\n\n Sizzle.attr = function (elem, name) {\n // Set document vars if needed\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n if ((elem.ownerDocument || elem) != document) {\n setDocument(elem);\n }\n\n var fn = Expr.attrHandle[name.toLowerCase()],\n // Don't get fooled by Object.prototype properties (jQuery #13807)\n val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined;\n return val !== undefined ? val : support.attributes || !documentIsHTML ? elem.getAttribute(name) : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n };\n\n Sizzle.escape = function (sel) {\n return (sel + \"\").replace(rcssescape, fcssescape);\n };\n\n Sizzle.error = function (msg) {\n throw new Error(\"Syntax error, unrecognized expression: \" + msg);\n };\n /**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\n\n\n Sizzle.uniqueSort = function (results) {\n var elem,\n duplicates = [],\n j = 0,\n i = 0; // Unless we *know* we can detect duplicates, assume their presence\n\n hasDuplicate = !support.detectDuplicates;\n sortInput = !support.sortStable && results.slice(0);\n results.sort(sortOrder);\n\n if (hasDuplicate) {\n while (elem = results[i++]) {\n if (elem === results[i]) {\n j = duplicates.push(i);\n }\n }\n\n while (j--) {\n results.splice(duplicates[j], 1);\n }\n } // Clear input after sorting to release objects\n // See https://github.com/jquery/sizzle/pull/225\n\n\n sortInput = null;\n return results;\n };\n /**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\n\n\n getText = Sizzle.getText = function (elem) {\n var node,\n ret = \"\",\n i = 0,\n nodeType = elem.nodeType;\n\n if (!nodeType) {\n // If no nodeType, this is expected to be an array\n while (node = elem[i++]) {\n // Do not traverse comment nodes\n ret += getText(node);\n }\n } else if (nodeType === 1 || nodeType === 9 || nodeType === 11) {\n // Use textContent for elements\n // innerText usage removed for consistency of new lines (jQuery #11153)\n if (typeof elem.textContent === \"string\") {\n return elem.textContent;\n } else {\n // Traverse its children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n ret += getText(elem);\n }\n }\n } else if (nodeType === 3 || nodeType === 4) {\n return elem.nodeValue;\n } // Do not include comment or processing instruction nodes\n\n\n return ret;\n };\n\n Expr = Sizzle.selectors = {\n // Can be adjusted by the user\n cacheLength: 50,\n createPseudo: markFunction,\n match: matchExpr,\n attrHandle: {},\n find: {},\n relative: {\n \">\": {\n dir: \"parentNode\",\n first: true\n },\n \" \": {\n dir: \"parentNode\"\n },\n \"+\": {\n dir: \"previousSibling\",\n first: true\n },\n \"~\": {\n dir: \"previousSibling\"\n }\n },\n preFilter: {\n \"ATTR\": function ATTR(match) {\n match[1] = match[1].replace(runescape, funescape); // Move the given value to match[3] whether quoted or unquoted\n\n match[3] = (match[3] || match[4] || match[5] || \"\").replace(runescape, funescape);\n\n if (match[2] === \"~=\") {\n match[3] = \" \" + match[3] + \" \";\n }\n\n return match.slice(0, 4);\n },\n \"CHILD\": function CHILD(match) {\n /* matches from matchExpr[\"CHILD\"]\n \t1 type (only|nth|...)\n \t2 what (child|of-type)\n \t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n \t4 xn-component of xn+y argument ([+-]?\\d*n|)\n \t5 sign of xn-component\n \t6 x of xn-component\n \t7 sign of y-component\n \t8 y of y-component\n */\n match[1] = match[1].toLowerCase();\n\n if (match[1].slice(0, 3) === \"nth\") {\n // nth-* requires argument\n if (!match[3]) {\n Sizzle.error(match[0]);\n } // numeric x and y parameters for Expr.filter.CHILD\n // remember that false/true cast respectively to 0/1\n\n\n match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === \"even\" || match[3] === \"odd\"));\n match[5] = +(match[7] + match[8] || match[3] === \"odd\"); // other types prohibit arguments\n } else if (match[3]) {\n Sizzle.error(match[0]);\n }\n\n return match;\n },\n \"PSEUDO\": function PSEUDO(match) {\n var excess,\n unquoted = !match[6] && match[2];\n\n if (matchExpr[\"CHILD\"].test(match[0])) {\n return null;\n } // Accept quoted arguments as-is\n\n\n if (match[3]) {\n match[2] = match[4] || match[5] || \"\"; // Strip excess characters from unquoted arguments\n } else if (unquoted && rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively)\n excess = tokenize(unquoted, true)) && ( // advance to the next closing parenthesis\n excess = unquoted.indexOf(\")\", unquoted.length - excess) - unquoted.length)) {\n // excess is a negative index\n match[0] = match[0].slice(0, excess);\n match[2] = unquoted.slice(0, excess);\n } // Return only captures needed by the pseudo filter method (type and argument)\n\n\n return match.slice(0, 3);\n }\n },\n filter: {\n \"TAG\": function TAG(nodeNameSelector) {\n var nodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase();\n return nodeNameSelector === \"*\" ? function () {\n return true;\n } : function (elem) {\n return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n };\n },\n \"CLASS\": function CLASS(className) {\n var pattern = classCache[className + \" \"];\n return pattern || (pattern = new RegExp(\"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\")) && classCache(className, function (elem) {\n return pattern.test(typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\");\n });\n },\n \"ATTR\": function ATTR(name, operator, check) {\n return function (elem) {\n var result = Sizzle.attr(elem, name);\n\n if (result == null) {\n return operator === \"!=\";\n }\n\n if (!operator) {\n return true;\n }\n\n result += \"\";\n /* eslint-disable max-len */\n\n return operator === \"=\" ? result === check : operator === \"!=\" ? result !== check : operator === \"^=\" ? check && result.indexOf(check) === 0 : operator === \"*=\" ? check && result.indexOf(check) > -1 : operator === \"$=\" ? check && result.slice(-check.length) === check : operator === \"~=\" ? (\" \" + result.replace(rwhitespace, \" \") + \" \").indexOf(check) > -1 : operator === \"|=\" ? result === check || result.slice(0, check.length + 1) === check + \"-\" : false;\n /* eslint-enable max-len */\n };\n },\n \"CHILD\": function CHILD(type, what, _argument, first, last) {\n var simple = type.slice(0, 3) !== \"nth\",\n forward = type.slice(-4) !== \"last\",\n ofType = what === \"of-type\";\n return first === 1 && last === 0 ? // Shortcut for :nth-*(n)\n function (elem) {\n return !!elem.parentNode;\n } : function (elem, _context, xml) {\n var cache,\n uniqueCache,\n outerCache,\n node,\n nodeIndex,\n start,\n dir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n parent = elem.parentNode,\n name = ofType && elem.nodeName.toLowerCase(),\n useCache = !xml && !ofType,\n diff = false;\n\n if (parent) {\n // :(first|last|only)-(child|of-type)\n if (simple) {\n while (dir) {\n node = elem;\n\n while (node = node[dir]) {\n if (ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) {\n return false;\n }\n } // Reverse direction for :only-* (if we haven't yet done so)\n\n\n start = dir = type === \"only\" && !start && \"nextSibling\";\n }\n\n return true;\n }\n\n start = [forward ? parent.firstChild : parent.lastChild]; // non-xml :nth-child(...) stores cache data on `parent`\n\n if (forward && useCache) {\n // Seek `elem` from a previously-cached index\n // ...in a gzip-friendly way\n node = parent;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex && cache[2];\n node = nodeIndex && parent.childNodes[nodeIndex];\n\n while (node = ++nodeIndex && node && node[dir] || ( // Fallback to seeking `elem` from the start\n diff = nodeIndex = 0) || start.pop()) {\n // When found, cache indexes on `parent` and break\n if (node.nodeType === 1 && ++diff && node === elem) {\n uniqueCache[type] = [dirruns, nodeIndex, diff];\n break;\n }\n }\n } else {\n // Use previously-cached element index if available\n if (useCache) {\n // ...in a gzip-friendly way\n node = elem;\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n cache = uniqueCache[type] || [];\n nodeIndex = cache[0] === dirruns && cache[1];\n diff = nodeIndex;\n } // xml :nth-child(...)\n // or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\n\n if (diff === false) {\n // Use the same loop as above to seek `elem` from the start\n while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) {\n if ((ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1) && ++diff) {\n // Cache the index of each encountered element\n if (useCache) {\n outerCache = node[expando] || (node[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[node.uniqueID] || (outerCache[node.uniqueID] = {});\n uniqueCache[type] = [dirruns, diff];\n }\n\n if (node === elem) {\n break;\n }\n }\n }\n }\n } // Incorporate the offset, then check against cycle size\n\n\n diff -= last;\n return diff === first || diff % first === 0 && diff / first >= 0;\n }\n };\n },\n \"PSEUDO\": function PSEUDO(pseudo, argument) {\n // pseudo-class names are case-insensitive\n // http://www.w3.org/TR/selectors/#pseudo-classes\n // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n // Remember that setFilters inherits from pseudos\n var args,\n fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || Sizzle.error(\"unsupported pseudo: \" + pseudo); // The user may use createPseudo to indicate that\n // arguments are needed to create the filter function\n // just as Sizzle does\n\n if (fn[expando]) {\n return fn(argument);\n } // But maintain support for old signatures\n\n\n if (fn.length > 1) {\n args = [pseudo, pseudo, \"\", argument];\n return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) {\n var idx,\n matched = fn(seed, argument),\n i = matched.length;\n\n while (i--) {\n idx = indexOf(seed, matched[i]);\n seed[idx] = !(matches[idx] = matched[i]);\n }\n }) : function (elem) {\n return fn(elem, 0, args);\n };\n }\n\n return fn;\n }\n },\n pseudos: {\n // Potentially complex pseudos\n \"not\": markFunction(function (selector) {\n // Trim the selector passed to compile\n // to avoid treating leading and trailing\n // spaces as combinators\n var input = [],\n results = [],\n matcher = compile(selector.replace(rtrim, \"$1\"));\n return matcher[expando] ? markFunction(function (seed, matches, _context, xml) {\n var elem,\n unmatched = matcher(seed, null, xml, []),\n i = seed.length; // Match elements unmatched by `matcher`\n\n while (i--) {\n if (elem = unmatched[i]) {\n seed[i] = !(matches[i] = elem);\n }\n }\n }) : function (elem, _context, xml) {\n input[0] = elem;\n matcher(input, null, xml, results); // Don't keep the element (issue #299)\n\n input[0] = null;\n return !results.pop();\n };\n }),\n \"has\": markFunction(function (selector) {\n return function (elem) {\n return Sizzle(selector, elem).length > 0;\n };\n }),\n \"contains\": markFunction(function (text) {\n text = text.replace(runescape, funescape);\n return function (elem) {\n return (elem.textContent || getText(elem)).indexOf(text) > -1;\n };\n }),\n // \"Whether an element is represented by a :lang() selector\n // is based solely on the element's language value\n // being equal to the identifier C,\n // or beginning with the identifier C immediately followed by \"-\".\n // The matching of C against the element's language value is performed case-insensitively.\n // The identifier C does not have to be a valid language name.\"\n // http://www.w3.org/TR/selectors/#lang-pseudo\n \"lang\": markFunction(function (lang) {\n // lang value must be a valid identifier\n if (!ridentifier.test(lang || \"\")) {\n Sizzle.error(\"unsupported lang: \" + lang);\n }\n\n lang = lang.replace(runescape, funescape).toLowerCase();\n return function (elem) {\n var elemLang;\n\n do {\n if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) {\n elemLang = elemLang.toLowerCase();\n return elemLang === lang || elemLang.indexOf(lang + \"-\") === 0;\n }\n } while ((elem = elem.parentNode) && elem.nodeType === 1);\n\n return false;\n };\n }),\n // Miscellaneous\n \"target\": function target(elem) {\n var hash = window.location && window.location.hash;\n return hash && hash.slice(1) === elem.id;\n },\n \"root\": function root(elem) {\n return elem === docElem;\n },\n \"focus\": function focus(elem) {\n return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n },\n // Boolean properties\n \"enabled\": createDisabledPseudo(false),\n \"disabled\": createDisabledPseudo(true),\n \"checked\": function checked(elem) {\n // In CSS3, :checked should return both checked and selected elements\n // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n var nodeName = elem.nodeName.toLowerCase();\n return nodeName === \"input\" && !!elem.checked || nodeName === \"option\" && !!elem.selected;\n },\n \"selected\": function selected(elem) {\n // Accessing this property makes selected-by-default\n // options in Safari work properly\n if (elem.parentNode) {\n // eslint-disable-next-line no-unused-expressions\n elem.parentNode.selectedIndex;\n }\n\n return elem.selected === true;\n },\n // Contents\n \"empty\": function empty(elem) {\n // http://www.w3.org/TR/selectors/#empty-pseudo\n // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n // but not by others (comment: 8; processing instruction: 7; etc.)\n // nodeType < 6 works because attributes (2) do not appear as children\n for (elem = elem.firstChild; elem; elem = elem.nextSibling) {\n if (elem.nodeType < 6) {\n return false;\n }\n }\n\n return true;\n },\n \"parent\": function parent(elem) {\n return !Expr.pseudos[\"empty\"](elem);\n },\n // Element/input types\n \"header\": function header(elem) {\n return rheader.test(elem.nodeName);\n },\n \"input\": function input(elem) {\n return rinputs.test(elem.nodeName);\n },\n \"button\": function button(elem) {\n var name = elem.nodeName.toLowerCase();\n return name === \"input\" && elem.type === \"button\" || name === \"button\";\n },\n \"text\": function text(elem) {\n var attr;\n return elem.nodeName.toLowerCase() === \"input\" && elem.type === \"text\" && ( // Support: IE<8\n // New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\");\n },\n // Position-in-collection\n \"first\": createPositionalPseudo(function () {\n return [0];\n }),\n \"last\": createPositionalPseudo(function (_matchIndexes, length) {\n return [length - 1];\n }),\n \"eq\": createPositionalPseudo(function (_matchIndexes, length, argument) {\n return [argument < 0 ? argument + length : argument];\n }),\n \"even\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 0;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"odd\": createPositionalPseudo(function (matchIndexes, length) {\n var i = 1;\n\n for (; i < length; i += 2) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"lt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument > length ? length : argument;\n\n for (; --i >= 0;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n }),\n \"gt\": createPositionalPseudo(function (matchIndexes, length, argument) {\n var i = argument < 0 ? argument + length : argument;\n\n for (; ++i < length;) {\n matchIndexes.push(i);\n }\n\n return matchIndexes;\n })\n }\n };\n Expr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"]; // Add button/input type pseudos\n\n for (i in {\n radio: true,\n checkbox: true,\n file: true,\n password: true,\n image: true\n }) {\n Expr.pseudos[i] = createInputPseudo(i);\n }\n\n for (i in {\n submit: true,\n reset: true\n }) {\n Expr.pseudos[i] = createButtonPseudo(i);\n } // Easy API for creating new setFilters\n\n\n function setFilters() {}\n\n setFilters.prototype = Expr.filters = Expr.pseudos;\n Expr.setFilters = new setFilters();\n\n tokenize = Sizzle.tokenize = function (selector, parseOnly) {\n var matched,\n match,\n tokens,\n type,\n soFar,\n groups,\n preFilters,\n cached = tokenCache[selector + \" \"];\n\n if (cached) {\n return parseOnly ? 0 : cached.slice(0);\n }\n\n soFar = selector;\n groups = [];\n preFilters = Expr.preFilter;\n\n while (soFar) {\n // Comma and first run\n if (!matched || (match = rcomma.exec(soFar))) {\n if (match) {\n // Don't consume trailing commas as valid\n soFar = soFar.slice(match[0].length) || soFar;\n }\n\n groups.push(tokens = []);\n }\n\n matched = false; // Combinators\n\n if (match = rcombinators.exec(soFar)) {\n matched = match.shift();\n tokens.push({\n value: matched,\n // Cast descendant combinators to space\n type: match[0].replace(rtrim, \" \")\n });\n soFar = soFar.slice(matched.length);\n } // Filters\n\n\n for (type in Expr.filter) {\n if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) {\n matched = match.shift();\n tokens.push({\n value: matched,\n type: type,\n matches: match\n });\n soFar = soFar.slice(matched.length);\n }\n }\n\n if (!matched) {\n break;\n }\n } // Return the length of the invalid excess\n // if we're just parsing\n // Otherwise, throw an error or return tokens\n\n\n return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens\n tokenCache(selector, groups).slice(0);\n };\n\n function toSelector(tokens) {\n var i = 0,\n len = tokens.length,\n selector = \"\";\n\n for (; i < len; i++) {\n selector += tokens[i].value;\n }\n\n return selector;\n }\n\n function addCombinator(matcher, combinator, base) {\n var dir = combinator.dir,\n skip = combinator.next,\n key = skip || dir,\n checkNonElements = base && key === \"parentNode\",\n doneName = done++;\n return combinator.first ? // Check against closest ancestor/preceding element\n function (elem, context, xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n return matcher(elem, context, xml);\n }\n }\n\n return false;\n } : // Check against all ancestor/preceding elements\n function (elem, context, xml) {\n var oldCache,\n uniqueCache,\n outerCache,\n newCache = [dirruns, doneName]; // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\n if (xml) {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n if (matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n } else {\n while (elem = elem[dir]) {\n if (elem.nodeType === 1 || checkNonElements) {\n outerCache = elem[expando] || (elem[expando] = {}); // Support: IE <9 only\n // Defend against cloned attroperties (jQuery gh-1709)\n\n uniqueCache = outerCache[elem.uniqueID] || (outerCache[elem.uniqueID] = {});\n\n if (skip && skip === elem.nodeName.toLowerCase()) {\n elem = elem[dir] || elem;\n } else if ((oldCache = uniqueCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) {\n // Assign to newCache so results back-propagate to previous elements\n return newCache[2] = oldCache[2];\n } else {\n // Reuse newcache so results back-propagate to previous elements\n uniqueCache[key] = newCache; // A match means we're done; a fail means we have to keep checking\n\n if (newCache[2] = matcher(elem, context, xml)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n };\n }\n\n function elementMatcher(matchers) {\n return matchers.length > 1 ? function (elem, context, xml) {\n var i = matchers.length;\n\n while (i--) {\n if (!matchers[i](elem, context, xml)) {\n return false;\n }\n }\n\n return true;\n } : matchers[0];\n }\n\n function multipleContexts(selector, contexts, results) {\n var i = 0,\n len = contexts.length;\n\n for (; i < len; i++) {\n Sizzle(selector, contexts[i], results);\n }\n\n return results;\n }\n\n function condense(unmatched, map, filter, context, xml) {\n var elem,\n newUnmatched = [],\n i = 0,\n len = unmatched.length,\n mapped = map != null;\n\n for (; i < len; i++) {\n if (elem = unmatched[i]) {\n if (!filter || filter(elem, context, xml)) {\n newUnmatched.push(elem);\n\n if (mapped) {\n map.push(i);\n }\n }\n }\n }\n\n return newUnmatched;\n }\n\n function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) {\n if (postFilter && !postFilter[expando]) {\n postFilter = setMatcher(postFilter);\n }\n\n if (postFinder && !postFinder[expando]) {\n postFinder = setMatcher(postFinder, postSelector);\n }\n\n return markFunction(function (seed, results, context, xml) {\n var temp,\n i,\n elem,\n preMap = [],\n postMap = [],\n preexisting = results.length,\n // Get initial elements from seed or context\n elems = seed || multipleContexts(selector || \"*\", context.nodeType ? [context] : context, []),\n // Prefilter to get matcher input, preserving a map for seed-results synchronization\n matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems,\n matcherOut = matcher ? // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n postFinder || (seed ? preFilter : preexisting || postFilter) ? // ...intermediate processing is necessary\n [] : // ...otherwise use results directly\n results : matcherIn; // Find primary matches\n\n if (matcher) {\n matcher(matcherIn, matcherOut, context, xml);\n } // Apply postFilter\n\n\n if (postFilter) {\n temp = condense(matcherOut, postMap);\n postFilter(temp, [], context, xml); // Un-match failing elements by moving them back to matcherIn\n\n i = temp.length;\n\n while (i--) {\n if (elem = temp[i]) {\n matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem);\n }\n }\n }\n\n if (seed) {\n if (postFinder || preFilter) {\n if (postFinder) {\n // Get the final matcherOut by condensing this intermediate into postFinder contexts\n temp = [];\n i = matcherOut.length;\n\n while (i--) {\n if (elem = matcherOut[i]) {\n // Restore matcherIn since elem is not yet a final match\n temp.push(matcherIn[i] = elem);\n }\n }\n\n postFinder(null, matcherOut = [], temp, xml);\n } // Move matched elements from seed to results to keep them synchronized\n\n\n i = matcherOut.length;\n\n while (i--) {\n if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf(seed, elem) : preMap[i]) > -1) {\n seed[temp] = !(results[temp] = elem);\n }\n }\n } // Add elements to results, through postFinder if defined\n\n } else {\n matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut);\n\n if (postFinder) {\n postFinder(null, results, matcherOut, xml);\n } else {\n push.apply(results, matcherOut);\n }\n }\n });\n }\n\n function matcherFromTokens(tokens) {\n var checkContext,\n matcher,\n j,\n len = tokens.length,\n leadingRelative = Expr.relative[tokens[0].type],\n implicitRelative = leadingRelative || Expr.relative[\" \"],\n i = leadingRelative ? 1 : 0,\n // The foundational matcher ensures that elements are reachable from top-level context(s)\n matchContext = addCombinator(function (elem) {\n return elem === checkContext;\n }, implicitRelative, true),\n matchAnyContext = addCombinator(function (elem) {\n return indexOf(checkContext, elem) > -1;\n }, implicitRelative, true),\n matchers = [function (elem, context, xml) {\n var ret = !leadingRelative && (xml || context !== outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); // Avoid hanging onto element (issue #299)\n\n checkContext = null;\n return ret;\n }];\n\n for (; i < len; i++) {\n if (matcher = Expr.relative[tokens[i].type]) {\n matchers = [addCombinator(elementMatcher(matchers), matcher)];\n } else {\n matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); // Return special upon seeing a positional matcher\n\n if (matcher[expando]) {\n // Find the next relative operator (if any) for proper handling\n j = ++i;\n\n for (; j < len; j++) {\n if (Expr.relative[tokens[j].type]) {\n break;\n }\n }\n\n return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( // If the preceding token was a descendant combinator, insert an implicit any-element `*`\n tokens.slice(0, i - 1).concat({\n value: tokens[i - 2].type === \" \" ? \"*\" : \"\"\n })).replace(rtrim, \"$1\"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens));\n }\n\n matchers.push(matcher);\n }\n }\n\n return elementMatcher(matchers);\n }\n\n function matcherFromGroupMatchers(elementMatchers, setMatchers) {\n var bySet = setMatchers.length > 0,\n byElement = elementMatchers.length > 0,\n superMatcher = function superMatcher(seed, context, xml, results, outermost) {\n var elem,\n j,\n matcher,\n matchedCount = 0,\n i = \"0\",\n unmatched = seed && [],\n setMatched = [],\n contextBackup = outermostContext,\n // We must always have either seed elements or outermost context\n elems = seed || byElement && Expr.find[\"TAG\"](\"*\", outermost),\n // Use integer dirruns iff this is the outermost matcher\n dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1,\n len = elems.length;\n\n if (outermost) {\n // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n outermostContext = context == document || context || outermost;\n } // Add elements passing elementMatchers directly to results\n // Support: IE<9, Safari\n // Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\n\n for (; i !== len && (elem = elems[i]) != null; i++) {\n if (byElement && elem) {\n j = 0; // Support: IE 11+, Edge 17 - 18+\n // IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n // two documents; shallow comparisons work.\n // eslint-disable-next-line eqeqeq\n\n if (!context && elem.ownerDocument != document) {\n setDocument(elem);\n xml = !documentIsHTML;\n }\n\n while (matcher = elementMatchers[j++]) {\n if (matcher(elem, context || document, xml)) {\n results.push(elem);\n break;\n }\n }\n\n if (outermost) {\n dirruns = dirrunsUnique;\n }\n } // Track unmatched elements for set filters\n\n\n if (bySet) {\n // They will have gone through all possible matchers\n if (elem = !matcher && elem) {\n matchedCount--;\n } // Lengthen the array for every element, matched or not\n\n\n if (seed) {\n unmatched.push(elem);\n }\n }\n } // `i` is now the count of elements visited above, and adding it to `matchedCount`\n // makes the latter nonnegative.\n\n\n matchedCount += i; // Apply set filters to unmatched elements\n // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n // equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n // no element matchers and no seed.\n // Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n // case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n // numerically zero.\n\n if (bySet && i !== matchedCount) {\n j = 0;\n\n while (matcher = setMatchers[j++]) {\n matcher(unmatched, setMatched, context, xml);\n }\n\n if (seed) {\n // Reintegrate element matches to eliminate the need for sorting\n if (matchedCount > 0) {\n while (i--) {\n if (!(unmatched[i] || setMatched[i])) {\n setMatched[i] = pop.call(results);\n }\n }\n } // Discard index placeholder values to get only actual matches\n\n\n setMatched = condense(setMatched);\n } // Add matches to results\n\n\n push.apply(results, setMatched); // Seedless set matches succeeding multiple successful matchers stipulate sorting\n\n if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) {\n Sizzle.uniqueSort(results);\n }\n } // Override manipulation of globals by nested matchers\n\n\n if (outermost) {\n dirruns = dirrunsUnique;\n outermostContext = contextBackup;\n }\n\n return unmatched;\n };\n\n return bySet ? markFunction(superMatcher) : superMatcher;\n }\n\n compile = Sizzle.compile = function (selector, match\n /* Internal Use Only */\n ) {\n var i,\n setMatchers = [],\n elementMatchers = [],\n cached = compilerCache[selector + \" \"];\n\n if (!cached) {\n // Generate a function of recursive functions that can be used to check each element\n if (!match) {\n match = tokenize(selector);\n }\n\n i = match.length;\n\n while (i--) {\n cached = matcherFromTokens(match[i]);\n\n if (cached[expando]) {\n setMatchers.push(cached);\n } else {\n elementMatchers.push(cached);\n }\n } // Cache the compiled function\n\n\n cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); // Save selector and tokenization\n\n cached.selector = selector;\n }\n\n return cached;\n };\n /**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\n\n\n select = Sizzle.select = function (selector, context, results, seed) {\n var i,\n tokens,\n token,\n type,\n find,\n compiled = typeof selector === \"function\" && selector,\n match = !seed && tokenize(selector = compiled.selector || selector);\n results = results || []; // Try to minimize operations if there is only one selector in the list and no seed\n // (the latter of which guarantees us context)\n\n if (match.length === 1) {\n // Reduce context if the leading compound selector is an ID\n tokens = match[0] = match[0].slice(0);\n\n if (tokens.length > 2 && (token = tokens[0]).type === \"ID\" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) {\n context = (Expr.find[\"ID\"](token.matches[0].replace(runescape, funescape), context) || [])[0];\n\n if (!context) {\n return results; // Precompiled matchers will still verify ancestry, so step up a level\n } else if (compiled) {\n context = context.parentNode;\n }\n\n selector = selector.slice(tokens.shift().value.length);\n } // Fetch a seed set for right-to-left matching\n\n\n i = matchExpr[\"needsContext\"].test(selector) ? 0 : tokens.length;\n\n while (i--) {\n token = tokens[i]; // Abort if we hit a combinator\n\n if (Expr.relative[type = token.type]) {\n break;\n }\n\n if (find = Expr.find[type]) {\n // Search, expanding context for leading sibling combinators\n if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) {\n // If seed is empty or no tokens remain, we can return early\n tokens.splice(i, 1);\n selector = seed.length && toSelector(tokens);\n\n if (!selector) {\n push.apply(results, seed);\n return results;\n }\n\n break;\n }\n }\n }\n } // Compile and execute a filtering function if one is not provided\n // Provide `match` to avoid retokenization if we modified the selector above\n\n\n (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context);\n return results;\n }; // One-time assignments\n // Sort stability\n\n\n support.sortStable = expando.split(\"\").sort(sortOrder).join(\"\") === expando; // Support: Chrome 14-35+\n // Always assume duplicates if they aren't passed to the comparison function\n\n support.detectDuplicates = !!hasDuplicate; // Initialize against the default document\n\n setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n // Detached nodes confoundingly follow *each other*\n\n support.sortDetached = assert(function (el) {\n // Should return 1, but returns 4 (following)\n return el.compareDocumentPosition(document.createElement(\"fieldset\")) & 1;\n }); // Support: IE<8\n // Prevent attribute/property \"interpolation\"\n // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\n\n if (!assert(function (el) {\n el.innerHTML = \"\";\n return el.firstChild.getAttribute(\"href\") === \"#\";\n })) {\n addHandle(\"type|href|height|width\", function (elem, name, isXML) {\n if (!isXML) {\n return elem.getAttribute(name, name.toLowerCase() === \"type\" ? 1 : 2);\n }\n });\n } // Support: IE<9\n // Use defaultValue in place of getAttribute(\"value\")\n\n\n if (!support.attributes || !assert(function (el) {\n el.innerHTML = \"\";\n el.firstChild.setAttribute(\"value\", \"\");\n return el.firstChild.getAttribute(\"value\") === \"\";\n })) {\n addHandle(\"value\", function (elem, _name, isXML) {\n if (!isXML && elem.nodeName.toLowerCase() === \"input\") {\n return elem.defaultValue;\n }\n });\n } // Support: IE<9\n // Use getAttributeNode to fetch booleans when getAttribute lies\n\n\n if (!assert(function (el) {\n return el.getAttribute(\"disabled\") == null;\n })) {\n addHandle(booleans, function (elem, name, isXML) {\n var val;\n\n if (!isXML) {\n return elem[name] === true ? name.toLowerCase() : (val = elem.getAttributeNode(name)) && val.specified ? val.value : null;\n }\n });\n }\n\n return Sizzle;\n }(window);\n\n jQuery.find = Sizzle;\n jQuery.expr = Sizzle.selectors; // Deprecated\n\n jQuery.expr[\":\"] = jQuery.expr.pseudos;\n jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\n jQuery.text = Sizzle.getText;\n jQuery.isXMLDoc = Sizzle.isXML;\n jQuery.contains = Sizzle.contains;\n jQuery.escapeSelector = Sizzle.escape;\n\n var dir = function dir(elem, _dir, until) {\n var matched = [],\n truncate = until !== undefined;\n\n while ((elem = elem[_dir]) && elem.nodeType !== 9) {\n if (elem.nodeType === 1) {\n if (truncate && jQuery(elem).is(until)) {\n break;\n }\n\n matched.push(elem);\n }\n }\n\n return matched;\n };\n\n var _siblings = function siblings(n, elem) {\n var matched = [];\n\n for (; n; n = n.nextSibling) {\n if (n.nodeType === 1 && n !== elem) {\n matched.push(n);\n }\n }\n\n return matched;\n };\n\n var rneedsContext = jQuery.expr.match.needsContext;\n\n function nodeName(elem, name) {\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n }\n\n ;\n var rsingleTag = /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i; // Implement the identical functionality for filter and not\n\n function winnow(elements, qualifier, not) {\n if (isFunction(qualifier)) {\n return jQuery.grep(elements, function (elem, i) {\n return !!qualifier.call(elem, i, elem) !== not;\n });\n } // Single element\n\n\n if (qualifier.nodeType) {\n return jQuery.grep(elements, function (elem) {\n return elem === qualifier !== not;\n });\n } // Arraylike of elements (jQuery, arguments, Array)\n\n\n if (typeof qualifier !== \"string\") {\n return jQuery.grep(elements, function (elem) {\n return indexOf.call(qualifier, elem) > -1 !== not;\n });\n } // Filtered directly for both simple and complex selectors\n\n\n return jQuery.filter(qualifier, elements, not);\n }\n\n jQuery.filter = function (expr, elems, not) {\n var elem = elems[0];\n\n if (not) {\n expr = \":not(\" + expr + \")\";\n }\n\n if (elems.length === 1 && elem.nodeType === 1) {\n return jQuery.find.matchesSelector(elem, expr) ? [elem] : [];\n }\n\n return jQuery.find.matches(expr, jQuery.grep(elems, function (elem) {\n return elem.nodeType === 1;\n }));\n };\n\n jQuery.fn.extend({\n find: function find(selector) {\n var i,\n ret,\n len = this.length,\n self = this;\n\n if (typeof selector !== \"string\") {\n return this.pushStack(jQuery(selector).filter(function () {\n for (i = 0; i < len; i++) {\n if (jQuery.contains(self[i], this)) {\n return true;\n }\n }\n }));\n }\n\n ret = this.pushStack([]);\n\n for (i = 0; i < len; i++) {\n jQuery.find(selector, self[i], ret);\n }\n\n return len > 1 ? jQuery.uniqueSort(ret) : ret;\n },\n filter: function filter(selector) {\n return this.pushStack(winnow(this, selector || [], false));\n },\n not: function not(selector) {\n return this.pushStack(winnow(this, selector || [], true));\n },\n is: function is(selector) {\n return !!winnow(this, // If this is a positional/relative selector, check membership in the returned set\n // so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n typeof selector === \"string\" && rneedsContext.test(selector) ? jQuery(selector) : selector || [], false).length;\n }\n }); // Initialize a jQuery object\n // A central reference to the root jQuery(document)\n\n var rootjQuery,\n // A simple way to check for HTML strings\n // Prioritize #id over to avoid XSS via location.hash (#9521)\n // Strict HTML recognition (#11290: must start with <)\n // Shortcut simple #id case for speed\n rquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n init = jQuery.fn.init = function (selector, context, root) {\n var match, elem; // HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\n if (!selector) {\n return this;\n } // Method init() accepts an alternate rootjQuery\n // so migrate can support jQuery.sub (gh-2101)\n\n\n root = root || rootjQuery; // Handle HTML strings\n\n if (typeof selector === \"string\") {\n if (selector[0] === \"<\" && selector[selector.length - 1] === \">\" && selector.length >= 3) {\n // Assume that strings that start and end with <> are HTML and skip the regex check\n match = [null, selector, null];\n } else {\n match = rquickExpr.exec(selector);\n } // Match html or make sure no context is specified for #id\n\n\n if (match && (match[1] || !context)) {\n // HANDLE: $(html) -> $(array)\n if (match[1]) {\n context = context instanceof jQuery ? context[0] : context; // Option to run scripts is true for back-compat\n // Intentionally let the error be thrown if parseHTML is not present\n\n jQuery.merge(this, jQuery.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); // HANDLE: $(html, props)\n\n if (rsingleTag.test(match[1]) && jQuery.isPlainObject(context)) {\n for (match in context) {\n // Properties of context are called as methods if possible\n if (isFunction(this[match])) {\n this[match](context[match]); // ...and otherwise set as attributes\n } else {\n this.attr(match, context[match]);\n }\n }\n }\n\n return this; // HANDLE: $(#id)\n } else {\n elem = document.getElementById(match[2]);\n\n if (elem) {\n // Inject the element directly into the jQuery object\n this[0] = elem;\n this.length = 1;\n }\n\n return this;\n } // HANDLE: $(expr, $(...))\n\n } else if (!context || context.jquery) {\n return (context || root).find(selector); // HANDLE: $(expr, context)\n // (which is just equivalent to: $(context).find(expr)\n } else {\n return this.constructor(context).find(selector);\n } // HANDLE: $(DOMElement)\n\n } else if (selector.nodeType) {\n this[0] = selector;\n this.length = 1;\n return this; // HANDLE: $(function)\n // Shortcut for document ready\n } else if (isFunction(selector)) {\n return root.ready !== undefined ? root.ready(selector) : // Execute immediately if ready is not present\n selector(jQuery);\n }\n\n return jQuery.makeArray(selector, this);\n }; // Give the init function the jQuery prototype for later instantiation\n\n\n init.prototype = jQuery.fn; // Initialize central reference\n\n rootjQuery = jQuery(document);\n var rparentsprev = /^(?:parents|prev(?:Until|All))/,\n // Methods guaranteed to produce a unique set when starting from a unique set\n guaranteedUnique = {\n children: true,\n contents: true,\n next: true,\n prev: true\n };\n jQuery.fn.extend({\n has: function has(target) {\n var targets = jQuery(target, this),\n l = targets.length;\n return this.filter(function () {\n var i = 0;\n\n for (; i < l; i++) {\n if (jQuery.contains(this, targets[i])) {\n return true;\n }\n }\n });\n },\n closest: function closest(selectors, context) {\n var cur,\n i = 0,\n l = this.length,\n matched = [],\n targets = typeof selectors !== \"string\" && jQuery(selectors); // Positional selectors never match, since there's no _selection_ context\n\n if (!rneedsContext.test(selectors)) {\n for (; i < l; i++) {\n for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) {\n // Always skip document fragments\n if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : // Don't pass non-elements to Sizzle\n cur.nodeType === 1 && jQuery.find.matchesSelector(cur, selectors))) {\n matched.push(cur);\n break;\n }\n }\n }\n }\n\n return this.pushStack(matched.length > 1 ? jQuery.uniqueSort(matched) : matched);\n },\n // Determine the position of an element within the set\n index: function index(elem) {\n // No argument, return index in parent\n if (!elem) {\n return this[0] && this[0].parentNode ? this.first().prevAll().length : -1;\n } // Index in selector\n\n\n if (typeof elem === \"string\") {\n return indexOf.call(jQuery(elem), this[0]);\n } // Locate the position of the desired element\n\n\n return indexOf.call(this, // If it receives a jQuery object, the first element is used\n elem.jquery ? elem[0] : elem);\n },\n add: function add(selector, context) {\n return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(), jQuery(selector, context))));\n },\n addBack: function addBack(selector) {\n return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector));\n }\n });\n\n function sibling(cur, dir) {\n while ((cur = cur[dir]) && cur.nodeType !== 1) {}\n\n return cur;\n }\n\n jQuery.each({\n parent: function parent(elem) {\n var parent = elem.parentNode;\n return parent && parent.nodeType !== 11 ? parent : null;\n },\n parents: function parents(elem) {\n return dir(elem, \"parentNode\");\n },\n parentsUntil: function parentsUntil(elem, _i, until) {\n return dir(elem, \"parentNode\", until);\n },\n next: function next(elem) {\n return sibling(elem, \"nextSibling\");\n },\n prev: function prev(elem) {\n return sibling(elem, \"previousSibling\");\n },\n nextAll: function nextAll(elem) {\n return dir(elem, \"nextSibling\");\n },\n prevAll: function prevAll(elem) {\n return dir(elem, \"previousSibling\");\n },\n nextUntil: function nextUntil(elem, _i, until) {\n return dir(elem, \"nextSibling\", until);\n },\n prevUntil: function prevUntil(elem, _i, until) {\n return dir(elem, \"previousSibling\", until);\n },\n siblings: function siblings(elem) {\n return _siblings((elem.parentNode || {}).firstChild, elem);\n },\n children: function children(elem) {\n return _siblings(elem.firstChild);\n },\n contents: function contents(elem) {\n if (elem.contentDocument != null && // Support: IE 11+\n // elements with no `data` attribute has an object\n // `contentDocument` with a `null` prototype.\n getProto(elem.contentDocument)) {\n return elem.contentDocument;\n } // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n\n\n if (nodeName(elem, \"template\")) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge([], elem.childNodes);\n }\n }, function (name, fn) {\n jQuery.fn[name] = function (until, selector) {\n var matched = jQuery.map(this, fn, until);\n\n if (name.slice(-5) !== \"Until\") {\n selector = until;\n }\n\n if (selector && typeof selector === \"string\") {\n matched = jQuery.filter(selector, matched);\n }\n\n if (this.length > 1) {\n // Remove duplicates\n if (!guaranteedUnique[name]) {\n jQuery.uniqueSort(matched);\n } // Reverse order for parents* and prev-derivatives\n\n\n if (rparentsprev.test(name)) {\n matched.reverse();\n }\n }\n\n return this.pushStack(matched);\n };\n });\n var rnothtmlwhite = /[^\\x20\\t\\r\\n\\f]+/g; // Convert String-formatted options into Object-formatted ones\n\n function createOptions(options) {\n var object = {};\n jQuery.each(options.match(rnothtmlwhite) || [], function (_, flag) {\n object[flag] = true;\n });\n return object;\n }\n /*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\n\n\n jQuery.Callbacks = function (options) {\n // Convert options from String-formatted to Object-formatted if needed\n // (we check in cache first)\n options = typeof options === \"string\" ? createOptions(options) : jQuery.extend({}, options);\n\n var // Flag to know if list is currently firing\n firing,\n // Last fire value for non-forgettable lists\n memory,\n // Flag to know if list was already fired\n _fired,\n // Flag to prevent firing\n _locked,\n // Actual callback list\n list = [],\n // Queue of execution data for repeatable lists\n queue = [],\n // Index of currently firing callback (modified by add/remove as needed)\n firingIndex = -1,\n // Fire callbacks\n fire = function fire() {\n // Enforce single-firing\n _locked = _locked || options.once; // Execute callbacks for all pending executions,\n // respecting firingIndex overrides and runtime changes\n\n _fired = firing = true;\n\n for (; queue.length; firingIndex = -1) {\n memory = queue.shift();\n\n while (++firingIndex < list.length) {\n // Run callback and check for early termination\n if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) {\n // Jump to end and forget the data so .add doesn't re-fire\n firingIndex = list.length;\n memory = false;\n }\n }\n } // Forget the data if we're done with it\n\n\n if (!options.memory) {\n memory = false;\n }\n\n firing = false; // Clean up if we're done firing for good\n\n if (_locked) {\n // Keep an empty list if we have data for future add calls\n if (memory) {\n list = []; // Otherwise, this object is spent\n } else {\n list = \"\";\n }\n }\n },\n // Actual Callbacks object\n self = {\n // Add a callback or a collection of callbacks to the list\n add: function add() {\n if (list) {\n // If we have memory from a past run, we should fire after adding\n if (memory && !firing) {\n firingIndex = list.length - 1;\n queue.push(memory);\n }\n\n (function add(args) {\n jQuery.each(args, function (_, arg) {\n if (isFunction(arg)) {\n if (!options.unique || !self.has(arg)) {\n list.push(arg);\n }\n } else if (arg && arg.length && toType(arg) !== \"string\") {\n // Inspect recursively\n add(arg);\n }\n });\n })(arguments);\n\n if (memory && !firing) {\n fire();\n }\n }\n\n return this;\n },\n // Remove a callback from the list\n remove: function remove() {\n jQuery.each(arguments, function (_, arg) {\n var index;\n\n while ((index = jQuery.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (index <= firingIndex) {\n firingIndex--;\n }\n }\n });\n return this;\n },\n // Check if a given callback is in the list.\n // If no argument is given, return whether or not list has callbacks attached.\n has: function has(fn) {\n return fn ? jQuery.inArray(fn, list) > -1 : list.length > 0;\n },\n // Remove all callbacks from the list\n empty: function empty() {\n if (list) {\n list = [];\n }\n\n return this;\n },\n // Disable .fire and .add\n // Abort any current/pending executions\n // Clear all callbacks and values\n disable: function disable() {\n _locked = queue = [];\n list = memory = \"\";\n return this;\n },\n disabled: function disabled() {\n return !list;\n },\n // Disable .fire\n // Also disable .add unless we have memory (since it would have no effect)\n // Abort any pending executions\n lock: function lock() {\n _locked = queue = [];\n\n if (!memory && !firing) {\n list = memory = \"\";\n }\n\n return this;\n },\n locked: function locked() {\n return !!_locked;\n },\n // Call all callbacks with the given context and arguments\n fireWith: function fireWith(context, args) {\n if (!_locked) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n queue.push(args);\n\n if (!firing) {\n fire();\n }\n }\n\n return this;\n },\n // Call all the callbacks with the given arguments\n fire: function fire() {\n self.fireWith(this, arguments);\n return this;\n },\n // To know if the callbacks have already been called at least once\n fired: function fired() {\n return !!_fired;\n }\n };\n\n return self;\n };\n\n function Identity(v) {\n return v;\n }\n\n function Thrower(ex) {\n throw ex;\n }\n\n function adoptValue(value, resolve, reject, noValue) {\n var method;\n\n try {\n // Check for promise aspect first to privilege synchronous behavior\n if (value && isFunction(method = value.promise)) {\n method.call(value).done(resolve).fail(reject); // Other thenables\n } else if (value && isFunction(method = value.then)) {\n method.call(value, resolve, reject); // Other non-thenables\n } else {\n // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n // * false: [ value ].slice( 0 ) => resolve( value )\n // * true: [ value ].slice( 1 ) => resolve()\n resolve.apply(undefined, [value].slice(noValue));\n } // For Promises/A+, convert exceptions into rejections\n // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n // Deferred#then to conditionally suppress rejection.\n\n } catch (value) {\n // Support: Android 4.0 only\n // Strict mode functions invoked without .call/.apply get global-object context\n reject.apply(undefined, [value]);\n }\n }\n\n jQuery.extend({\n Deferred: function Deferred(func) {\n var tuples = [// action, add listener, callbacks,\n // ... .then handlers, argument index, [final state]\n [\"notify\", \"progress\", jQuery.Callbacks(\"memory\"), jQuery.Callbacks(\"memory\"), 2], [\"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 0, \"resolved\"], [\"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), jQuery.Callbacks(\"once memory\"), 1, \"rejected\"]],\n _state = \"pending\",\n _promise = {\n state: function state() {\n return _state;\n },\n always: function always() {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n \"catch\": function _catch(fn) {\n return _promise.then(null, fn);\n },\n // Keep pipe for back-compat\n pipe: function pipe()\n /* fnDone, fnFail, fnProgress */\n {\n var fns = arguments;\n return jQuery.Deferred(function (newDefer) {\n jQuery.each(tuples, function (_i, tuple) {\n // Map tuples (progress, done, fail) to arguments (done, fail, progress)\n var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; // deferred.progress(function() { bind to newDefer or newDefer.notify })\n // deferred.done(function() { bind to newDefer or newDefer.resolve })\n // deferred.fail(function() { bind to newDefer or newDefer.reject })\n\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && isFunction(returned.promise)) {\n returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject);\n } else {\n newDefer[tuple[0] + \"With\"](this, fn ? [returned] : arguments);\n }\n });\n });\n fns = null;\n }).promise();\n },\n then: function then(onFulfilled, onRejected, onProgress) {\n var maxDepth = 0;\n\n function resolve(depth, deferred, handler, special) {\n return function () {\n var that = this,\n args = arguments,\n mightThrow = function mightThrow() {\n var returned, then; // Support: Promises/A+ section 2.3.3.3.3\n // https://promisesaplus.com/#point-59\n // Ignore double-resolution attempts\n\n if (depth < maxDepth) {\n return;\n }\n\n returned = handler.apply(that, args); // Support: Promises/A+ section 2.3.1\n // https://promisesaplus.com/#point-48\n\n if (returned === deferred.promise()) {\n throw new TypeError(\"Thenable self-resolution\");\n } // Support: Promises/A+ sections 2.3.3.1, 3.5\n // https://promisesaplus.com/#point-54\n // https://promisesaplus.com/#point-75\n // Retrieve `then` only once\n\n\n then = returned && ( // Support: Promises/A+ section 2.3.4\n // https://promisesaplus.com/#point-64\n // Only check objects and functions for thenability\n _typeof(returned) === \"object\" || typeof returned === \"function\") && returned.then; // Handle a returned thenable\n\n if (isFunction(then)) {\n // Special processors (notify) just wait for resolution\n if (special) {\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); // Normal processors (resolve) also hook into progress\n } else {\n // ...and disregard older resolution values\n maxDepth++;\n then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith));\n } // Handle all other returned values\n\n } else {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Identity) {\n that = undefined;\n args = [returned];\n } // Process the value(s)\n // Default process is resolve\n\n\n (special || deferred.resolveWith)(that, args);\n }\n },\n // Only normal processors (resolve) catch and reject exceptions\n process = special ? mightThrow : function () {\n try {\n mightThrow();\n } catch (e) {\n if (jQuery.Deferred.exceptionHook) {\n jQuery.Deferred.exceptionHook(e, process.stackTrace);\n } // Support: Promises/A+ section 2.3.3.3.4.1\n // https://promisesaplus.com/#point-61\n // Ignore post-resolution exceptions\n\n\n if (depth + 1 >= maxDepth) {\n // Only substitute handlers pass on context\n // and multiple values (non-spec behavior)\n if (handler !== Thrower) {\n that = undefined;\n args = [e];\n }\n\n deferred.rejectWith(that, args);\n }\n }\n }; // Support: Promises/A+ section 2.3.3.3.1\n // https://promisesaplus.com/#point-57\n // Re-resolve promises immediately to dodge false rejection from\n // subsequent errors\n\n\n if (depth) {\n process();\n } else {\n // Call an optional hook to record the stack, in case of exception\n // since it's otherwise lost when execution goes async\n if (jQuery.Deferred.getStackHook) {\n process.stackTrace = jQuery.Deferred.getStackHook();\n }\n\n window.setTimeout(process);\n }\n };\n }\n\n return jQuery.Deferred(function (newDefer) {\n // progress_handlers.add( ... )\n tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); // fulfilled_handlers.add( ... )\n\n tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); // rejected_handlers.add( ... )\n\n tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower));\n }).promise();\n },\n // Get a promise for this deferred\n // If obj is provided, the promise aspect is added to the object\n promise: function promise(obj) {\n return obj != null ? jQuery.extend(obj, _promise) : _promise;\n }\n },\n deferred = {}; // Add list-specific methods\n\n jQuery.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[5]; // promise.progress = list.add\n // promise.done = list.add\n // promise.fail = list.add\n\n _promise[tuple[1]] = list.add; // Handle state\n\n if (stateString) {\n list.add(function () {\n // state = \"resolved\" (i.e., fulfilled)\n // state = \"rejected\"\n _state = stateString;\n }, // rejected_callbacks.disable\n // fulfilled_callbacks.disable\n tuples[3 - i][2].disable, // rejected_handlers.disable\n // fulfilled_handlers.disable\n tuples[3 - i][3].disable, // progress_callbacks.lock\n tuples[0][2].lock, // progress_handlers.lock\n tuples[0][3].lock);\n } // progress_handlers.fire\n // fulfilled_handlers.fire\n // rejected_handlers.fire\n\n\n list.add(tuple[3].fire); // deferred.notify = function() { deferred.notifyWith(...) }\n // deferred.resolve = function() { deferred.resolveWith(...) }\n // deferred.reject = function() { deferred.rejectWith(...) }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? undefined : this, arguments);\n return this;\n }; // deferred.notifyWith = list.fireWith\n // deferred.resolveWith = list.fireWith\n // deferred.rejectWith = list.fireWith\n\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n }); // Make the deferred a promise\n\n _promise.promise(deferred); // Call given func if any\n\n\n if (func) {\n func.call(deferred, deferred);\n } // All done!\n\n\n return deferred;\n },\n // Deferred helper\n when: function when(singleValue) {\n var // count of uncompleted subordinates\n remaining = arguments.length,\n // count of unprocessed arguments\n i = remaining,\n // subordinate fulfillment data\n resolveContexts = Array(i),\n resolveValues = _slice.call(arguments),\n // the master Deferred\n master = jQuery.Deferred(),\n // subordinate callback factory\n updateFunc = function updateFunc(i) {\n return function (value) {\n resolveContexts[i] = this;\n resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value;\n\n if (! --remaining) {\n master.resolveWith(resolveContexts, resolveValues);\n }\n };\n }; // Single- and empty arguments are adopted like Promise.resolve\n\n\n if (remaining <= 1) {\n adoptValue(singleValue, master.done(updateFunc(i)).resolve, master.reject, !remaining); // Use .then() to unwrap secondary thenables (cf. gh-3000)\n\n if (master.state() === \"pending\" || isFunction(resolveValues[i] && resolveValues[i].then)) {\n return master.then();\n }\n } // Multiple arguments are aggregated like Promise.all array elements\n\n\n while (i--) {\n adoptValue(resolveValues[i], updateFunc(i), master.reject);\n }\n\n return master.promise();\n }\n }); // These usually indicate a programmer mistake during development,\n // warn about them ASAP rather than swallowing them by default.\n\n var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n jQuery.Deferred.exceptionHook = function (error, stack) {\n // Support: IE 8 - 9 only\n // Console exists when dev tools are open, which can happen at any time\n if (window.console && window.console.warn && error && rerrorNames.test(error.name)) {\n window.console.warn(\"jQuery.Deferred exception: \" + error.message, error.stack, stack);\n }\n };\n\n jQuery.readyException = function (error) {\n window.setTimeout(function () {\n throw error;\n });\n }; // The deferred used on DOM ready\n\n\n var readyList = jQuery.Deferred();\n\n jQuery.fn.ready = function (fn) {\n readyList.then(fn) // Wrap jQuery.readyException in a function so that the lookup\n // happens at the time of error handling instead of callback\n // registration.\n [\"catch\"](function (error) {\n jQuery.readyException(error);\n });\n return this;\n };\n\n jQuery.extend({\n // Is the DOM ready to be used? Set to true once it occurs.\n isReady: false,\n // A counter to track how many items to wait for before\n // the ready event fires. See #6781\n readyWait: 1,\n // Handle when the DOM is ready\n ready: function ready(wait) {\n // Abort if there are pending holds or we're already ready\n if (wait === true ? --jQuery.readyWait : jQuery.isReady) {\n return;\n } // Remember that the DOM is ready\n\n\n jQuery.isReady = true; // If a normal DOM Ready event fired, decrement, and wait if need be\n\n if (wait !== true && --jQuery.readyWait > 0) {\n return;\n } // If there are functions bound, to execute\n\n\n readyList.resolveWith(document, [jQuery]);\n }\n });\n jQuery.ready.then = readyList.then; // The ready event handler and self cleanup method\n\n function completed() {\n document.removeEventListener(\"DOMContentLoaded\", completed);\n window.removeEventListener(\"load\", completed);\n jQuery.ready();\n } // Catch cases where $(document).ready() is called\n // after the browser event has already occurred.\n // Support: IE <=9 - 10 only\n // Older IE sometimes signals \"interactive\" too soon\n\n\n if (document.readyState === \"complete\" || document.readyState !== \"loading\" && !document.documentElement.doScroll) {\n // Handle it asynchronously to allow scripts the opportunity to delay ready\n window.setTimeout(jQuery.ready);\n } else {\n // Use the handy event callback\n document.addEventListener(\"DOMContentLoaded\", completed); // A fallback to window.onload, that will always work\n\n window.addEventListener(\"load\", completed);\n } // Multifunctional method to get and set values of a collection\n // The value/s can optionally be executed if it's a function\n\n\n var access = function access(elems, fn, key, value, chainable, emptyGet, raw) {\n var i = 0,\n len = elems.length,\n bulk = key == null; // Sets many values\n\n if (toType(key) === \"object\") {\n chainable = true;\n\n for (i in key) {\n access(elems, fn, i, key[i], true, emptyGet, raw);\n } // Sets one value\n\n } else if (value !== undefined) {\n chainable = true;\n\n if (!isFunction(value)) {\n raw = true;\n }\n\n if (bulk) {\n // Bulk operations run against the entire set\n if (raw) {\n fn.call(elems, value);\n fn = null; // ...except when executing function values\n } else {\n bulk = fn;\n\n fn = function fn(elem, _key, value) {\n return bulk.call(jQuery(elem), value);\n };\n }\n }\n\n if (fn) {\n for (; i < len; i++) {\n fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key)));\n }\n }\n }\n\n if (chainable) {\n return elems;\n } // Gets\n\n\n if (bulk) {\n return fn.call(elems);\n }\n\n return len ? fn(elems[0], key) : emptyGet;\n }; // Matches dashed string for camelizing\n\n\n var rmsPrefix = /^-ms-/,\n rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace()\n\n function fcamelCase(_all, letter) {\n return letter.toUpperCase();\n } // Convert dashed to camelCase; used by the css and data modules\n // Support: IE <=9 - 11, Edge 12 - 15\n // Microsoft forgot to hump their vendor prefix (#9572)\n\n\n function camelCase(string) {\n return string.replace(rmsPrefix, \"ms-\").replace(rdashAlpha, fcamelCase);\n }\n\n var acceptData = function acceptData(owner) {\n // Accepts only:\n // - Node\n // - Node.ELEMENT_NODE\n // - Node.DOCUMENT_NODE\n // - Object\n // - Any\n return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType;\n };\n\n function Data() {\n this.expando = jQuery.expando + Data.uid++;\n }\n\n Data.uid = 1;\n Data.prototype = {\n cache: function cache(owner) {\n // Check if the owner object already has a cache\n var value = owner[this.expando]; // If not, create one\n\n if (!value) {\n value = {}; // We can accept data for non-element nodes in modern browsers,\n // but we should not, see #8335.\n // Always return an empty object.\n\n if (acceptData(owner)) {\n // If it is a node unlikely to be stringify-ed or looped over\n // use plain assignment\n if (owner.nodeType) {\n owner[this.expando] = value; // Otherwise secure it in a non-enumerable property\n // configurable must be true to allow the property to be\n // deleted when data is removed\n } else {\n Object.defineProperty(owner, this.expando, {\n value: value,\n configurable: true\n });\n }\n }\n }\n\n return value;\n },\n set: function set(owner, data, value) {\n var prop,\n cache = this.cache(owner); // Handle: [ owner, key, value ] args\n // Always use camelCase key (gh-2257)\n\n if (typeof data === \"string\") {\n cache[camelCase(data)] = value; // Handle: [ owner, { properties } ] args\n } else {\n // Copy the properties one-by-one to the cache object\n for (prop in data) {\n cache[camelCase(prop)] = data[prop];\n }\n }\n\n return cache;\n },\n get: function get(owner, key) {\n return key === undefined ? this.cache(owner) : // Always use camelCase key (gh-2257)\n owner[this.expando] && owner[this.expando][camelCase(key)];\n },\n access: function access(owner, key, value) {\n // In cases where either:\n //\n // 1. No key was specified\n // 2. A string key was specified, but no value provided\n //\n // Take the \"read\" path and allow the get method to determine\n // which value to return, respectively either:\n //\n // 1. The entire cache object\n // 2. The data stored at the key\n //\n if (key === undefined || key && typeof key === \"string\" && value === undefined) {\n return this.get(owner, key);\n } // When the key is not a string, or both a key and value\n // are specified, set or extend (existing objects) with either:\n //\n // 1. An object of properties\n // 2. A key and value\n //\n\n\n this.set(owner, key, value); // Since the \"set\" path can have two possible entry points\n // return the expected data based on which path was taken[*]\n\n return value !== undefined ? value : key;\n },\n remove: function remove(owner, key) {\n var i,\n cache = owner[this.expando];\n\n if (cache === undefined) {\n return;\n }\n\n if (key !== undefined) {\n // Support array or space separated string of keys\n if (Array.isArray(key)) {\n // If key is an array of keys...\n // We always set camelCase keys, so remove that.\n key = key.map(camelCase);\n } else {\n key = camelCase(key); // If a key with the spaces exists, use it.\n // Otherwise, create an array by matching non-whitespace\n\n key = key in cache ? [key] : key.match(rnothtmlwhite) || [];\n }\n\n i = key.length;\n\n while (i--) {\n delete cache[key[i]];\n }\n } // Remove the expando if there's no more data\n\n\n if (key === undefined || jQuery.isEmptyObject(cache)) {\n // Support: Chrome <=35 - 45\n // Webkit & Blink performance suffers when deleting properties\n // from DOM nodes, so set to undefined instead\n // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n if (owner.nodeType) {\n owner[this.expando] = undefined;\n } else {\n delete owner[this.expando];\n }\n }\n },\n hasData: function hasData(owner) {\n var cache = owner[this.expando];\n return cache !== undefined && !jQuery.isEmptyObject(cache);\n }\n };\n var dataPriv = new Data();\n var dataUser = new Data(); //\tImplementation Summary\n //\n //\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n //\t2. Improve the module's maintainability by reducing the storage\n //\t\tpaths to a single mechanism.\n //\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n //\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n //\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n //\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\n var rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n rmultiDash = /[A-Z]/g;\n\n function getData(data) {\n if (data === \"true\") {\n return true;\n }\n\n if (data === \"false\") {\n return false;\n }\n\n if (data === \"null\") {\n return null;\n } // Only convert to a number if it doesn't change the string\n\n\n if (data === +data + \"\") {\n return +data;\n }\n\n if (rbrace.test(data)) {\n return JSON.parse(data);\n }\n\n return data;\n }\n\n function dataAttr(elem, key, data) {\n var name; // If nothing was found internally, try to fetch any\n // data from the HTML5 data-* attribute\n\n if (data === undefined && elem.nodeType === 1) {\n name = \"data-\" + key.replace(rmultiDash, \"-$&\").toLowerCase();\n data = elem.getAttribute(name);\n\n if (typeof data === \"string\") {\n try {\n data = getData(data);\n } catch (e) {} // Make sure we set the data so it isn't changed later\n\n\n dataUser.set(elem, key, data);\n } else {\n data = undefined;\n }\n }\n\n return data;\n }\n\n jQuery.extend({\n hasData: function hasData(elem) {\n return dataUser.hasData(elem) || dataPriv.hasData(elem);\n },\n data: function data(elem, name, _data) {\n return dataUser.access(elem, name, _data);\n },\n removeData: function removeData(elem, name) {\n dataUser.remove(elem, name);\n },\n // TODO: Now that all calls to _data and _removeData have been replaced\n // with direct calls to dataPriv methods, these can be deprecated.\n _data: function _data(elem, name, data) {\n return dataPriv.access(elem, name, data);\n },\n _removeData: function _removeData(elem, name) {\n dataPriv.remove(elem, name);\n }\n });\n jQuery.fn.extend({\n data: function data(key, value) {\n var i,\n name,\n data,\n elem = this[0],\n attrs = elem && elem.attributes; // Gets all values\n\n if (key === undefined) {\n if (this.length) {\n data = dataUser.get(elem);\n\n if (elem.nodeType === 1 && !dataPriv.get(elem, \"hasDataAttrs\")) {\n i = attrs.length;\n\n while (i--) {\n // Support: IE 11 only\n // The attrs elements can be null (#14894)\n if (attrs[i]) {\n name = attrs[i].name;\n\n if (name.indexOf(\"data-\") === 0) {\n name = camelCase(name.slice(5));\n dataAttr(elem, name, data[name]);\n }\n }\n }\n\n dataPriv.set(elem, \"hasDataAttrs\", true);\n }\n }\n\n return data;\n } // Sets multiple values\n\n\n if (_typeof(key) === \"object\") {\n return this.each(function () {\n dataUser.set(this, key);\n });\n }\n\n return access(this, function (value) {\n var data; // The calling jQuery object (element matches) is not empty\n // (and therefore has an element appears at this[ 0 ]) and the\n // `value` parameter was not undefined. An empty jQuery object\n // will result in `undefined` for elem = this[ 0 ] which will\n // throw an exception if an attempt to read a data cache is made.\n\n if (elem && value === undefined) {\n // Attempt to get data from the cache\n // The key will always be camelCased in Data\n data = dataUser.get(elem, key);\n\n if (data !== undefined) {\n return data;\n } // Attempt to \"discover\" the data in\n // HTML5 custom data-* attrs\n\n\n data = dataAttr(elem, key);\n\n if (data !== undefined) {\n return data;\n } // We tried really hard, but the data doesn't exist.\n\n\n return;\n } // Set the data...\n\n\n this.each(function () {\n // We always store the camelCased key\n dataUser.set(this, key, value);\n });\n }, null, value, arguments.length > 1, null, true);\n },\n removeData: function removeData(key) {\n return this.each(function () {\n dataUser.remove(this, key);\n });\n }\n });\n jQuery.extend({\n queue: function queue(elem, type, data) {\n var queue;\n\n if (elem) {\n type = (type || \"fx\") + \"queue\";\n queue = dataPriv.get(elem, type); // Speed up dequeue by getting out quickly if this is just a lookup\n\n if (data) {\n if (!queue || Array.isArray(data)) {\n queue = dataPriv.access(elem, type, jQuery.makeArray(data));\n } else {\n queue.push(data);\n }\n }\n\n return queue || [];\n }\n },\n dequeue: function dequeue(elem, type) {\n type = type || \"fx\";\n\n var queue = jQuery.queue(elem, type),\n startLength = queue.length,\n fn = queue.shift(),\n hooks = jQuery._queueHooks(elem, type),\n next = function next() {\n jQuery.dequeue(elem, type);\n }; // If the fx queue is dequeued, always remove the progress sentinel\n\n\n if (fn === \"inprogress\") {\n fn = queue.shift();\n startLength--;\n }\n\n if (fn) {\n // Add a progress sentinel to prevent the fx queue from being\n // automatically dequeued\n if (type === \"fx\") {\n queue.unshift(\"inprogress\");\n } // Clear up the last queue stop function\n\n\n delete hooks.stop;\n fn.call(elem, next, hooks);\n }\n\n if (!startLength && hooks) {\n hooks.empty.fire();\n }\n },\n // Not public - generate a queueHooks object, or return the current one\n _queueHooks: function _queueHooks(elem, type) {\n var key = type + \"queueHooks\";\n return dataPriv.get(elem, key) || dataPriv.access(elem, key, {\n empty: jQuery.Callbacks(\"once memory\").add(function () {\n dataPriv.remove(elem, [type + \"queue\", key]);\n })\n });\n }\n });\n jQuery.fn.extend({\n queue: function queue(type, data) {\n var setter = 2;\n\n if (typeof type !== \"string\") {\n data = type;\n type = \"fx\";\n setter--;\n }\n\n if (arguments.length < setter) {\n return jQuery.queue(this[0], type);\n }\n\n return data === undefined ? this : this.each(function () {\n var queue = jQuery.queue(this, type, data); // Ensure a hooks for this queue\n\n jQuery._queueHooks(this, type);\n\n if (type === \"fx\" && queue[0] !== \"inprogress\") {\n jQuery.dequeue(this, type);\n }\n });\n },\n dequeue: function dequeue(type) {\n return this.each(function () {\n jQuery.dequeue(this, type);\n });\n },\n clearQueue: function clearQueue(type) {\n return this.queue(type || \"fx\", []);\n },\n // Get a promise resolved when queues of a certain type\n // are emptied (fx is the type by default)\n promise: function promise(type, obj) {\n var tmp,\n count = 1,\n defer = jQuery.Deferred(),\n elements = this,\n i = this.length,\n resolve = function resolve() {\n if (! --count) {\n defer.resolveWith(elements, [elements]);\n }\n };\n\n if (typeof type !== \"string\") {\n obj = type;\n type = undefined;\n }\n\n type = type || \"fx\";\n\n while (i--) {\n tmp = dataPriv.get(elements[i], type + \"queueHooks\");\n\n if (tmp && tmp.empty) {\n count++;\n tmp.empty.add(resolve);\n }\n }\n\n resolve();\n return defer.promise(obj);\n }\n });\n var pnum = /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/.source;\n var rcssNum = new RegExp(\"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\");\n var cssExpand = [\"Top\", \"Right\", \"Bottom\", \"Left\"];\n var documentElement = document.documentElement;\n\n var isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem);\n },\n composed = {\n composed: true\n }; // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n // Check attachment across shadow DOM boundaries when possible (gh-3504)\n // Support: iOS 10.0-10.2 only\n // Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n // leading to errors. We need to check for `getRootNode`.\n\n\n if (documentElement.getRootNode) {\n isAttached = function isAttached(elem) {\n return jQuery.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument;\n };\n }\n\n var isHiddenWithinTree = function isHiddenWithinTree(elem, el) {\n // isHiddenWithinTree might be called from jQuery#filter function;\n // in that case, element will be second argument\n elem = el || elem; // Inline style trumps all\n\n return elem.style.display === \"none\" || elem.style.display === \"\" && // Otherwise, check computed style\n // Support: Firefox <=43 - 45\n // Disconnected elements can have computed display: none, so first confirm that elem is\n // in the document.\n isAttached(elem) && jQuery.css(elem, \"display\") === \"none\";\n };\n\n function adjustCSS(elem, prop, valueParts, tween) {\n var adjusted,\n scale,\n maxIterations = 20,\n currentValue = tween ? function () {\n return tween.cur();\n } : function () {\n return jQuery.css(elem, prop, \"\");\n },\n initial = currentValue(),\n unit = valueParts && valueParts[3] || (jQuery.cssNumber[prop] ? \"\" : \"px\"),\n // Starting value computation is required for potential unit mismatches\n initialInUnit = elem.nodeType && (jQuery.cssNumber[prop] || unit !== \"px\" && +initial) && rcssNum.exec(jQuery.css(elem, prop));\n\n if (initialInUnit && initialInUnit[3] !== unit) {\n // Support: Firefox <=54\n // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n initial = initial / 2; // Trust units reported by jQuery.css\n\n unit = unit || initialInUnit[3]; // Iteratively approximate from a nonzero starting point\n\n initialInUnit = +initial || 1;\n\n while (maxIterations--) {\n // Evaluate and update our best guess (doubling guesses that zero out).\n // Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n jQuery.style(elem, prop, initialInUnit + unit);\n\n if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) {\n maxIterations = 0;\n }\n\n initialInUnit = initialInUnit / scale;\n }\n\n initialInUnit = initialInUnit * 2;\n jQuery.style(elem, prop, initialInUnit + unit); // Make sure we update the tween properties later on\n\n valueParts = valueParts || [];\n }\n\n if (valueParts) {\n initialInUnit = +initialInUnit || +initial || 0; // Apply relative offset (+=/-=) if specified\n\n adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2];\n\n if (tween) {\n tween.unit = unit;\n tween.start = initialInUnit;\n tween.end = adjusted;\n }\n }\n\n return adjusted;\n }\n\n var defaultDisplayMap = {};\n\n function getDefaultDisplay(elem) {\n var temp,\n doc = elem.ownerDocument,\n nodeName = elem.nodeName,\n display = defaultDisplayMap[nodeName];\n\n if (display) {\n return display;\n }\n\n temp = doc.body.appendChild(doc.createElement(nodeName));\n display = jQuery.css(temp, \"display\");\n temp.parentNode.removeChild(temp);\n\n if (display === \"none\") {\n display = \"block\";\n }\n\n defaultDisplayMap[nodeName] = display;\n return display;\n }\n\n function showHide(elements, show) {\n var display,\n elem,\n values = [],\n index = 0,\n length = elements.length; // Determine new display value for elements that need to change\n\n for (; index < length; index++) {\n elem = elements[index];\n\n if (!elem.style) {\n continue;\n }\n\n display = elem.style.display;\n\n if (show) {\n // Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n // check is required in this first loop unless we have a nonempty display value (either\n // inline or about-to-be-restored)\n if (display === \"none\") {\n values[index] = dataPriv.get(elem, \"display\") || null;\n\n if (!values[index]) {\n elem.style.display = \"\";\n }\n }\n\n if (elem.style.display === \"\" && isHiddenWithinTree(elem)) {\n values[index] = getDefaultDisplay(elem);\n }\n } else {\n if (display !== \"none\") {\n values[index] = \"none\"; // Remember what we're overwriting\n\n dataPriv.set(elem, \"display\", display);\n }\n }\n } // Set the display of the elements in a second loop to avoid constant reflow\n\n\n for (index = 0; index < length; index++) {\n if (values[index] != null) {\n elements[index].style.display = values[index];\n }\n }\n\n return elements;\n }\n\n jQuery.fn.extend({\n show: function show() {\n return showHide(this, true);\n },\n hide: function hide() {\n return showHide(this);\n },\n toggle: function toggle(state) {\n if (typeof state === \"boolean\") {\n return state ? this.show() : this.hide();\n }\n\n return this.each(function () {\n if (isHiddenWithinTree(this)) {\n jQuery(this).show();\n } else {\n jQuery(this).hide();\n }\n });\n }\n });\n var rcheckableType = /^(?:checkbox|radio)$/i;\n var rtagName = /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i;\n var rscriptType = /^$|^module$|\\/(?:java|ecma)script/i;\n\n (function () {\n var fragment = document.createDocumentFragment(),\n div = fragment.appendChild(document.createElement(\"div\")),\n input = document.createElement(\"input\"); // Support: Android 4.0 - 4.3 only\n // Check state lost if the name is set (#11217)\n // Support: Windows Web Apps (WWA)\n // `name` and `type` must use .setAttribute for WWA (#14901)\n\n input.setAttribute(\"type\", \"radio\");\n input.setAttribute(\"checked\", \"checked\");\n input.setAttribute(\"name\", \"t\");\n div.appendChild(input); // Support: Android <=4.1 only\n // Older WebKit doesn't clone checked state correctly in fragments\n\n support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; // Support: IE <=11 only\n // Make sure textarea (and checkbox) defaultValue is properly cloned\n\n div.innerHTML = \"\";\n support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; // Support: IE <=9 only\n // IE <=9 replaces \";\n support.option = !!div.lastChild;\n })(); // We have to close these tags to support XHTML (#13200)\n\n\n var wrapMap = {\n // XHTML parsers do not magically insert elements in the\n // same way that tag soup parsers do. So we cannot shorten\n // this by omitting or other required elements.\n thead: [1, \"\", \"
\"],\n col: [2, \"\", \"
\"],\n tr: [2, \"\", \"
\"],\n td: [3, \"\", \"
\"],\n _default: [0, \"\", \"\"]\n };\n wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\n wrapMap.th = wrapMap.td; // Support: IE <=9 only\n\n if (!support.option) {\n wrapMap.optgroup = wrapMap.option = [1, \"\"];\n }\n\n function getAll(context, tag) {\n // Support: IE <=9 - 11 only\n // Use typeof to avoid zero-argument method invocation on host objects (#15151)\n var ret;\n\n if (typeof context.getElementsByTagName !== \"undefined\") {\n ret = context.getElementsByTagName(tag || \"*\");\n } else if (typeof context.querySelectorAll !== \"undefined\") {\n ret = context.querySelectorAll(tag || \"*\");\n } else {\n ret = [];\n }\n\n if (tag === undefined || tag && nodeName(context, tag)) {\n return jQuery.merge([context], ret);\n }\n\n return ret;\n } // Mark scripts as having already been evaluated\n\n\n function setGlobalEval(elems, refElements) {\n var i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n dataPriv.set(elems[i], \"globalEval\", !refElements || dataPriv.get(refElements[i], \"globalEval\"));\n }\n }\n\n var rhtml = /<|&#?\\w+;/;\n\n function buildFragment(elems, context, scripts, selection, ignored) {\n var elem,\n tmp,\n tag,\n wrap,\n attached,\n j,\n fragment = context.createDocumentFragment(),\n nodes = [],\n i = 0,\n l = elems.length;\n\n for (; i < l; i++) {\n elem = elems[i];\n\n if (elem || elem === 0) {\n // Add nodes directly\n if (toType(elem) === \"object\") {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(nodes, elem.nodeType ? [elem] : elem); // Convert non-html into a text node\n } else if (!rhtml.test(elem)) {\n nodes.push(context.createTextNode(elem)); // Convert html into DOM nodes\n } else {\n tmp = tmp || fragment.appendChild(context.createElement(\"div\")); // Deserialize a standard representation\n\n tag = (rtagName.exec(elem) || [\"\", \"\"])[1].toLowerCase();\n wrap = wrapMap[tag] || wrapMap._default;\n tmp.innerHTML = wrap[1] + jQuery.htmlPrefilter(elem) + wrap[2]; // Descend through wrappers to the right content\n\n j = wrap[0];\n\n while (j--) {\n tmp = tmp.lastChild;\n } // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n\n\n jQuery.merge(nodes, tmp.childNodes); // Remember the top-level container\n\n tmp = fragment.firstChild; // Ensure the created nodes are orphaned (#12392)\n\n tmp.textContent = \"\";\n }\n }\n } // Remove wrapper from fragment\n\n\n fragment.textContent = \"\";\n i = 0;\n\n while (elem = nodes[i++]) {\n // Skip elements already in the context collection (trac-4087)\n if (selection && jQuery.inArray(elem, selection) > -1) {\n if (ignored) {\n ignored.push(elem);\n }\n\n continue;\n }\n\n attached = isAttached(elem); // Append to fragment\n\n tmp = getAll(fragment.appendChild(elem), \"script\"); // Preserve script evaluation history\n\n if (attached) {\n setGlobalEval(tmp);\n } // Capture executables\n\n\n if (scripts) {\n j = 0;\n\n while (elem = tmp[j++]) {\n if (rscriptType.test(elem.type || \"\")) {\n scripts.push(elem);\n }\n }\n }\n }\n\n return fragment;\n }\n\n var rkeyEvent = /^key/,\n rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous, except when they are no-op.\n // So expect focus to be synchronous when the element is already active,\n // and blur to be synchronous when the element is not already active.\n // (focus and blur are always synchronous in other supported browsers,\n // this just defines when we can count on it).\n\n\n function expectSync(elem, type) {\n return elem === safeActiveElement() === (type === \"focus\");\n } // Support: IE <=9 only\n // Accessing document.activeElement can throw unexpectedly\n // https://bugs.jquery.com/ticket/13393\n\n\n function safeActiveElement() {\n try {\n return document.activeElement;\n } catch (err) {}\n }\n\n function _on(elem, types, selector, data, fn, one) {\n var origFn, type; // Types can be a map of types/handlers\n\n if (_typeof(types) === \"object\") {\n // ( types-Object, selector, data )\n if (typeof selector !== \"string\") {\n // ( types-Object, data )\n data = data || selector;\n selector = undefined;\n }\n\n for (type in types) {\n _on(elem, type, selector, data, types[type], one);\n }\n\n return elem;\n }\n\n if (data == null && fn == null) {\n // ( types, fn )\n fn = selector;\n data = selector = undefined;\n } else if (fn == null) {\n if (typeof selector === \"string\") {\n // ( types, selector, fn )\n fn = data;\n data = undefined;\n } else {\n // ( types, data, fn )\n fn = data;\n data = selector;\n selector = undefined;\n }\n }\n\n if (fn === false) {\n fn = returnFalse;\n } else if (!fn) {\n return elem;\n }\n\n if (one === 1) {\n origFn = fn;\n\n fn = function fn(event) {\n // Can use an empty set, since event contains the info\n jQuery().off(event);\n return origFn.apply(this, arguments);\n }; // Use same guid so caller can remove using origFn\n\n\n fn.guid = origFn.guid || (origFn.guid = jQuery.guid++);\n }\n\n return elem.each(function () {\n jQuery.event.add(this, types, fn, data, selector);\n });\n }\n /*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\n\n\n jQuery.event = {\n global: {},\n add: function add(elem, types, handler, data, selector) {\n var handleObjIn,\n eventHandle,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.get(elem); // Only attach events to objects that accept data\n\n if (!acceptData(elem)) {\n return;\n } // Caller can pass in an object of custom data in lieu of the handler\n\n\n if (handler.handler) {\n handleObjIn = handler;\n handler = handleObjIn.handler;\n selector = handleObjIn.selector;\n } // Ensure that invalid selectors throw exceptions at attach time\n // Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\n\n if (selector) {\n jQuery.find.matchesSelector(documentElement, selector);\n } // Make sure that the handler has a unique ID, used to find/remove it later\n\n\n if (!handler.guid) {\n handler.guid = jQuery.guid++;\n } // Init the element's event structure and main handler, if this is the first\n\n\n if (!(events = elemData.events)) {\n events = elemData.events = Object.create(null);\n }\n\n if (!(eventHandle = elemData.handle)) {\n eventHandle = elemData.handle = function (e) {\n // Discard the second event of a jQuery.event.trigger() and\n // when an event is called after a page has unloaded\n return typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ? jQuery.event.dispatch.apply(elem, arguments) : undefined;\n };\n } // Handle multiple events separated by a space\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // There *must* be a type, no attaching namespace-only handlers\n\n if (!type) {\n continue;\n } // If event changes its type, use the special event handlers for the changed type\n\n\n special = jQuery.event.special[type] || {}; // If selector defined, determine special event api type, otherwise given type\n\n type = (selector ? special.delegateType : special.bindType) || type; // Update special based on newly reset type\n\n special = jQuery.event.special[type] || {}; // handleObj is passed to all event handlers\n\n handleObj = jQuery.extend({\n type: type,\n origType: origType,\n data: data,\n handler: handler,\n guid: handler.guid,\n selector: selector,\n needsContext: selector && jQuery.expr.match.needsContext.test(selector),\n namespace: namespaces.join(\".\")\n }, handleObjIn); // Init the event handler queue if we're the first\n\n if (!(handlers = events[type])) {\n handlers = events[type] = [];\n handlers.delegateCount = 0; // Only use addEventListener if the special events handler returns false\n\n if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) {\n if (elem.addEventListener) {\n elem.addEventListener(type, eventHandle);\n }\n }\n }\n\n if (special.add) {\n special.add.call(elem, handleObj);\n\n if (!handleObj.handler.guid) {\n handleObj.handler.guid = handler.guid;\n }\n } // Add to the element's handler list, delegates in front\n\n\n if (selector) {\n handlers.splice(handlers.delegateCount++, 0, handleObj);\n } else {\n handlers.push(handleObj);\n } // Keep track of which events have ever been used, for event optimization\n\n\n jQuery.event.global[type] = true;\n }\n },\n // Detach an event or set of events from an element\n remove: function remove(elem, types, handler, selector, mappedTypes) {\n var j,\n origCount,\n tmp,\n events,\n t,\n handleObj,\n special,\n handlers,\n type,\n namespaces,\n origType,\n elemData = dataPriv.hasData(elem) && dataPriv.get(elem);\n\n if (!elemData || !(events = elemData.events)) {\n return;\n } // Once for each type.namespace in types; type may be omitted\n\n\n types = (types || \"\").match(rnothtmlwhite) || [\"\"];\n t = types.length;\n\n while (t--) {\n tmp = rtypenamespace.exec(types[t]) || [];\n type = origType = tmp[1];\n namespaces = (tmp[2] || \"\").split(\".\").sort(); // Unbind all events (on this namespace, if provided) for the element\n\n if (!type) {\n for (type in events) {\n jQuery.event.remove(elem, type + types[t], handler, selector, true);\n }\n\n continue;\n }\n\n special = jQuery.event.special[type] || {};\n type = (selector ? special.delegateType : special.bindType) || type;\n handlers = events[type] || [];\n tmp = tmp[2] && new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\"); // Remove matching events\n\n origCount = j = handlers.length;\n\n while (j--) {\n handleObj = handlers[j];\n\n if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector)) {\n handlers.splice(j, 1);\n\n if (handleObj.selector) {\n handlers.delegateCount--;\n }\n\n if (special.remove) {\n special.remove.call(elem, handleObj);\n }\n }\n } // Remove generic event handler if we removed something and no more handlers exist\n // (avoids potential for endless recursion during removal of special event handlers)\n\n\n if (origCount && !handlers.length) {\n if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) {\n jQuery.removeEvent(elem, type, elemData.handle);\n }\n\n delete events[type];\n }\n } // Remove data and the expando if it's no longer used\n\n\n if (jQuery.isEmptyObject(events)) {\n dataPriv.remove(elem, \"handle events\");\n }\n },\n dispatch: function dispatch(nativeEvent) {\n var i,\n j,\n ret,\n matched,\n handleObj,\n handlerQueue,\n args = new Array(arguments.length),\n // Make a writable jQuery.Event from the native event object\n event = jQuery.event.fix(nativeEvent),\n handlers = (dataPriv.get(this, \"events\") || Object.create(null))[event.type] || [],\n special = jQuery.event.special[event.type] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event\n\n args[0] = event;\n\n for (i = 1; i < arguments.length; i++) {\n args[i] = arguments[i];\n }\n\n event.delegateTarget = this; // Call the preDispatch hook for the mapped type, and let it bail if desired\n\n if (special.preDispatch && special.preDispatch.call(this, event) === false) {\n return;\n } // Determine handlers\n\n\n handlerQueue = jQuery.event.handlers.call(this, event, handlers); // Run delegates first; they may want to stop propagation beneath us\n\n i = 0;\n\n while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) {\n event.currentTarget = matched.elem;\n j = 0;\n\n while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) {\n // If the event is namespaced, then each handler is only invoked if it is\n // specially universal or its namespaces are a superset of the event's.\n if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) {\n event.handleObj = handleObj;\n event.data = handleObj.data;\n ret = ((jQuery.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args);\n\n if (ret !== undefined) {\n if ((event.result = ret) === false) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n } // Call the postDispatch hook for the mapped type\n\n\n if (special.postDispatch) {\n special.postDispatch.call(this, event);\n }\n\n return event.result;\n },\n handlers: function handlers(event, _handlers) {\n var i,\n handleObj,\n sel,\n matchedHandlers,\n matchedSelectors,\n handlerQueue = [],\n delegateCount = _handlers.delegateCount,\n cur = event.target; // Find delegate handlers\n\n if (delegateCount && // Support: IE <=9\n // Black-hole SVG instance trees (trac-13180)\n cur.nodeType && // Support: Firefox <=42\n // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n // Support: IE 11 only\n // ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n !(event.type === \"click\" && event.button >= 1)) {\n for (; cur !== this; cur = cur.parentNode || this) {\n // Don't check non-elements (#13208)\n // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n if (cur.nodeType === 1 && !(event.type === \"click\" && cur.disabled === true)) {\n matchedHandlers = [];\n matchedSelectors = {};\n\n for (i = 0; i < delegateCount; i++) {\n handleObj = _handlers[i]; // Don't conflict with Object.prototype properties (#13203)\n\n sel = handleObj.selector + \" \";\n\n if (matchedSelectors[sel] === undefined) {\n matchedSelectors[sel] = handleObj.needsContext ? jQuery(sel, this).index(cur) > -1 : jQuery.find(sel, this, null, [cur]).length;\n }\n\n if (matchedSelectors[sel]) {\n matchedHandlers.push(handleObj);\n }\n }\n\n if (matchedHandlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: matchedHandlers\n });\n }\n }\n }\n } // Add the remaining (directly-bound) handlers\n\n\n cur = this;\n\n if (delegateCount < _handlers.length) {\n handlerQueue.push({\n elem: cur,\n handlers: _handlers.slice(delegateCount)\n });\n }\n\n return handlerQueue;\n },\n addProp: function addProp(name, hook) {\n Object.defineProperty(jQuery.Event.prototype, name, {\n enumerable: true,\n configurable: true,\n get: isFunction(hook) ? function () {\n if (this.originalEvent) {\n return hook(this.originalEvent);\n }\n } : function () {\n if (this.originalEvent) {\n return this.originalEvent[name];\n }\n },\n set: function set(value) {\n Object.defineProperty(this, name, {\n enumerable: true,\n configurable: true,\n writable: true,\n value: value\n });\n }\n });\n },\n fix: function fix(originalEvent) {\n return originalEvent[jQuery.expando] ? originalEvent : new jQuery.Event(originalEvent);\n },\n special: {\n load: {\n // Prevent triggered image.load events from bubbling to window.load\n noBubble: true\n },\n click: {\n // Utilize native event to ensure correct state for checkable inputs\n setup: function setup(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Claim the first handler\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n // dataPriv.set( el, \"click\", ... )\n leverageNative(el, \"click\", returnTrue);\n } // Return false to allow normal processing in the caller\n\n\n return false;\n },\n trigger: function trigger(data) {\n // For mutual compressibility with _default, replace `this` access with a local var.\n // `|| data` is dead code meant only to preserve the variable through minification.\n var el = this || data; // Force setup before triggering a click\n\n if (rcheckableType.test(el.type) && el.click && nodeName(el, \"input\")) {\n leverageNative(el, \"click\");\n } // Return non-false to allow normal event-path propagation\n\n\n return true;\n },\n // For cross-browser consistency, suppress native .click() on links\n // Also prevent it if we're currently inside a leveraged native-event stack\n _default: function _default(event) {\n var target = event.target;\n return rcheckableType.test(target.type) && target.click && nodeName(target, \"input\") && dataPriv.get(target, \"click\") || nodeName(target, \"a\");\n }\n },\n beforeunload: {\n postDispatch: function postDispatch(event) {\n // Support: Firefox 20+\n // Firefox doesn't alert if the returnValue field is not set.\n if (event.result !== undefined && event.originalEvent) {\n event.originalEvent.returnValue = event.result;\n }\n }\n }\n }\n }; // Ensure the presence of an event listener that handles manually-triggered\n // synthetic events by interrupting progress until reinvoked in response to\n // *native* events that it fires directly, ensuring that state changes have\n // already occurred before other listeners are invoked.\n\n function leverageNative(el, type, expectSync) {\n // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n if (!expectSync) {\n if (dataPriv.get(el, type) === undefined) {\n jQuery.event.add(el, type, returnTrue);\n }\n\n return;\n } // Register the controller as a special universal handler for all event namespaces\n\n\n dataPriv.set(el, type, false);\n jQuery.event.add(el, type, {\n namespace: false,\n handler: function handler(event) {\n var notAsync,\n result,\n saved = dataPriv.get(this, type);\n\n if (event.isTrigger & 1 && this[type]) {\n // Interrupt processing of the outer synthetic .trigger()ed event\n // Saved data should be false in such cases, but might be a leftover capture object\n // from an async native handler (gh-4350)\n if (!saved.length) {\n // Store arguments for use when handling the inner native event\n // There will always be at least one argument (an event object), so this array\n // will not be confused with a leftover capture object.\n saved = _slice.call(arguments);\n dataPriv.set(this, type, saved); // Trigger the native event and capture its result\n // Support: IE <=9 - 11+\n // focus() and blur() are asynchronous\n\n notAsync = expectSync(this, type);\n this[type]();\n result = dataPriv.get(this, type);\n\n if (saved !== result || notAsync) {\n dataPriv.set(this, type, false);\n } else {\n result = {};\n }\n\n if (saved !== result) {\n // Cancel the outer synthetic event\n event.stopImmediatePropagation();\n event.preventDefault();\n return result.value;\n } // If this is an inner synthetic event for an event with a bubbling surrogate\n // (focus or blur), assume that the surrogate already propagated from triggering the\n // native event and prevent that from happening again here.\n // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n // bubbling surrogate propagates *after* the non-bubbling base), but that seems\n // less bad than duplication.\n\n } else if ((jQuery.event.special[type] || {}).delegateType) {\n event.stopPropagation();\n } // If this is a native event triggered above, everything is now in order\n // Fire an inner synthetic event with the original arguments\n\n } else if (saved.length) {\n // ...and capture the result\n dataPriv.set(this, type, {\n value: jQuery.event.trigger( // Support: IE <=9 - 11+\n // Extend with the prototype to reset the above stopImmediatePropagation()\n jQuery.extend(saved[0], jQuery.Event.prototype), saved.slice(1), this)\n }); // Abort handling of the native event\n\n event.stopImmediatePropagation();\n }\n }\n });\n }\n\n jQuery.removeEvent = function (elem, type, handle) {\n // This \"if\" is needed for plain objects\n if (elem.removeEventListener) {\n elem.removeEventListener(type, handle);\n }\n };\n\n jQuery.Event = function (src, props) {\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof jQuery.Event)) {\n return new jQuery.Event(src, props);\n } // Event object\n\n\n if (src && src.type) {\n this.originalEvent = src;\n this.type = src.type; // Events bubbling up the document may have been marked as prevented\n // by a handler lower down the tree; reflect the correct value.\n\n this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && // Support: Android <=2.3 only\n src.returnValue === false ? returnTrue : returnFalse; // Create target properties\n // Support: Safari <=6 - 7 only\n // Target should not be a text node (#504, #13143)\n\n this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target;\n this.currentTarget = src.currentTarget;\n this.relatedTarget = src.relatedTarget; // Event type\n } else {\n this.type = src;\n } // Put explicitly provided properties onto the event object\n\n\n if (props) {\n jQuery.extend(this, props);\n } // Create a timestamp if incoming event doesn't have one\n\n\n this.timeStamp = src && src.timeStamp || Date.now(); // Mark it as fixed\n\n this[jQuery.expando] = true;\n }; // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\n\n\n jQuery.Event.prototype = {\n constructor: jQuery.Event,\n isDefaultPrevented: returnFalse,\n isPropagationStopped: returnFalse,\n isImmediatePropagationStopped: returnFalse,\n isSimulated: false,\n preventDefault: function preventDefault() {\n var e = this.originalEvent;\n this.isDefaultPrevented = returnTrue;\n\n if (e && !this.isSimulated) {\n e.preventDefault();\n }\n },\n stopPropagation: function stopPropagation() {\n var e = this.originalEvent;\n this.isPropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopPropagation();\n }\n },\n stopImmediatePropagation: function stopImmediatePropagation() {\n var e = this.originalEvent;\n this.isImmediatePropagationStopped = returnTrue;\n\n if (e && !this.isSimulated) {\n e.stopImmediatePropagation();\n }\n\n this.stopPropagation();\n }\n }; // Includes all common event props including KeyEvent and MouseEvent specific props\n\n jQuery.each({\n altKey: true,\n bubbles: true,\n cancelable: true,\n changedTouches: true,\n ctrlKey: true,\n detail: true,\n eventPhase: true,\n metaKey: true,\n pageX: true,\n pageY: true,\n shiftKey: true,\n view: true,\n \"char\": true,\n code: true,\n charCode: true,\n key: true,\n keyCode: true,\n button: true,\n buttons: true,\n clientX: true,\n clientY: true,\n offsetX: true,\n offsetY: true,\n pointerId: true,\n pointerType: true,\n screenX: true,\n screenY: true,\n targetTouches: true,\n toElement: true,\n touches: true,\n which: function which(event) {\n var button = event.button; // Add which for key events\n\n if (event.which == null && rkeyEvent.test(event.type)) {\n return event.charCode != null ? event.charCode : event.keyCode;\n } // Add which for click: 1 === left; 2 === middle; 3 === right\n\n\n if (!event.which && button !== undefined && rmouseEvent.test(event.type)) {\n if (button & 1) {\n return 1;\n }\n\n if (button & 2) {\n return 3;\n }\n\n if (button & 4) {\n return 2;\n }\n\n return 0;\n }\n\n return event.which;\n }\n }, jQuery.event.addProp);\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (type, delegateType) {\n jQuery.event.special[type] = {\n // Utilize native event if possible so blur/focus sequence is correct\n setup: function setup() {\n // Claim the first handler\n // dataPriv.set( this, \"focus\", ... )\n // dataPriv.set( this, \"blur\", ... )\n leverageNative(this, type, expectSync); // Return false to allow normal processing in the caller\n\n return false;\n },\n trigger: function trigger() {\n // Force setup before trigger\n leverageNative(this, type); // Return non-false to allow normal event-path propagation\n\n return true;\n },\n delegateType: delegateType\n };\n }); // Create mouseenter/leave events using mouseover/out and event-time checks\n // so that event delegation works in jQuery.\n // Do the same for pointerenter/pointerleave and pointerover/pointerout\n //\n // Support: Safari 7 only\n // Safari sends mouseenter too often; see:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n // for the description of the bug (it existed in older Chrome versions as well).\n\n jQuery.each({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\",\n pointerenter: \"pointerover\",\n pointerleave: \"pointerout\"\n }, function (orig, fix) {\n jQuery.event.special[orig] = {\n delegateType: fix,\n bindType: fix,\n handle: function handle(event) {\n var ret,\n target = this,\n related = event.relatedTarget,\n handleObj = event.handleObj; // For mouseenter/leave call the handler if related is outside the target.\n // NB: No relatedTarget if the mouse left/entered the browser window\n\n if (!related || related !== target && !jQuery.contains(target, related)) {\n event.type = handleObj.origType;\n ret = handleObj.handler.apply(this, arguments);\n event.type = fix;\n }\n\n return ret;\n }\n };\n });\n jQuery.fn.extend({\n on: function on(types, selector, data, fn) {\n return _on(this, types, selector, data, fn);\n },\n one: function one(types, selector, data, fn) {\n return _on(this, types, selector, data, fn, 1);\n },\n off: function off(types, selector, fn) {\n var handleObj, type;\n\n if (types && types.preventDefault && types.handleObj) {\n // ( event ) dispatched jQuery.Event\n handleObj = types.handleObj;\n jQuery(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + \".\" + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler);\n return this;\n }\n\n if (_typeof(types) === \"object\") {\n // ( types-object [, selector] )\n for (type in types) {\n this.off(type, selector, types[type]);\n }\n\n return this;\n }\n\n if (selector === false || typeof selector === \"function\") {\n // ( types [, fn] )\n fn = selector;\n selector = undefined;\n }\n\n if (fn === false) {\n fn = returnFalse;\n }\n\n return this.each(function () {\n jQuery.event.remove(this, types, fn, selector);\n });\n }\n });\n var // Support: IE <=10 - 11, Edge 12 - 13 only\n // In IE/Edge using regex groups here causes severe slowdowns.\n // See https://connect.microsoft.com/IE/feedback/details/1736512/\n rnoInnerhtml = /\\s*$/g; // Prefer a tbody over its parent table for containing new rows\n\n function manipulationTarget(elem, content) {\n if (nodeName(elem, \"table\") && nodeName(content.nodeType !== 11 ? content : content.firstChild, \"tr\")) {\n return jQuery(elem).children(\"tbody\")[0] || elem;\n }\n\n return elem;\n } // Replace/restore the type attribute of script elements for safe DOM manipulation\n\n\n function disableScript(elem) {\n elem.type = (elem.getAttribute(\"type\") !== null) + \"/\" + elem.type;\n return elem;\n }\n\n function restoreScript(elem) {\n if ((elem.type || \"\").slice(0, 5) === \"true/\") {\n elem.type = elem.type.slice(5);\n } else {\n elem.removeAttribute(\"type\");\n }\n\n return elem;\n }\n\n function cloneCopyEvent(src, dest) {\n var i, l, type, pdataOld, udataOld, udataCur, events;\n\n if (dest.nodeType !== 1) {\n return;\n } // 1. Copy private data: events, handlers, etc.\n\n\n if (dataPriv.hasData(src)) {\n pdataOld = dataPriv.get(src);\n events = pdataOld.events;\n\n if (events) {\n dataPriv.remove(dest, \"handle events\");\n\n for (type in events) {\n for (i = 0, l = events[type].length; i < l; i++) {\n jQuery.event.add(dest, type, events[type][i]);\n }\n }\n }\n } // 2. Copy user data\n\n\n if (dataUser.hasData(src)) {\n udataOld = dataUser.access(src);\n udataCur = jQuery.extend({}, udataOld);\n dataUser.set(dest, udataCur);\n }\n } // Fix IE bugs, see support tests\n\n\n function fixInput(src, dest) {\n var nodeName = dest.nodeName.toLowerCase(); // Fails to persist the checked state of a cloned checkbox or radio button.\n\n if (nodeName === \"input\" && rcheckableType.test(src.type)) {\n dest.checked = src.checked; // Fails to return the selected option to the default selected state when cloning options\n } else if (nodeName === \"input\" || nodeName === \"textarea\") {\n dest.defaultValue = src.defaultValue;\n }\n }\n\n function domManip(collection, args, callback, ignored) {\n // Flatten any nested arrays\n args = flat(args);\n var fragment,\n first,\n scripts,\n hasScripts,\n node,\n doc,\n i = 0,\n l = collection.length,\n iNoClone = l - 1,\n value = args[0],\n valueIsFunction = isFunction(value); // We can't cloneNode fragments that contain checked, in WebKit\n\n if (valueIsFunction || l > 1 && typeof value === \"string\" && !support.checkClone && rchecked.test(value)) {\n return collection.each(function (index) {\n var self = collection.eq(index);\n\n if (valueIsFunction) {\n args[0] = value.call(this, index, self.html());\n }\n\n domManip(self, args, callback, ignored);\n });\n }\n\n if (l) {\n fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored);\n first = fragment.firstChild;\n\n if (fragment.childNodes.length === 1) {\n fragment = first;\n } // Require either new content or an interest in ignored elements to invoke the callback\n\n\n if (first || ignored) {\n scripts = jQuery.map(getAll(fragment, \"script\"), disableScript);\n hasScripts = scripts.length; // Use the original fragment for the last item\n // instead of the first because it can end up\n // being emptied incorrectly in certain situations (#8070).\n\n for (; i < l; i++) {\n node = fragment;\n\n if (i !== iNoClone) {\n node = jQuery.clone(node, true, true); // Keep references to cloned scripts for later restoration\n\n if (hasScripts) {\n // Support: Android <=4.0 only, PhantomJS 1 only\n // push.apply(_, arraylike) throws on ancient WebKit\n jQuery.merge(scripts, getAll(node, \"script\"));\n }\n }\n\n callback.call(collection[i], node, i);\n }\n\n if (hasScripts) {\n doc = scripts[scripts.length - 1].ownerDocument; // Reenable scripts\n\n jQuery.map(scripts, restoreScript); // Evaluate executable scripts on first document insertion\n\n for (i = 0; i < hasScripts; i++) {\n node = scripts[i];\n\n if (rscriptType.test(node.type || \"\") && !dataPriv.access(node, \"globalEval\") && jQuery.contains(doc, node)) {\n if (node.src && (node.type || \"\").toLowerCase() !== \"module\") {\n // Optional AJAX dependency, but won't run scripts if not present\n if (jQuery._evalUrl && !node.noModule) {\n jQuery._evalUrl(node.src, {\n nonce: node.nonce || node.getAttribute(\"nonce\")\n }, doc);\n }\n } else {\n DOMEval(node.textContent.replace(rcleanScript, \"\"), node, doc);\n }\n }\n }\n }\n }\n }\n\n return collection;\n }\n\n function _remove(elem, selector, keepData) {\n var node,\n nodes = selector ? jQuery.filter(selector, elem) : elem,\n i = 0;\n\n for (; (node = nodes[i]) != null; i++) {\n if (!keepData && node.nodeType === 1) {\n jQuery.cleanData(getAll(node));\n }\n\n if (node.parentNode) {\n if (keepData && isAttached(node)) {\n setGlobalEval(getAll(node, \"script\"));\n }\n\n node.parentNode.removeChild(node);\n }\n }\n\n return elem;\n }\n\n jQuery.extend({\n htmlPrefilter: function htmlPrefilter(html) {\n return html;\n },\n clone: function clone(elem, dataAndEvents, deepDataAndEvents) {\n var i,\n l,\n srcElements,\n destElements,\n clone = elem.cloneNode(true),\n inPage = isAttached(elem); // Fix IE cloning issues\n\n if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) {\n // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n destElements = getAll(clone);\n srcElements = getAll(elem);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n fixInput(srcElements[i], destElements[i]);\n }\n } // Copy the events from the original to the clone\n\n\n if (dataAndEvents) {\n if (deepDataAndEvents) {\n srcElements = srcElements || getAll(elem);\n destElements = destElements || getAll(clone);\n\n for (i = 0, l = srcElements.length; i < l; i++) {\n cloneCopyEvent(srcElements[i], destElements[i]);\n }\n } else {\n cloneCopyEvent(elem, clone);\n }\n } // Preserve script evaluation history\n\n\n destElements = getAll(clone, \"script\");\n\n if (destElements.length > 0) {\n setGlobalEval(destElements, !inPage && getAll(elem, \"script\"));\n } // Return the cloned set\n\n\n return clone;\n },\n cleanData: function cleanData(elems) {\n var data,\n elem,\n type,\n special = jQuery.event.special,\n i = 0;\n\n for (; (elem = elems[i]) !== undefined; i++) {\n if (acceptData(elem)) {\n if (data = elem[dataPriv.expando]) {\n if (data.events) {\n for (type in data.events) {\n if (special[type]) {\n jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead\n } else {\n jQuery.removeEvent(elem, type, data.handle);\n }\n }\n } // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n\n\n elem[dataPriv.expando] = undefined;\n }\n\n if (elem[dataUser.expando]) {\n // Support: Chrome <=35 - 45+\n // Assign undefined instead of using delete, see Data#remove\n elem[dataUser.expando] = undefined;\n }\n }\n }\n }\n });\n jQuery.fn.extend({\n detach: function detach(selector) {\n return _remove(this, selector, true);\n },\n remove: function remove(selector) {\n return _remove(this, selector);\n },\n text: function text(value) {\n return access(this, function (value) {\n return value === undefined ? jQuery.text(this) : this.empty().each(function () {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n this.textContent = value;\n }\n });\n }, null, value, arguments.length);\n },\n append: function append() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.appendChild(elem);\n }\n });\n },\n prepend: function prepend() {\n return domManip(this, arguments, function (elem) {\n if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) {\n var target = manipulationTarget(this, elem);\n target.insertBefore(elem, target.firstChild);\n }\n });\n },\n before: function before() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this);\n }\n });\n },\n after: function after() {\n return domManip(this, arguments, function (elem) {\n if (this.parentNode) {\n this.parentNode.insertBefore(elem, this.nextSibling);\n }\n });\n },\n empty: function empty() {\n var elem,\n i = 0;\n\n for (; (elem = this[i]) != null; i++) {\n if (elem.nodeType === 1) {\n // Prevent memory leaks\n jQuery.cleanData(getAll(elem, false)); // Remove any remaining nodes\n\n elem.textContent = \"\";\n }\n }\n\n return this;\n },\n clone: function clone(dataAndEvents, deepDataAndEvents) {\n dataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n return this.map(function () {\n return jQuery.clone(this, dataAndEvents, deepDataAndEvents);\n });\n },\n html: function html(value) {\n return access(this, function (value) {\n var elem = this[0] || {},\n i = 0,\n l = this.length;\n\n if (value === undefined && elem.nodeType === 1) {\n return elem.innerHTML;\n } // See if we can take a shortcut and just use innerHTML\n\n\n if (typeof value === \"string\" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || [\"\", \"\"])[1].toLowerCase()]) {\n value = jQuery.htmlPrefilter(value);\n\n try {\n for (; i < l; i++) {\n elem = this[i] || {}; // Remove element nodes and prevent memory leaks\n\n if (elem.nodeType === 1) {\n jQuery.cleanData(getAll(elem, false));\n elem.innerHTML = value;\n }\n }\n\n elem = 0; // If using innerHTML throws an exception, use the fallback method\n } catch (e) {}\n }\n\n if (elem) {\n this.empty().append(value);\n }\n }, null, value, arguments.length);\n },\n replaceWith: function replaceWith() {\n var ignored = []; // Make the changes, replacing each non-ignored context element with the new content\n\n return domManip(this, arguments, function (elem) {\n var parent = this.parentNode;\n\n if (jQuery.inArray(this, ignored) < 0) {\n jQuery.cleanData(getAll(this));\n\n if (parent) {\n parent.replaceChild(elem, this);\n }\n } // Force callback invocation\n\n }, ignored);\n }\n });\n jQuery.each({\n appendTo: \"append\",\n prependTo: \"prepend\",\n insertBefore: \"before\",\n insertAfter: \"after\",\n replaceAll: \"replaceWith\"\n }, function (name, original) {\n jQuery.fn[name] = function (selector) {\n var elems,\n ret = [],\n insert = jQuery(selector),\n last = insert.length - 1,\n i = 0;\n\n for (; i <= last; i++) {\n elems = i === last ? this : this.clone(true);\n jQuery(insert[i])[original](elems); // Support: Android <=4.0 only, PhantomJS 1 only\n // .get() because push.apply(_, arraylike) throws on ancient WebKit\n\n push.apply(ret, elems.get());\n }\n\n return this.pushStack(ret);\n };\n });\n var rnumnonpx = new RegExp(\"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\");\n\n var getStyles = function getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n var view = elem.ownerDocument.defaultView;\n\n if (!view || !view.opener) {\n view = window;\n }\n\n return view.getComputedStyle(elem);\n };\n\n var swap = function swap(elem, options, callback) {\n var ret,\n name,\n old = {}; // Remember the old values, and insert the new ones\n\n for (name in options) {\n old[name] = elem.style[name];\n elem.style[name] = options[name];\n }\n\n ret = callback.call(elem); // Revert the old values\n\n for (name in options) {\n elem.style[name] = old[name];\n }\n\n return ret;\n };\n\n var rboxStyle = new RegExp(cssExpand.join(\"|\"), \"i\");\n\n (function () {\n // Executing both pixelPosition & boxSizingReliable tests require only one layout\n // so they're executed at the same time to save the second computation.\n function computeStyleTests() {\n // This is a singleton, we need to execute it only once\n if (!div) {\n return;\n }\n\n container.style.cssText = \"position:absolute;left:-11111px;width:60px;\" + \"margin-top:1px;padding:0;border:0\";\n div.style.cssText = \"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" + \"margin:auto;border:1px;padding:1px;\" + \"width:60%;top:1%\";\n documentElement.appendChild(container).appendChild(div);\n var divStyle = window.getComputedStyle(div);\n pixelPositionVal = divStyle.top !== \"1%\"; // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\n reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n // Some styles come back with percentage values, even though they shouldn't\n\n div.style.right = \"60%\";\n pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; // Support: IE 9 - 11 only\n // Detect misreporting of content dimensions for box-sizing:border-box elements\n\n boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; // Support: IE 9 only\n // Detect overflow:scroll screwiness (gh-3699)\n // Support: Chrome <=64\n // Don't get tricked when zoom affects offsetWidth (gh-4029)\n\n div.style.position = \"absolute\";\n scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12;\n documentElement.removeChild(container); // Nullify the div so it wouldn't be stored in the memory and\n // it will also be a sign that checks already performed\n\n div = null;\n }\n\n function roundPixelMeasures(measure) {\n return Math.round(parseFloat(measure));\n }\n\n var pixelPositionVal,\n boxSizingReliableVal,\n scrollboxSizeVal,\n pixelBoxStylesVal,\n reliableTrDimensionsVal,\n reliableMarginLeftVal,\n container = document.createElement(\"div\"),\n div = document.createElement(\"div\"); // Finish early in limited (non-browser) environments\n\n if (!div.style) {\n return;\n } // Support: IE <=9 - 11 only\n // Style of cloned element affects source element cloned (#8908)\n\n\n div.style.backgroundClip = \"content-box\";\n div.cloneNode(true).style.backgroundClip = \"\";\n support.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n jQuery.extend(support, {\n boxSizingReliable: function boxSizingReliable() {\n computeStyleTests();\n return boxSizingReliableVal;\n },\n pixelBoxStyles: function pixelBoxStyles() {\n computeStyleTests();\n return pixelBoxStylesVal;\n },\n pixelPosition: function pixelPosition() {\n computeStyleTests();\n return pixelPositionVal;\n },\n reliableMarginLeft: function reliableMarginLeft() {\n computeStyleTests();\n return reliableMarginLeftVal;\n },\n scrollboxSize: function scrollboxSize() {\n computeStyleTests();\n return scrollboxSizeVal;\n },\n // Support: IE 9 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Behavior in IE 9 is more subtle than in newer versions & it passes\n // some versions of this test; make sure not to make it pass there!\n reliableTrDimensions: function reliableTrDimensions() {\n var table, tr, trChild, trStyle;\n\n if (reliableTrDimensionsVal == null) {\n table = document.createElement(\"table\");\n tr = document.createElement(\"tr\");\n trChild = document.createElement(\"div\");\n table.style.cssText = \"position:absolute;left:-11111px\";\n tr.style.height = \"1px\";\n trChild.style.height = \"9px\";\n documentElement.appendChild(table).appendChild(tr).appendChild(trChild);\n trStyle = window.getComputedStyle(tr);\n reliableTrDimensionsVal = parseInt(trStyle.height) > 3;\n documentElement.removeChild(table);\n }\n\n return reliableTrDimensionsVal;\n }\n });\n })();\n\n function curCSS(elem, name, computed) {\n var width,\n minWidth,\n maxWidth,\n ret,\n // Support: Firefox 51+\n // Retrieving style before computed somehow\n // fixes an issue with getting wrong values\n // on detached elements\n style = elem.style;\n computed = computed || getStyles(elem); // getPropertyValue is needed for:\n // .css('filter') (IE 9 only, #12537)\n // .css('--customProperty) (#3144)\n\n if (computed) {\n ret = computed.getPropertyValue(name) || computed[name];\n\n if (ret === \"\" && !isAttached(elem)) {\n ret = jQuery.style(elem, name);\n } // A tribute to the \"awesome hack by Dean Edwards\"\n // Android Browser returns percentage for some values,\n // but width seems to be reliably pixels.\n // This is against the CSSOM draft spec:\n // https://drafts.csswg.org/cssom/#resolved-values\n\n\n if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) {\n // Remember the original values\n width = style.width;\n minWidth = style.minWidth;\n maxWidth = style.maxWidth; // Put in the new values to get a computed value out\n\n style.minWidth = style.maxWidth = style.width = ret;\n ret = computed.width; // Revert the changed values\n\n style.width = width;\n style.minWidth = minWidth;\n style.maxWidth = maxWidth;\n }\n }\n\n return ret !== undefined ? // Support: IE <=9 - 11 only\n // IE returns zIndex value as an integer.\n ret + \"\" : ret;\n }\n\n function addGetHookIf(conditionFn, hookFn) {\n // Define the hook, we'll check on the first run if it's really needed.\n return {\n get: function get() {\n if (conditionFn()) {\n // Hook not needed (or it's not possible to use it due\n // to missing dependency), remove it.\n delete this.get;\n return;\n } // Hook needed; redefine it so that the support test is not executed again.\n\n\n return (this.get = hookFn).apply(this, arguments);\n }\n };\n }\n\n var cssPrefixes = [\"Webkit\", \"Moz\", \"ms\"],\n emptyStyle = document.createElement(\"div\").style,\n vendorProps = {}; // Return a vendor-prefixed property or undefined\n\n function vendorPropName(name) {\n // Check for vendor prefixed names\n var capName = name[0].toUpperCase() + name.slice(1),\n i = cssPrefixes.length;\n\n while (i--) {\n name = cssPrefixes[i] + capName;\n\n if (name in emptyStyle) {\n return name;\n }\n }\n } // Return a potentially-mapped jQuery.cssProps or vendor prefixed property\n\n\n function finalPropName(name) {\n var _final = jQuery.cssProps[name] || vendorProps[name];\n\n if (_final) {\n return _final;\n }\n\n if (name in emptyStyle) {\n return name;\n }\n\n return vendorProps[name] = vendorPropName(name) || name;\n }\n\n var // Swappable if display is none or starts with table\n // except \"table\", \"table-cell\", or \"table-caption\"\n // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n rdisplayswap = /^(none|table(?!-c[ea]).+)/,\n rcustomProp = /^--/,\n cssShow = {\n position: \"absolute\",\n visibility: \"hidden\",\n display: \"block\"\n },\n cssNormalTransform = {\n letterSpacing: \"0\",\n fontWeight: \"400\"\n };\n\n function setPositiveNumber(_elem, value, subtract) {\n // Any relative (+/-) values have already been\n // normalized at this point\n var matches = rcssNum.exec(value);\n return matches ? // Guard against undefined \"subtract\", e.g., when used as in cssHooks\n Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || \"px\") : value;\n }\n\n function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) {\n var i = dimension === \"width\" ? 1 : 0,\n extra = 0,\n delta = 0; // Adjustment may not be necessary\n\n if (box === (isBorderBox ? \"border\" : \"content\")) {\n return 0;\n }\n\n for (; i < 4; i += 2) {\n // Both box models exclude margin\n if (box === \"margin\") {\n delta += jQuery.css(elem, box + cssExpand[i], true, styles);\n } // If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\n\n if (!isBorderBox) {\n // Add padding\n delta += jQuery.css(elem, \"padding\" + cssExpand[i], true, styles); // For \"border\" or \"margin\", add border\n\n if (box !== \"padding\") {\n delta += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles); // But still keep track of it otherwise\n } else {\n extra += jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n } // If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n // \"padding\" or \"margin\"\n\n } else {\n // For \"content\", subtract padding\n if (box === \"content\") {\n delta -= jQuery.css(elem, \"padding\" + cssExpand[i], true, styles);\n } // For \"content\" or \"padding\", subtract border\n\n\n if (box !== \"margin\") {\n delta -= jQuery.css(elem, \"border\" + cssExpand[i] + \"Width\", true, styles);\n }\n }\n } // Account for positive content-box scroll gutter when requested by providing computedVal\n\n\n if (!isBorderBox && computedVal >= 0) {\n // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n // Assuming integer scroll gutter, subtract the rest and round down\n delta += Math.max(0, Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n // Use an explicit zero to avoid NaN (gh-3964)\n )) || 0;\n }\n\n return delta;\n }\n\n function getWidthOrHeight(elem, dimension, extra) {\n // Start with computed style\n var styles = getStyles(elem),\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n // Fake content-box until we know it's needed to know the true value.\n boxSizingNeeded = !support.boxSizingReliable() || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n valueIsBorderBox = isBorderBox,\n val = curCSS(elem, dimension, styles),\n offsetProp = \"offset\" + dimension[0].toUpperCase() + dimension.slice(1); // Support: Firefox <=54\n // Return a confounding non-pixel value or feign ignorance, as appropriate.\n\n if (rnumnonpx.test(val)) {\n if (!extra) {\n return val;\n }\n\n val = \"auto\";\n } // Support: IE 9 - 11 only\n // Use offsetWidth/offsetHeight for when box sizing is unreliable.\n // In those cases, the computed value can be trusted to be border-box.\n\n\n if ((!support.boxSizingReliable() && isBorderBox || // Support: IE 10 - 11+, Edge 15 - 18+\n // IE/Edge misreport `getComputedStyle` of table rows with width/height\n // set in CSS while `offset*` properties report correct values.\n // Interestingly, in some cases IE 9 doesn't suffer from this issue.\n !support.reliableTrDimensions() && nodeName(elem, \"tr\") || // Fall back to offsetWidth/offsetHeight when value is \"auto\"\n // This happens for inline elements with no explicit setting (gh-3571)\n val === \"auto\" || // Support: Android <=4.1 - 4.3 only\n // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n !parseFloat(val) && jQuery.css(elem, \"display\", false, styles) === \"inline\") && // Make sure the element is visible & connected\n elem.getClientRects().length) {\n isBorderBox = jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\"; // Where available, offsetWidth/offsetHeight approximate border box dimensions.\n // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n // retrieved value as a content box dimension.\n\n valueIsBorderBox = offsetProp in elem;\n\n if (valueIsBorderBox) {\n val = elem[offsetProp];\n }\n } // Normalize \"\" and auto\n\n\n val = parseFloat(val) || 0; // Adjust for the element's box model\n\n return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? \"border\" : \"content\"), valueIsBorderBox, styles, // Provide the current computed size to request scroll gutter calculation (gh-3589)\n val) + \"px\";\n }\n\n jQuery.extend({\n // Add in style property hooks for overriding the default\n // behavior of getting and setting a style property\n cssHooks: {\n opacity: {\n get: function get(elem, computed) {\n if (computed) {\n // We should always get a number back from opacity\n var ret = curCSS(elem, \"opacity\");\n return ret === \"\" ? \"1\" : ret;\n }\n }\n }\n },\n // Don't automatically add \"px\" to these possibly-unitless properties\n cssNumber: {\n \"animationIterationCount\": true,\n \"columnCount\": true,\n \"fillOpacity\": true,\n \"flexGrow\": true,\n \"flexShrink\": true,\n \"fontWeight\": true,\n \"gridArea\": true,\n \"gridColumn\": true,\n \"gridColumnEnd\": true,\n \"gridColumnStart\": true,\n \"gridRow\": true,\n \"gridRowEnd\": true,\n \"gridRowStart\": true,\n \"lineHeight\": true,\n \"opacity\": true,\n \"order\": true,\n \"orphans\": true,\n \"widows\": true,\n \"zIndex\": true,\n \"zoom\": true\n },\n // Add in properties whose names you wish to fix before\n // setting or getting the value\n cssProps: {},\n // Get and set the style property on a DOM Node\n style: function style(elem, name, value, extra) {\n // Don't set styles on text and comment nodes\n if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) {\n return;\n } // Make sure that we're working with the right name\n\n\n var ret,\n type,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name),\n style = elem.style; // Make sure that we're working with the right name. We don't\n // want to query the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Gets hook for the prefixed version, then unprefixed version\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value\n\n if (value !== undefined) {\n type = _typeof(value); // Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\n if (type === \"string\" && (ret = rcssNum.exec(value)) && ret[1]) {\n value = adjustCSS(elem, name, ret); // Fixes bug #9237\n\n type = \"number\";\n } // Make sure that null and NaN values aren't set (#7116)\n\n\n if (value == null || value !== value) {\n return;\n } // If a number was passed in, add the unit (except for certain CSS properties)\n // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n // \"px\" to a few hardcoded values.\n\n\n if (type === \"number\" && !isCustomProp) {\n value += ret && ret[3] || (jQuery.cssNumber[origName] ? \"\" : \"px\");\n } // background-* props affect original clone's values\n\n\n if (!support.clearCloneStyle && value === \"\" && name.indexOf(\"background\") === 0) {\n style[name] = \"inherit\";\n } // If a hook was provided, use that value, otherwise just set the specified value\n\n\n if (!hooks || !(\"set\" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) {\n if (isCustomProp) {\n style.setProperty(name, value);\n } else {\n style[name] = value;\n }\n }\n } else {\n // If a hook was provided get the non-computed value from there\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) {\n return ret;\n } // Otherwise just get the value from the style object\n\n\n return style[name];\n }\n },\n css: function css(elem, name, extra, styles) {\n var val,\n num,\n hooks,\n origName = camelCase(name),\n isCustomProp = rcustomProp.test(name); // Make sure that we're working with the right name. We don't\n // want to modify the value if it is a CSS custom property\n // since they are user-defined.\n\n if (!isCustomProp) {\n name = finalPropName(origName);\n } // Try prefixed name followed by the unprefixed name\n\n\n hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there\n\n if (hooks && \"get\" in hooks) {\n val = hooks.get(elem, true, extra);\n } // Otherwise, if a way to get the computed value exists, use that\n\n\n if (val === undefined) {\n val = curCSS(elem, name, styles);\n } // Convert \"normal\" to computed value\n\n\n if (val === \"normal\" && name in cssNormalTransform) {\n val = cssNormalTransform[name];\n } // Make numeric if forced or a qualifier was provided and val looks numeric\n\n\n if (extra === \"\" || extra) {\n num = parseFloat(val);\n return extra === true || isFinite(num) ? num || 0 : val;\n }\n\n return val;\n }\n });\n jQuery.each([\"height\", \"width\"], function (_i, dimension) {\n jQuery.cssHooks[dimension] = {\n get: function get(elem, computed, extra) {\n if (computed) {\n // Certain elements can have dimension info if we invisibly show them\n // but it must have a current display style that would benefit\n return rdisplayswap.test(jQuery.css(elem, \"display\")) && ( // Support: Safari 8+\n // Table columns in Safari have non-zero offsetWidth & zero\n // getBoundingClientRect().width unless display is changed.\n // Support: IE <=11 only\n // Running getBoundingClientRect on a disconnected node\n // in IE throws an error.\n !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () {\n return getWidthOrHeight(elem, dimension, extra);\n }) : getWidthOrHeight(elem, dimension, extra);\n }\n },\n set: function set(elem, value, extra) {\n var matches,\n styles = getStyles(elem),\n // Only read styles.position if the test has a chance to fail\n // to avoid forcing a reflow.\n scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === \"absolute\",\n // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n boxSizingNeeded = scrollboxSizeBuggy || extra,\n isBorderBox = boxSizingNeeded && jQuery.css(elem, \"boxSizing\", false, styles) === \"border-box\",\n subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; // Account for unreliable border-box dimensions by comparing offset* to computed and\n // faking a content-box to get border and padding (gh-3699)\n\n if (isBorderBox && scrollboxSizeBuggy) {\n subtract -= Math.ceil(elem[\"offset\" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, \"border\", false, styles) - 0.5);\n } // Convert to pixels if value adjustment is needed\n\n\n if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || \"px\") !== \"px\") {\n elem.style[dimension] = value;\n value = jQuery.css(elem, dimension);\n }\n\n return setPositiveNumber(elem, value, subtract);\n }\n };\n });\n jQuery.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) {\n if (computed) {\n return (parseFloat(curCSS(elem, \"marginLeft\")) || elem.getBoundingClientRect().left - swap(elem, {\n marginLeft: 0\n }, function () {\n return elem.getBoundingClientRect().left;\n })) + \"px\";\n }\n }); // These hooks are used by animate to expand properties\n\n jQuery.each({\n margin: \"\",\n padding: \"\",\n border: \"Width\"\n }, function (prefix, suffix) {\n jQuery.cssHooks[prefix + suffix] = {\n expand: function expand(value) {\n var i = 0,\n expanded = {},\n // Assumes a single number if not a string\n parts = typeof value === \"string\" ? value.split(\" \") : [value];\n\n for (; i < 4; i++) {\n expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0];\n }\n\n return expanded;\n }\n };\n\n if (prefix !== \"margin\") {\n jQuery.cssHooks[prefix + suffix].set = setPositiveNumber;\n }\n });\n jQuery.fn.extend({\n css: function css(name, value) {\n return access(this, function (elem, name, value) {\n var styles,\n len,\n map = {},\n i = 0;\n\n if (Array.isArray(name)) {\n styles = getStyles(elem);\n len = name.length;\n\n for (; i < len; i++) {\n map[name[i]] = jQuery.css(elem, name[i], false, styles);\n }\n\n return map;\n }\n\n return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name);\n }, name, value, arguments.length > 1);\n }\n });\n\n function Tween(elem, options, prop, end, easing) {\n return new Tween.prototype.init(elem, options, prop, end, easing);\n }\n\n jQuery.Tween = Tween;\n Tween.prototype = {\n constructor: Tween,\n init: function init(elem, options, prop, end, easing, unit) {\n this.elem = elem;\n this.prop = prop;\n this.easing = easing || jQuery.easing._default;\n this.options = options;\n this.start = this.now = this.cur();\n this.end = end;\n this.unit = unit || (jQuery.cssNumber[prop] ? \"\" : \"px\");\n },\n cur: function cur() {\n var hooks = Tween.propHooks[this.prop];\n return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this);\n },\n run: function run(percent) {\n var eased,\n hooks = Tween.propHooks[this.prop];\n\n if (this.options.duration) {\n this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration);\n } else {\n this.pos = eased = percent;\n }\n\n this.now = (this.end - this.start) * eased + this.start;\n\n if (this.options.step) {\n this.options.step.call(this.elem, this.now, this);\n }\n\n if (hooks && hooks.set) {\n hooks.set(this);\n } else {\n Tween.propHooks._default.set(this);\n }\n\n return this;\n }\n };\n Tween.prototype.init.prototype = Tween.prototype;\n Tween.propHooks = {\n _default: {\n get: function get(tween) {\n var result; // Use a property on the element directly when it is not a DOM element,\n // or when there is no matching style property that exists.\n\n if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) {\n return tween.elem[tween.prop];\n } // Passing an empty string as a 3rd parameter to .css will automatically\n // attempt a parseFloat and fallback to a string if the parse fails.\n // Simple values such as \"10px\" are parsed to Float;\n // complex values such as \"rotate(1rad)\" are returned as-is.\n\n\n result = jQuery.css(tween.elem, tween.prop, \"\"); // Empty strings, null, undefined and \"auto\" are converted to 0.\n\n return !result || result === \"auto\" ? 0 : result;\n },\n set: function set(tween) {\n // Use step hook for back compat.\n // Use cssHook if its there.\n // Use .style if available and use plain properties where available.\n if (jQuery.fx.step[tween.prop]) {\n jQuery.fx.step[tween.prop](tween);\n } else if (tween.elem.nodeType === 1 && (jQuery.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) {\n jQuery.style(tween.elem, tween.prop, tween.now + tween.unit);\n } else {\n tween.elem[tween.prop] = tween.now;\n }\n }\n }\n }; // Support: IE <=9 only\n // Panic based approach to setting things on disconnected nodes\n\n Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n set: function set(tween) {\n if (tween.elem.nodeType && tween.elem.parentNode) {\n tween.elem[tween.prop] = tween.now;\n }\n }\n };\n jQuery.easing = {\n linear: function linear(p) {\n return p;\n },\n swing: function swing(p) {\n return 0.5 - Math.cos(p * Math.PI) / 2;\n },\n _default: \"swing\"\n };\n jQuery.fx = Tween.prototype.init; // Back compat <1.8 extension point\n\n jQuery.fx.step = {};\n var fxNow,\n inProgress,\n rfxtypes = /^(?:toggle|show|hide)$/,\n rrun = /queueHooks$/;\n\n function schedule() {\n if (inProgress) {\n if (document.hidden === false && window.requestAnimationFrame) {\n window.requestAnimationFrame(schedule);\n } else {\n window.setTimeout(schedule, jQuery.fx.interval);\n }\n\n jQuery.fx.tick();\n }\n } // Animations created synchronously will run synchronously\n\n\n function createFxNow() {\n window.setTimeout(function () {\n fxNow = undefined;\n });\n return fxNow = Date.now();\n } // Generate parameters to create a standard animation\n\n\n function genFx(type, includeWidth) {\n var which,\n i = 0,\n attrs = {\n height: type\n }; // If we include width, step value is 1 to do all cssExpand values,\n // otherwise step value is 2 to skip over Left and Right\n\n includeWidth = includeWidth ? 1 : 0;\n\n for (; i < 4; i += 2 - includeWidth) {\n which = cssExpand[i];\n attrs[\"margin\" + which] = attrs[\"padding\" + which] = type;\n }\n\n if (includeWidth) {\n attrs.opacity = attrs.width = type;\n }\n\n return attrs;\n }\n\n function createTween(value, prop, animation) {\n var tween,\n collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners[\"*\"]),\n index = 0,\n length = collection.length;\n\n for (; index < length; index++) {\n if (tween = collection[index].call(animation, prop, value)) {\n // We're done with this property\n return tween;\n }\n }\n }\n\n function defaultPrefilter(elem, props, opts) {\n var prop,\n value,\n toggle,\n hooks,\n oldfire,\n propTween,\n restoreDisplay,\n display,\n isBox = \"width\" in props || \"height\" in props,\n anim = this,\n orig = {},\n style = elem.style,\n hidden = elem.nodeType && isHiddenWithinTree(elem),\n dataShow = dataPriv.get(elem, \"fxshow\"); // Queue-skipping animations hijack the fx hooks\n\n if (!opts.queue) {\n hooks = jQuery._queueHooks(elem, \"fx\");\n\n if (hooks.unqueued == null) {\n hooks.unqueued = 0;\n oldfire = hooks.empty.fire;\n\n hooks.empty.fire = function () {\n if (!hooks.unqueued) {\n oldfire();\n }\n };\n }\n\n hooks.unqueued++;\n anim.always(function () {\n // Ensure the complete handler is called before this completes\n anim.always(function () {\n hooks.unqueued--;\n\n if (!jQuery.queue(elem, \"fx\").length) {\n hooks.empty.fire();\n }\n });\n });\n } // Detect show/hide animations\n\n\n for (prop in props) {\n value = props[prop];\n\n if (rfxtypes.test(value)) {\n delete props[prop];\n toggle = toggle || value === \"toggle\";\n\n if (value === (hidden ? \"hide\" : \"show\")) {\n // Pretend to be hidden if this is a \"show\" and\n // there is still data from a stopped show/hide\n if (value === \"show\" && dataShow && dataShow[prop] !== undefined) {\n hidden = true; // Ignore all other no-op show/hide data\n } else {\n continue;\n }\n }\n\n orig[prop] = dataShow && dataShow[prop] || jQuery.style(elem, prop);\n }\n } // Bail out if this is a no-op like .hide().hide()\n\n\n propTween = !jQuery.isEmptyObject(props);\n\n if (!propTween && jQuery.isEmptyObject(orig)) {\n return;\n } // Restrict \"overflow\" and \"display\" styles during box animations\n\n\n if (isBox && elem.nodeType === 1) {\n // Support: IE <=9 - 11, Edge 12 - 15\n // Record all 3 overflow attributes because IE does not infer the shorthand\n // from identically-valued overflowX and overflowY and Edge just mirrors\n // the overflowX value there.\n opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Identify a display type, preferring old show/hide data over the CSS cascade\n\n restoreDisplay = dataShow && dataShow.display;\n\n if (restoreDisplay == null) {\n restoreDisplay = dataPriv.get(elem, \"display\");\n }\n\n display = jQuery.css(elem, \"display\");\n\n if (display === \"none\") {\n if (restoreDisplay) {\n display = restoreDisplay;\n } else {\n // Get nonempty value(s) by temporarily forcing visibility\n showHide([elem], true);\n restoreDisplay = elem.style.display || restoreDisplay;\n display = jQuery.css(elem, \"display\");\n showHide([elem]);\n }\n } // Animate inline elements as inline-block\n\n\n if (display === \"inline\" || display === \"inline-block\" && restoreDisplay != null) {\n if (jQuery.css(elem, \"float\") === \"none\") {\n // Restore the original display value at the end of pure show/hide animations\n if (!propTween) {\n anim.done(function () {\n style.display = restoreDisplay;\n });\n\n if (restoreDisplay == null) {\n display = style.display;\n restoreDisplay = display === \"none\" ? \"\" : display;\n }\n }\n\n style.display = \"inline-block\";\n }\n }\n }\n\n if (opts.overflow) {\n style.overflow = \"hidden\";\n anim.always(function () {\n style.overflow = opts.overflow[0];\n style.overflowX = opts.overflow[1];\n style.overflowY = opts.overflow[2];\n });\n } // Implement show/hide animations\n\n\n propTween = false;\n\n for (prop in orig) {\n // General show/hide setup for this element animation\n if (!propTween) {\n if (dataShow) {\n if (\"hidden\" in dataShow) {\n hidden = dataShow.hidden;\n }\n } else {\n dataShow = dataPriv.access(elem, \"fxshow\", {\n display: restoreDisplay\n });\n } // Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\n\n if (toggle) {\n dataShow.hidden = !hidden;\n } // Show elements before animating them\n\n\n if (hidden) {\n showHide([elem], true);\n }\n /* eslint-disable no-loop-func */\n\n\n anim.done(function () {\n /* eslint-enable no-loop-func */\n // The final step of a \"hide\" animation is actually hiding the element\n if (!hidden) {\n showHide([elem]);\n }\n\n dataPriv.remove(elem, \"fxshow\");\n\n for (prop in orig) {\n jQuery.style(elem, prop, orig[prop]);\n }\n });\n } // Per-property setup\n\n\n propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim);\n\n if (!(prop in dataShow)) {\n dataShow[prop] = propTween.start;\n\n if (hidden) {\n propTween.end = propTween.start;\n propTween.start = 0;\n }\n }\n }\n }\n\n function propFilter(props, specialEasing) {\n var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass\n\n for (index in props) {\n name = camelCase(index);\n easing = specialEasing[name];\n value = props[index];\n\n if (Array.isArray(value)) {\n easing = value[1];\n value = props[index] = value[0];\n }\n\n if (index !== name) {\n props[name] = value;\n delete props[index];\n }\n\n hooks = jQuery.cssHooks[name];\n\n if (hooks && \"expand\" in hooks) {\n value = hooks.expand(value);\n delete props[name]; // Not quite $.extend, this won't overwrite existing keys.\n // Reusing 'index' because we have the correct \"name\"\n\n for (index in value) {\n if (!(index in props)) {\n props[index] = value[index];\n specialEasing[index] = easing;\n }\n }\n } else {\n specialEasing[name] = easing;\n }\n }\n }\n\n function Animation(elem, properties, options) {\n var result,\n stopped,\n index = 0,\n length = Animation.prefilters.length,\n deferred = jQuery.Deferred().always(function () {\n // Don't match elem in the :animated selector\n delete tick.elem;\n }),\n tick = function tick() {\n if (stopped) {\n return false;\n }\n\n var currentTime = fxNow || createFxNow(),\n remaining = Math.max(0, animation.startTime + animation.duration - currentTime),\n // Support: Android 2.3 only\n // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n temp = remaining / animation.duration || 0,\n percent = 1 - temp,\n index = 0,\n length = animation.tweens.length;\n\n for (; index < length; index++) {\n animation.tweens[index].run(percent);\n }\n\n deferred.notifyWith(elem, [animation, percent, remaining]); // If there's more to do, yield\n\n if (percent < 1 && length) {\n return remaining;\n } // If this was an empty animation, synthesize a final progress notification\n\n\n if (!length) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n } // Resolve the animation and report its conclusion\n\n\n deferred.resolveWith(elem, [animation]);\n return false;\n },\n animation = deferred.promise({\n elem: elem,\n props: jQuery.extend({}, properties),\n opts: jQuery.extend(true, {\n specialEasing: {},\n easing: jQuery.easing._default\n }, options),\n originalProperties: properties,\n originalOptions: options,\n startTime: fxNow || createFxNow(),\n duration: options.duration,\n tweens: [],\n createTween: function createTween(prop, end) {\n var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing);\n animation.tweens.push(tween);\n return tween;\n },\n stop: function stop(gotoEnd) {\n var index = 0,\n // If we are going to the end, we want to run all the tweens\n // otherwise we skip this part\n length = gotoEnd ? animation.tweens.length : 0;\n\n if (stopped) {\n return this;\n }\n\n stopped = true;\n\n for (; index < length; index++) {\n animation.tweens[index].run(1);\n } // Resolve when we played the last frame; otherwise, reject\n\n\n if (gotoEnd) {\n deferred.notifyWith(elem, [animation, 1, 0]);\n deferred.resolveWith(elem, [animation, gotoEnd]);\n } else {\n deferred.rejectWith(elem, [animation, gotoEnd]);\n }\n\n return this;\n }\n }),\n props = animation.props;\n\n propFilter(props, animation.opts.specialEasing);\n\n for (; index < length; index++) {\n result = Animation.prefilters[index].call(animation, elem, props, animation.opts);\n\n if (result) {\n if (isFunction(result.stop)) {\n jQuery._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result);\n }\n\n return result;\n }\n }\n\n jQuery.map(props, createTween, animation);\n\n if (isFunction(animation.opts.start)) {\n animation.opts.start.call(elem, animation);\n } // Attach callbacks from options\n\n\n animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);\n jQuery.fx.timer(jQuery.extend(tick, {\n elem: elem,\n anim: animation,\n queue: animation.opts.queue\n }));\n return animation;\n }\n\n jQuery.Animation = jQuery.extend(Animation, {\n tweeners: {\n \"*\": [function (prop, value) {\n var tween = this.createTween(prop, value);\n adjustCSS(tween.elem, prop, rcssNum.exec(value), tween);\n return tween;\n }]\n },\n tweener: function tweener(props, callback) {\n if (isFunction(props)) {\n callback = props;\n props = [\"*\"];\n } else {\n props = props.match(rnothtmlwhite);\n }\n\n var prop,\n index = 0,\n length = props.length;\n\n for (; index < length; index++) {\n prop = props[index];\n Animation.tweeners[prop] = Animation.tweeners[prop] || [];\n Animation.tweeners[prop].unshift(callback);\n }\n },\n prefilters: [defaultPrefilter],\n prefilter: function prefilter(callback, prepend) {\n if (prepend) {\n Animation.prefilters.unshift(callback);\n } else {\n Animation.prefilters.push(callback);\n }\n }\n });\n\n jQuery.speed = function (speed, easing, fn) {\n var opt = speed && _typeof(speed) === \"object\" ? jQuery.extend({}, speed) : {\n complete: fn || !fn && easing || isFunction(speed) && speed,\n duration: speed,\n easing: fn && easing || easing && !isFunction(easing) && easing\n }; // Go to the end state if fx are off\n\n if (jQuery.fx.off) {\n opt.duration = 0;\n } else {\n if (typeof opt.duration !== \"number\") {\n if (opt.duration in jQuery.fx.speeds) {\n opt.duration = jQuery.fx.speeds[opt.duration];\n } else {\n opt.duration = jQuery.fx.speeds._default;\n }\n }\n } // Normalize opt.queue - true/undefined/null -> \"fx\"\n\n\n if (opt.queue == null || opt.queue === true) {\n opt.queue = \"fx\";\n } // Queueing\n\n\n opt.old = opt.complete;\n\n opt.complete = function () {\n if (isFunction(opt.old)) {\n opt.old.call(this);\n }\n\n if (opt.queue) {\n jQuery.dequeue(this, opt.queue);\n }\n };\n\n return opt;\n };\n\n jQuery.fn.extend({\n fadeTo: function fadeTo(speed, to, easing, callback) {\n // Show any hidden elements after setting opacity to 0\n return this.filter(isHiddenWithinTree).css(\"opacity\", 0).show() // Animate to the value specified\n .end().animate({\n opacity: to\n }, speed, easing, callback);\n },\n animate: function animate(prop, speed, easing, callback) {\n var empty = jQuery.isEmptyObject(prop),\n optall = jQuery.speed(speed, easing, callback),\n doAnimation = function doAnimation() {\n // Operate on a copy of prop so per-property easing won't be lost\n var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations, or finishing resolves immediately\n\n if (empty || dataPriv.get(this, \"finish\")) {\n anim.stop(true);\n }\n };\n\n doAnimation.finish = doAnimation;\n return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation);\n },\n stop: function stop(type, clearQueue, gotoEnd) {\n var stopQueue = function stopQueue(hooks) {\n var stop = hooks.stop;\n delete hooks.stop;\n stop(gotoEnd);\n };\n\n if (typeof type !== \"string\") {\n gotoEnd = clearQueue;\n clearQueue = type;\n type = undefined;\n }\n\n if (clearQueue) {\n this.queue(type || \"fx\", []);\n }\n\n return this.each(function () {\n var dequeue = true,\n index = type != null && type + \"queueHooks\",\n timers = jQuery.timers,\n data = dataPriv.get(this);\n\n if (index) {\n if (data[index] && data[index].stop) {\n stopQueue(data[index]);\n }\n } else {\n for (index in data) {\n if (data[index] && data[index].stop && rrun.test(index)) {\n stopQueue(data[index]);\n }\n }\n }\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && (type == null || timers[index].queue === type)) {\n timers[index].anim.stop(gotoEnd);\n dequeue = false;\n timers.splice(index, 1);\n }\n } // Start the next in the queue if the last step wasn't forced.\n // Timers currently will call their complete callbacks, which\n // will dequeue but only if they were gotoEnd.\n\n\n if (dequeue || !gotoEnd) {\n jQuery.dequeue(this, type);\n }\n });\n },\n finish: function finish(type) {\n if (type !== false) {\n type = type || \"fx\";\n }\n\n return this.each(function () {\n var index,\n data = dataPriv.get(this),\n queue = data[type + \"queue\"],\n hooks = data[type + \"queueHooks\"],\n timers = jQuery.timers,\n length = queue ? queue.length : 0; // Enable finishing flag on private data\n\n data.finish = true; // Empty the queue first\n\n jQuery.queue(this, type, []);\n\n if (hooks && hooks.stop) {\n hooks.stop.call(this, true);\n } // Look for any active animations, and finish them\n\n\n for (index = timers.length; index--;) {\n if (timers[index].elem === this && timers[index].queue === type) {\n timers[index].anim.stop(true);\n timers.splice(index, 1);\n }\n } // Look for any animations in the old queue and finish them\n\n\n for (index = 0; index < length; index++) {\n if (queue[index] && queue[index].finish) {\n queue[index].finish.call(this);\n }\n } // Turn off finishing flag\n\n\n delete data.finish;\n });\n }\n });\n jQuery.each([\"toggle\", \"show\", \"hide\"], function (_i, name) {\n var cssFn = jQuery.fn[name];\n\n jQuery.fn[name] = function (speed, easing, callback) {\n return speed == null || typeof speed === \"boolean\" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback);\n };\n }); // Generate shortcuts for custom animations\n\n jQuery.each({\n slideDown: genFx(\"show\"),\n slideUp: genFx(\"hide\"),\n slideToggle: genFx(\"toggle\"),\n fadeIn: {\n opacity: \"show\"\n },\n fadeOut: {\n opacity: \"hide\"\n },\n fadeToggle: {\n opacity: \"toggle\"\n }\n }, function (name, props) {\n jQuery.fn[name] = function (speed, easing, callback) {\n return this.animate(props, speed, easing, callback);\n };\n });\n jQuery.timers = [];\n\n jQuery.fx.tick = function () {\n var timer,\n i = 0,\n timers = jQuery.timers;\n fxNow = Date.now();\n\n for (; i < timers.length; i++) {\n timer = timers[i]; // Run the timer and safely remove it when done (allowing for external removal)\n\n if (!timer() && timers[i] === timer) {\n timers.splice(i--, 1);\n }\n }\n\n if (!timers.length) {\n jQuery.fx.stop();\n }\n\n fxNow = undefined;\n };\n\n jQuery.fx.timer = function (timer) {\n jQuery.timers.push(timer);\n jQuery.fx.start();\n };\n\n jQuery.fx.interval = 13;\n\n jQuery.fx.start = function () {\n if (inProgress) {\n return;\n }\n\n inProgress = true;\n schedule();\n };\n\n jQuery.fx.stop = function () {\n inProgress = null;\n };\n\n jQuery.fx.speeds = {\n slow: 600,\n fast: 200,\n // Default speed\n _default: 400\n }; // Based off of the plugin by Clint Helfers, with permission.\n // https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\n\n jQuery.fn.delay = function (time, type) {\n time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;\n type = type || \"fx\";\n return this.queue(type, function (next, hooks) {\n var timeout = window.setTimeout(next, time);\n\n hooks.stop = function () {\n window.clearTimeout(timeout);\n };\n });\n };\n\n (function () {\n var input = document.createElement(\"input\"),\n select = document.createElement(\"select\"),\n opt = select.appendChild(document.createElement(\"option\"));\n input.type = \"checkbox\"; // Support: Android <=4.3 only\n // Default value for a checkbox should be \"on\"\n\n support.checkOn = input.value !== \"\"; // Support: IE <=11 only\n // Must access selectedIndex to make default options select\n\n support.optSelected = opt.selected; // Support: IE <=11 only\n // An input loses its value after becoming a radio\n\n input = document.createElement(\"input\");\n input.value = \"t\";\n input.type = \"radio\";\n support.radioValue = input.value === \"t\";\n })();\n\n var boolHook,\n attrHandle = jQuery.expr.attrHandle;\n jQuery.fn.extend({\n attr: function attr(name, value) {\n return access(this, jQuery.attr, name, value, arguments.length > 1);\n },\n removeAttr: function removeAttr(name) {\n return this.each(function () {\n jQuery.removeAttr(this, name);\n });\n }\n });\n jQuery.extend({\n attr: function attr(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set attributes on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n } // Fallback to prop when attributes are not supported\n\n\n if (typeof elem.getAttribute === \"undefined\") {\n return jQuery.prop(elem, name, value);\n } // Attribute hooks are determined by the lowercase version\n // Grab necessary hook if one is defined\n\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n hooks = jQuery.attrHooks[name.toLowerCase()] || (jQuery.expr.match.bool.test(name) ? boolHook : undefined);\n }\n\n if (value !== undefined) {\n if (value === null) {\n jQuery.removeAttr(elem, name);\n return;\n }\n\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n elem.setAttribute(name, value + \"\");\n return value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n ret = jQuery.find.attr(elem, name); // Non-existent attributes return null, we normalize to undefined\n\n return ret == null ? undefined : ret;\n },\n attrHooks: {\n type: {\n set: function set(elem, value) {\n if (!support.radioValue && value === \"radio\" && nodeName(elem, \"input\")) {\n var val = elem.value;\n elem.setAttribute(\"type\", value);\n\n if (val) {\n elem.value = val;\n }\n\n return value;\n }\n }\n }\n },\n removeAttr: function removeAttr(elem, value) {\n var name,\n i = 0,\n // Attribute names can contain non-HTML whitespace characters\n // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n attrNames = value && value.match(rnothtmlwhite);\n\n if (attrNames && elem.nodeType === 1) {\n while (name = attrNames[i++]) {\n elem.removeAttribute(name);\n }\n }\n }\n }); // Hooks for boolean attributes\n\n boolHook = {\n set: function set(elem, value, name) {\n if (value === false) {\n // Remove boolean attributes when set to false\n jQuery.removeAttr(elem, name);\n } else {\n elem.setAttribute(name, name);\n }\n\n return name;\n }\n };\n jQuery.each(jQuery.expr.match.bool.source.match(/\\w+/g), function (_i, name) {\n var getter = attrHandle[name] || jQuery.find.attr;\n\n attrHandle[name] = function (elem, name, isXML) {\n var ret,\n handle,\n lowercaseName = name.toLowerCase();\n\n if (!isXML) {\n // Avoid an infinite loop by temporarily removing this function from the getter\n handle = attrHandle[lowercaseName];\n attrHandle[lowercaseName] = ret;\n ret = getter(elem, name, isXML) != null ? lowercaseName : null;\n attrHandle[lowercaseName] = handle;\n }\n\n return ret;\n };\n });\n var rfocusable = /^(?:input|select|textarea|button)$/i,\n rclickable = /^(?:a|area)$/i;\n jQuery.fn.extend({\n prop: function prop(name, value) {\n return access(this, jQuery.prop, name, value, arguments.length > 1);\n },\n removeProp: function removeProp(name) {\n return this.each(function () {\n delete this[jQuery.propFix[name] || name];\n });\n }\n });\n jQuery.extend({\n prop: function prop(elem, name, value) {\n var ret,\n hooks,\n nType = elem.nodeType; // Don't get/set properties on text, comment and attribute nodes\n\n if (nType === 3 || nType === 8 || nType === 2) {\n return;\n }\n\n if (nType !== 1 || !jQuery.isXMLDoc(elem)) {\n // Fix name and attach hooks\n name = jQuery.propFix[name] || name;\n hooks = jQuery.propHooks[name];\n }\n\n if (value !== undefined) {\n if (hooks && \"set\" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) {\n return ret;\n }\n\n return elem[name] = value;\n }\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, name)) !== null) {\n return ret;\n }\n\n return elem[name];\n },\n propHooks: {\n tabIndex: {\n get: function get(elem) {\n // Support: IE <=9 - 11 only\n // elem.tabIndex doesn't always return the\n // correct value when it hasn't been explicitly set\n // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n // Use proper attribute retrieval(#12072)\n var tabindex = jQuery.find.attr(elem, \"tabindex\");\n\n if (tabindex) {\n return parseInt(tabindex, 10);\n }\n\n if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) {\n return 0;\n }\n\n return -1;\n }\n }\n },\n propFix: {\n \"for\": \"htmlFor\",\n \"class\": \"className\"\n }\n }); // Support: IE <=11 only\n // Accessing the selectedIndex property\n // forces the browser to respect setting selected\n // on the option\n // The getter ensures a default option is selected\n // when in an optgroup\n // eslint rule \"no-unused-expressions\" is disabled for this code\n // since it considers such accessions noop\n\n if (!support.optSelected) {\n jQuery.propHooks.selected = {\n get: function get(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent && parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n\n return null;\n },\n set: function set(elem) {\n /* eslint no-unused-expressions: \"off\" */\n var parent = elem.parentNode;\n\n if (parent) {\n parent.selectedIndex;\n\n if (parent.parentNode) {\n parent.parentNode.selectedIndex;\n }\n }\n }\n };\n }\n\n jQuery.each([\"tabIndex\", \"readOnly\", \"maxLength\", \"cellSpacing\", \"cellPadding\", \"rowSpan\", \"colSpan\", \"useMap\", \"frameBorder\", \"contentEditable\"], function () {\n jQuery.propFix[this.toLowerCase()] = this;\n }); // Strip and collapse whitespace according to HTML spec\n // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\n function stripAndCollapse(value) {\n var tokens = value.match(rnothtmlwhite) || [];\n return tokens.join(\" \");\n }\n\n function getClass(elem) {\n return elem.getAttribute && elem.getAttribute(\"class\") || \"\";\n }\n\n function classesToArray(value) {\n if (Array.isArray(value)) {\n return value;\n }\n\n if (typeof value === \"string\") {\n return value.match(rnothtmlwhite) || [];\n }\n\n return [];\n }\n\n jQuery.fn.extend({\n addClass: function addClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).addClass(value.call(this, j, getClass(this)));\n });\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem);\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n if (cur.indexOf(\" \" + clazz + \" \") < 0) {\n cur += clazz + \" \";\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n removeClass: function removeClass(value) {\n var classes,\n elem,\n cur,\n curValue,\n clazz,\n j,\n finalValue,\n i = 0;\n\n if (isFunction(value)) {\n return this.each(function (j) {\n jQuery(this).removeClass(value.call(this, j, getClass(this)));\n });\n }\n\n if (!arguments.length) {\n return this.attr(\"class\", \"\");\n }\n\n classes = classesToArray(value);\n\n if (classes.length) {\n while (elem = this[i++]) {\n curValue = getClass(elem); // This expression is here for better compressibility (see addClass)\n\n cur = elem.nodeType === 1 && \" \" + stripAndCollapse(curValue) + \" \";\n\n if (cur) {\n j = 0;\n\n while (clazz = classes[j++]) {\n // Remove *all* instances\n while (cur.indexOf(\" \" + clazz + \" \") > -1) {\n cur = cur.replace(\" \" + clazz + \" \", \" \");\n }\n } // Only assign if different to avoid unneeded rendering.\n\n\n finalValue = stripAndCollapse(cur);\n\n if (curValue !== finalValue) {\n elem.setAttribute(\"class\", finalValue);\n }\n }\n }\n }\n\n return this;\n },\n toggleClass: function toggleClass(value, stateVal) {\n var type = _typeof(value),\n isValidValue = type === \"string\" || Array.isArray(value);\n\n if (typeof stateVal === \"boolean\" && isValidValue) {\n return stateVal ? this.addClass(value) : this.removeClass(value);\n }\n\n if (isFunction(value)) {\n return this.each(function (i) {\n jQuery(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal);\n });\n }\n\n return this.each(function () {\n var className, i, self, classNames;\n\n if (isValidValue) {\n // Toggle individual class names\n i = 0;\n self = jQuery(this);\n classNames = classesToArray(value);\n\n while (className = classNames[i++]) {\n // Check each className given, space separated list\n if (self.hasClass(className)) {\n self.removeClass(className);\n } else {\n self.addClass(className);\n }\n } // Toggle whole class name\n\n } else if (value === undefined || type === \"boolean\") {\n className = getClass(this);\n\n if (className) {\n // Store className if set\n dataPriv.set(this, \"__className__\", className);\n } // If the element has a class name or if we're passed `false`,\n // then remove the whole classname (if there was one, the above saved it).\n // Otherwise bring back whatever was previously saved (if anything),\n // falling back to the empty string if nothing was stored.\n\n\n if (this.setAttribute) {\n this.setAttribute(\"class\", className || value === false ? \"\" : dataPriv.get(this, \"__className__\") || \"\");\n }\n }\n });\n },\n hasClass: function hasClass(selector) {\n var className,\n elem,\n i = 0;\n className = \" \" + selector + \" \";\n\n while (elem = this[i++]) {\n if (elem.nodeType === 1 && (\" \" + stripAndCollapse(getClass(elem)) + \" \").indexOf(className) > -1) {\n return true;\n }\n }\n\n return false;\n }\n });\n var rreturn = /\\r/g;\n jQuery.fn.extend({\n val: function val(value) {\n var hooks,\n ret,\n valueIsFunction,\n elem = this[0];\n\n if (!arguments.length) {\n if (elem) {\n hooks = jQuery.valHooks[elem.type] || jQuery.valHooks[elem.nodeName.toLowerCase()];\n\n if (hooks && \"get\" in hooks && (ret = hooks.get(elem, \"value\")) !== undefined) {\n return ret;\n }\n\n ret = elem.value; // Handle most common string cases\n\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } // Handle cases where value is null/undef or number\n\n\n return ret == null ? \"\" : ret;\n }\n\n return;\n }\n\n valueIsFunction = isFunction(value);\n return this.each(function (i) {\n var val;\n\n if (this.nodeType !== 1) {\n return;\n }\n\n if (valueIsFunction) {\n val = value.call(this, i, jQuery(this).val());\n } else {\n val = value;\n } // Treat null/undefined as \"\"; convert numbers to string\n\n\n if (val == null) {\n val = \"\";\n } else if (typeof val === \"number\") {\n val += \"\";\n } else if (Array.isArray(val)) {\n val = jQuery.map(val, function (value) {\n return value == null ? \"\" : value + \"\";\n });\n }\n\n hooks = jQuery.valHooks[this.type] || jQuery.valHooks[this.nodeName.toLowerCase()]; // If set returns undefined, fall back to normal setting\n\n if (!hooks || !(\"set\" in hooks) || hooks.set(this, val, \"value\") === undefined) {\n this.value = val;\n }\n });\n }\n });\n jQuery.extend({\n valHooks: {\n option: {\n get: function get(elem) {\n var val = jQuery.find.attr(elem, \"value\");\n return val != null ? val : // Support: IE <=10 - 11 only\n // option.text throws exceptions (#14686, #14858)\n // Strip and collapse whitespace\n // https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n stripAndCollapse(jQuery.text(elem));\n }\n },\n select: {\n get: function get(elem) {\n var value,\n option,\n i,\n options = elem.options,\n index = elem.selectedIndex,\n one = elem.type === \"select-one\",\n values = one ? null : [],\n max = one ? index + 1 : options.length;\n\n if (index < 0) {\n i = max;\n } else {\n i = one ? index : 0;\n } // Loop through all the selected options\n\n\n for (; i < max; i++) {\n option = options[i]; // Support: IE <=9 only\n // IE8-9 doesn't update selected after form reset (#2551)\n\n if ((option.selected || i === index) && // Don't return options that are disabled or in a disabled optgroup\n !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, \"optgroup\"))) {\n // Get the specific value for the option\n value = jQuery(option).val(); // We don't need an array for one selects\n\n if (one) {\n return value;\n } // Multi-Selects return an array\n\n\n values.push(value);\n }\n }\n\n return values;\n },\n set: function set(elem, value) {\n var optionSet,\n option,\n options = elem.options,\n values = jQuery.makeArray(value),\n i = options.length;\n\n while (i--) {\n option = options[i];\n /* eslint-disable no-cond-assign */\n\n if (option.selected = jQuery.inArray(jQuery.valHooks.option.get(option), values) > -1) {\n optionSet = true;\n }\n /* eslint-enable no-cond-assign */\n\n } // Force browsers to behave consistently when non-matching value is set\n\n\n if (!optionSet) {\n elem.selectedIndex = -1;\n }\n\n return values;\n }\n }\n }\n }); // Radios and checkboxes getter/setter\n\n jQuery.each([\"radio\", \"checkbox\"], function () {\n jQuery.valHooks[this] = {\n set: function set(elem, value) {\n if (Array.isArray(value)) {\n return elem.checked = jQuery.inArray(jQuery(elem).val(), value) > -1;\n }\n }\n };\n\n if (!support.checkOn) {\n jQuery.valHooks[this].get = function (elem) {\n return elem.getAttribute(\"value\") === null ? \"on\" : elem.value;\n };\n }\n }); // Return jQuery for attributes-only inclusion\n\n support.focusin = \"onfocusin\" in window;\n\n var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n stopPropagationCallback = function stopPropagationCallback(e) {\n e.stopPropagation();\n };\n\n jQuery.extend(jQuery.event, {\n trigger: function trigger(event, data, elem, onlyHandlers) {\n var i,\n cur,\n tmp,\n bubbleType,\n ontype,\n handle,\n special,\n lastElement,\n eventPath = [elem || document],\n type = hasOwn.call(event, \"type\") ? event.type : event,\n namespaces = hasOwn.call(event, \"namespace\") ? event.namespace.split(\".\") : [];\n cur = lastElement = tmp = elem = elem || document; // Don't do events on text and comment nodes\n\n if (elem.nodeType === 3 || elem.nodeType === 8) {\n return;\n } // focus/blur morphs to focusin/out; ensure we're not firing them right now\n\n\n if (rfocusMorph.test(type + jQuery.event.triggered)) {\n return;\n }\n\n if (type.indexOf(\".\") > -1) {\n // Namespaced trigger; create a regexp to match event type in handle()\n namespaces = type.split(\".\");\n type = namespaces.shift();\n namespaces.sort();\n }\n\n ontype = type.indexOf(\":\") < 0 && \"on\" + type; // Caller can pass in a jQuery.Event object, Object, or just an event type string\n\n event = event[jQuery.expando] ? event : new jQuery.Event(type, _typeof(event) === \"object\" && event); // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\n event.isTrigger = onlyHandlers ? 2 : 3;\n event.namespace = namespaces.join(\".\");\n event.rnamespace = event.namespace ? new RegExp(\"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\") : null; // Clean up the event in case it is being reused\n\n event.result = undefined;\n\n if (!event.target) {\n event.target = elem;\n } // Clone any incoming data and prepend the event, creating the handler arg list\n\n\n data = data == null ? [event] : jQuery.makeArray(data, [event]); // Allow special events to draw outside the lines\n\n special = jQuery.event.special[type] || {};\n\n if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) {\n return;\n } // Determine event propagation path in advance, per W3C events spec (#9951)\n // Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\n\n if (!onlyHandlers && !special.noBubble && !isWindow(elem)) {\n bubbleType = special.delegateType || type;\n\n if (!rfocusMorph.test(bubbleType + type)) {\n cur = cur.parentNode;\n }\n\n for (; cur; cur = cur.parentNode) {\n eventPath.push(cur);\n tmp = cur;\n } // Only add window if we got to document (e.g., not plain obj or detached DOM)\n\n\n if (tmp === (elem.ownerDocument || document)) {\n eventPath.push(tmp.defaultView || tmp.parentWindow || window);\n }\n } // Fire handlers on the event path\n\n\n i = 0;\n\n while ((cur = eventPath[i++]) && !event.isPropagationStopped()) {\n lastElement = cur;\n event.type = i > 1 ? bubbleType : special.bindType || type; // jQuery handler\n\n handle = (dataPriv.get(cur, \"events\") || Object.create(null))[event.type] && dataPriv.get(cur, \"handle\");\n\n if (handle) {\n handle.apply(cur, data);\n } // Native handler\n\n\n handle = ontype && cur[ontype];\n\n if (handle && handle.apply && acceptData(cur)) {\n event.result = handle.apply(cur, data);\n\n if (event.result === false) {\n event.preventDefault();\n }\n }\n }\n\n event.type = type; // If nobody prevented the default action, do it now\n\n if (!onlyHandlers && !event.isDefaultPrevented()) {\n if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) {\n // Call a native DOM method on the target with the same name as the event.\n // Don't do default actions on window, that's where global variables be (#6170)\n if (ontype && isFunction(elem[type]) && !isWindow(elem)) {\n // Don't re-trigger an onFOO event when we call its FOO() method\n tmp = elem[ontype];\n\n if (tmp) {\n elem[ontype] = null;\n } // Prevent re-triggering of the same event, since we already bubbled it above\n\n\n jQuery.event.triggered = type;\n\n if (event.isPropagationStopped()) {\n lastElement.addEventListener(type, stopPropagationCallback);\n }\n\n elem[type]();\n\n if (event.isPropagationStopped()) {\n lastElement.removeEventListener(type, stopPropagationCallback);\n }\n\n jQuery.event.triggered = undefined;\n\n if (tmp) {\n elem[ontype] = tmp;\n }\n }\n }\n }\n\n return event.result;\n },\n // Piggyback on a donor event to simulate a different one\n // Used only for `focus(in | out)` events\n simulate: function simulate(type, elem, event) {\n var e = jQuery.extend(new jQuery.Event(), event, {\n type: type,\n isSimulated: true\n });\n jQuery.event.trigger(e, null, elem);\n }\n });\n jQuery.fn.extend({\n trigger: function trigger(type, data) {\n return this.each(function () {\n jQuery.event.trigger(type, data, this);\n });\n },\n triggerHandler: function triggerHandler(type, data) {\n var elem = this[0];\n\n if (elem) {\n return jQuery.event.trigger(type, data, elem, true);\n }\n }\n }); // Support: Firefox <=44\n // Firefox doesn't have focus(in | out) events\n // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n //\n // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n // focus(in | out) events fire after focus & blur events,\n // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\n if (!support.focusin) {\n jQuery.each({\n focus: \"focusin\",\n blur: \"focusout\"\n }, function (orig, fix) {\n // Attach a single capturing handler on the document while someone wants focusin/focusout\n var handler = function handler(event) {\n jQuery.event.simulate(fix, event.target, jQuery.event.fix(event));\n };\n\n jQuery.event.special[fix] = {\n setup: function setup() {\n // Handle: regular nodes (via `this.ownerDocument`), window\n // (via `this.document`) & document (via `this`).\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix);\n\n if (!attaches) {\n doc.addEventListener(orig, handler, true);\n }\n\n dataPriv.access(doc, fix, (attaches || 0) + 1);\n },\n teardown: function teardown() {\n var doc = this.ownerDocument || this.document || this,\n attaches = dataPriv.access(doc, fix) - 1;\n\n if (!attaches) {\n doc.removeEventListener(orig, handler, true);\n dataPriv.remove(doc, fix);\n } else {\n dataPriv.access(doc, fix, attaches);\n }\n }\n };\n });\n }\n\n var location = window.location;\n var nonce = {\n guid: Date.now()\n };\n var rquery = /\\?/; // Cross-browser xml parsing\n\n jQuery.parseXML = function (data) {\n var xml;\n\n if (!data || typeof data !== \"string\") {\n return null;\n } // Support: IE 9 - 11 only\n // IE throws on parseFromString with invalid input.\n\n\n try {\n xml = new window.DOMParser().parseFromString(data, \"text/xml\");\n } catch (e) {\n xml = undefined;\n }\n\n if (!xml || xml.getElementsByTagName(\"parsererror\").length) {\n jQuery.error(\"Invalid XML: \" + data);\n }\n\n return xml;\n };\n\n var rbracket = /\\[\\]$/,\n rCRLF = /\\r?\\n/g,\n rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n rsubmittable = /^(?:input|select|textarea|keygen)/i;\n\n function buildParams(prefix, obj, traditional, add) {\n var name;\n\n if (Array.isArray(obj)) {\n // Serialize array item.\n jQuery.each(obj, function (i, v) {\n if (traditional || rbracket.test(prefix)) {\n // Treat each array item as a scalar.\n add(prefix, v);\n } else {\n // Item is non-scalar (array or object), encode its numeric index.\n buildParams(prefix + \"[\" + (_typeof(v) === \"object\" && v != null ? i : \"\") + \"]\", v, traditional, add);\n }\n });\n } else if (!traditional && toType(obj) === \"object\") {\n // Serialize object item.\n for (name in obj) {\n buildParams(prefix + \"[\" + name + \"]\", obj[name], traditional, add);\n }\n } else {\n // Serialize scalar item.\n add(prefix, obj);\n }\n } // Serialize an array of form elements or a set of\n // key/values into a query string\n\n\n jQuery.param = function (a, traditional) {\n var prefix,\n s = [],\n add = function add(key, valueOrFunction) {\n // If value is a function, invoke it and use its return value\n var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction;\n s[s.length] = encodeURIComponent(key) + \"=\" + encodeURIComponent(value == null ? \"\" : value);\n };\n\n if (a == null) {\n return \"\";\n } // If an array was passed in, assume that it is an array of form elements.\n\n\n if (Array.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) {\n // Serialize the form elements\n jQuery.each(a, function () {\n add(this.name, this.value);\n });\n } else {\n // If traditional, encode the \"old\" way (the way 1.3.2 or older\n // did it), otherwise encode params recursively.\n for (prefix in a) {\n buildParams(prefix, a[prefix], traditional, add);\n }\n } // Return the resulting serialization\n\n\n return s.join(\"&\");\n };\n\n jQuery.fn.extend({\n serialize: function serialize() {\n return jQuery.param(this.serializeArray());\n },\n serializeArray: function serializeArray() {\n return this.map(function () {\n // Can add propHook for \"elements\" to filter or add form elements\n var elements = jQuery.prop(this, \"elements\");\n return elements ? jQuery.makeArray(elements) : this;\n }).filter(function () {\n var type = this.type; // Use .is( \":disabled\" ) so that fieldset[disabled] works\n\n return this.name && !jQuery(this).is(\":disabled\") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type));\n }).map(function (_i, elem) {\n var val = jQuery(this).val();\n\n if (val == null) {\n return null;\n }\n\n if (Array.isArray(val)) {\n return jQuery.map(val, function (val) {\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n });\n }\n\n return {\n name: elem.name,\n value: val.replace(rCRLF, \"\\r\\n\")\n };\n }).get();\n }\n });\n var r20 = /%20/g,\n rhash = /#.*$/,\n rantiCache = /([?&])_=[^&]*/,\n rheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n // #7653, #8125, #8152: local protocol detection\n rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n rnoContent = /^(?:GET|HEAD)$/,\n rprotocol = /^\\/\\//,\n\n /* Prefilters\n * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n * 2) These are called:\n * - BEFORE asking for a transport\n * - AFTER param serialization (s.data is a string if s.processData is true)\n * 3) key is the dataType\n * 4) the catchall symbol \"*\" can be used\n * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n */\n prefilters = {},\n\n /* Transports bindings\n * 1) key is the dataType\n * 2) the catchall symbol \"*\" can be used\n * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n */\n transports = {},\n // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n allTypes = \"*/\".concat(\"*\"),\n // Anchor tag for parsing the document origin\n originAnchor = document.createElement(\"a\");\n originAnchor.href = location.href; // Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\n\n function addToPrefiltersOrTransports(structure) {\n // dataTypeExpression is optional and defaults to \"*\"\n return function (dataTypeExpression, func) {\n if (typeof dataTypeExpression !== \"string\") {\n func = dataTypeExpression;\n dataTypeExpression = \"*\";\n }\n\n var dataType,\n i = 0,\n dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || [];\n\n if (isFunction(func)) {\n // For each dataType in the dataTypeExpression\n while (dataType = dataTypes[i++]) {\n // Prepend if requested\n if (dataType[0] === \"+\") {\n dataType = dataType.slice(1) || \"*\";\n (structure[dataType] = structure[dataType] || []).unshift(func); // Otherwise append\n } else {\n (structure[dataType] = structure[dataType] || []).push(func);\n }\n }\n }\n };\n } // Base inspection function for prefilters and transports\n\n\n function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) {\n var inspected = {},\n seekingTransport = structure === transports;\n\n function inspect(dataType) {\n var selected;\n inspected[dataType] = true;\n jQuery.each(structure[dataType] || [], function (_, prefilterOrFactory) {\n var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR);\n\n if (typeof dataTypeOrTransport === \"string\" && !seekingTransport && !inspected[dataTypeOrTransport]) {\n options.dataTypes.unshift(dataTypeOrTransport);\n inspect(dataTypeOrTransport);\n return false;\n } else if (seekingTransport) {\n return !(selected = dataTypeOrTransport);\n }\n });\n return selected;\n }\n\n return inspect(options.dataTypes[0]) || !inspected[\"*\"] && inspect(\"*\");\n } // A special extend for ajax options\n // that takes \"flat\" options (not to be deep extended)\n // Fixes #9887\n\n\n function ajaxExtend(target, src) {\n var key,\n deep,\n flatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n for (key in src) {\n if (src[key] !== undefined) {\n (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key];\n }\n }\n\n if (deep) {\n jQuery.extend(true, target, deep);\n }\n\n return target;\n }\n /* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\n\n\n function ajaxHandleResponses(s, jqXHR, responses) {\n var ct,\n type,\n finalDataType,\n firstDataType,\n contents = s.contents,\n dataTypes = s.dataTypes; // Remove auto dataType and get content-type in the process\n\n while (dataTypes[0] === \"*\") {\n dataTypes.shift();\n\n if (ct === undefined) {\n ct = s.mimeType || jqXHR.getResponseHeader(\"Content-Type\");\n }\n } // Check if we're dealing with a known content-type\n\n\n if (ct) {\n for (type in contents) {\n if (contents[type] && contents[type].test(ct)) {\n dataTypes.unshift(type);\n break;\n }\n }\n } // Check to see if we have a response for the expected dataType\n\n\n if (dataTypes[0] in responses) {\n finalDataType = dataTypes[0];\n } else {\n // Try convertible dataTypes\n for (type in responses) {\n if (!dataTypes[0] || s.converters[type + \" \" + dataTypes[0]]) {\n finalDataType = type;\n break;\n }\n\n if (!firstDataType) {\n firstDataType = type;\n }\n } // Or just use first one\n\n\n finalDataType = finalDataType || firstDataType;\n } // If we found a dataType\n // We add the dataType to the list if needed\n // and return the corresponding response\n\n\n if (finalDataType) {\n if (finalDataType !== dataTypes[0]) {\n dataTypes.unshift(finalDataType);\n }\n\n return responses[finalDataType];\n }\n }\n /* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\n\n\n function ajaxConvert(s, response, jqXHR, isSuccess) {\n var conv2,\n current,\n conv,\n tmp,\n prev,\n converters = {},\n // Work with a copy of dataTypes in case we need to modify it for conversion\n dataTypes = s.dataTypes.slice(); // Create converters map with lowercased keys\n\n if (dataTypes[1]) {\n for (conv in s.converters) {\n converters[conv.toLowerCase()] = s.converters[conv];\n }\n }\n\n current = dataTypes.shift(); // Convert to each sequential dataType\n\n while (current) {\n if (s.responseFields[current]) {\n jqXHR[s.responseFields[current]] = response;\n } // Apply the dataFilter if provided\n\n\n if (!prev && isSuccess && s.dataFilter) {\n response = s.dataFilter(response, s.dataType);\n }\n\n prev = current;\n current = dataTypes.shift();\n\n if (current) {\n // There's only work to do if current dataType is non-auto\n if (current === \"*\") {\n current = prev; // Convert response if prev dataType is non-auto and differs from current\n } else if (prev !== \"*\" && prev !== current) {\n // Seek a direct converter\n conv = converters[prev + \" \" + current] || converters[\"* \" + current]; // If none found, seek a pair\n\n if (!conv) {\n for (conv2 in converters) {\n // If conv2 outputs current\n tmp = conv2.split(\" \");\n\n if (tmp[1] === current) {\n // If prev can be converted to accepted input\n conv = converters[prev + \" \" + tmp[0]] || converters[\"* \" + tmp[0]];\n\n if (conv) {\n // Condense equivalence converters\n if (conv === true) {\n conv = converters[conv2]; // Otherwise, insert the intermediate dataType\n } else if (converters[conv2] !== true) {\n current = tmp[0];\n dataTypes.unshift(tmp[1]);\n }\n\n break;\n }\n }\n }\n } // Apply converter (if not an equivalence)\n\n\n if (conv !== true) {\n // Unless errors are allowed to bubble, catch and return them\n if (conv && s[\"throws\"]) {\n response = conv(response);\n } else {\n try {\n response = conv(response);\n } catch (e) {\n return {\n state: \"parsererror\",\n error: conv ? e : \"No conversion from \" + prev + \" to \" + current\n };\n }\n }\n }\n }\n }\n }\n\n return {\n state: \"success\",\n data: response\n };\n }\n\n jQuery.extend({\n // Counter for holding the number of active queries\n active: 0,\n // Last-Modified header cache for next request\n lastModified: {},\n etag: {},\n ajaxSettings: {\n url: location.href,\n type: \"GET\",\n isLocal: rlocalProtocol.test(location.protocol),\n global: true,\n processData: true,\n async: true,\n contentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n /*\n timeout: 0,\n data: null,\n dataType: null,\n username: null,\n password: null,\n cache: null,\n throws: false,\n traditional: false,\n headers: {},\n */\n accepts: {\n \"*\": allTypes,\n text: \"text/plain\",\n html: \"text/html\",\n xml: \"application/xml, text/xml\",\n json: \"application/json, text/javascript\"\n },\n contents: {\n xml: /\\bxml\\b/,\n html: /\\bhtml/,\n json: /\\bjson\\b/\n },\n responseFields: {\n xml: \"responseXML\",\n text: \"responseText\",\n json: \"responseJSON\"\n },\n // Data converters\n // Keys separate source (or catchall \"*\") and destination types with a single space\n converters: {\n // Convert anything to text\n \"* text\": String,\n // Text to html (true = no transformation)\n \"text html\": true,\n // Evaluate text as a json expression\n \"text json\": JSON.parse,\n // Parse text as xml\n \"text xml\": jQuery.parseXML\n },\n // For options that shouldn't be deep extended:\n // you can add your own custom options here if\n // and when you create one that shouldn't be\n // deep extended (see ajaxExtend)\n flatOptions: {\n url: true,\n context: true\n }\n },\n // Creates a full fledged settings object into target\n // with both ajaxSettings and settings fields.\n // If target is omitted, writes into ajaxSettings.\n ajaxSetup: function ajaxSetup(target, settings) {\n return settings ? // Building a settings object\n ajaxExtend(ajaxExtend(target, jQuery.ajaxSettings), settings) : // Extending ajaxSettings\n ajaxExtend(jQuery.ajaxSettings, target);\n },\n ajaxPrefilter: addToPrefiltersOrTransports(prefilters),\n ajaxTransport: addToPrefiltersOrTransports(transports),\n // Main method\n ajax: function ajax(url, options) {\n // If url is an object, simulate pre-1.5 signature\n if (_typeof(url) === \"object\") {\n options = url;\n url = undefined;\n } // Force options to be an object\n\n\n options = options || {};\n\n var transport,\n // URL without anti-cache param\n cacheURL,\n // Response headers\n responseHeadersString,\n responseHeaders,\n // timeout handle\n timeoutTimer,\n // Url cleanup var\n urlAnchor,\n // Request state (becomes false upon send and true upon completion)\n completed,\n // To know if global events are to be dispatched\n fireGlobals,\n // Loop variable\n i,\n // uncached part of the url\n uncached,\n // Create the final options object\n s = jQuery.ajaxSetup({}, options),\n // Callbacks context\n callbackContext = s.context || s,\n // Context for global events is callbackContext if it is a DOM node or jQuery collection\n globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? jQuery(callbackContext) : jQuery.event,\n // Deferreds\n deferred = jQuery.Deferred(),\n completeDeferred = jQuery.Callbacks(\"once memory\"),\n // Status-dependent callbacks\n _statusCode = s.statusCode || {},\n // Headers (they are sent all at once)\n requestHeaders = {},\n requestHeadersNames = {},\n // Default abort message\n strAbort = \"canceled\",\n // Fake xhr\n jqXHR = {\n readyState: 0,\n // Builds headers hashtable if needed\n getResponseHeader: function getResponseHeader(key) {\n var match;\n\n if (completed) {\n if (!responseHeaders) {\n responseHeaders = {};\n\n while (match = rheaders.exec(responseHeadersString)) {\n responseHeaders[match[1].toLowerCase() + \" \"] = (responseHeaders[match[1].toLowerCase() + \" \"] || []).concat(match[2]);\n }\n }\n\n match = responseHeaders[key.toLowerCase() + \" \"];\n }\n\n return match == null ? null : match.join(\", \");\n },\n // Raw string\n getAllResponseHeaders: function getAllResponseHeaders() {\n return completed ? responseHeadersString : null;\n },\n // Caches the header\n setRequestHeader: function setRequestHeader(name, value) {\n if (completed == null) {\n name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name;\n requestHeaders[name] = value;\n }\n\n return this;\n },\n // Overrides response content-type header\n overrideMimeType: function overrideMimeType(type) {\n if (completed == null) {\n s.mimeType = type;\n }\n\n return this;\n },\n // Status-dependent callbacks\n statusCode: function statusCode(map) {\n var code;\n\n if (map) {\n if (completed) {\n // Execute the appropriate callbacks\n jqXHR.always(map[jqXHR.status]);\n } else {\n // Lazy-add the new callbacks in a way that preserves old ones\n for (code in map) {\n _statusCode[code] = [_statusCode[code], map[code]];\n }\n }\n }\n\n return this;\n },\n // Cancel the request\n abort: function abort(statusText) {\n var finalText = statusText || strAbort;\n\n if (transport) {\n transport.abort(finalText);\n }\n\n done(0, finalText);\n return this;\n }\n }; // Attach deferreds\n\n\n deferred.promise(jqXHR); // Add protocol if not provided (prefilters might expect it)\n // Handle falsy url in the settings object (#10093: consistency with old signature)\n // We also use the url parameter if available\n\n s.url = ((url || s.url || location.href) + \"\").replace(rprotocol, location.protocol + \"//\"); // Alias method option to type as per ticket #12004\n\n s.type = options.method || options.type || s.method || s.type; // Extract dataTypes list\n\n s.dataTypes = (s.dataType || \"*\").toLowerCase().match(rnothtmlwhite) || [\"\"]; // A cross-domain request is in order when the origin doesn't match the current origin.\n\n if (s.crossDomain == null) {\n urlAnchor = document.createElement(\"a\"); // Support: IE <=8 - 11, Edge 12 - 15\n // IE throws exception on accessing the href property if url is malformed,\n // e.g. http://example.com:80x/\n\n try {\n urlAnchor.href = s.url; // Support: IE <=8 - 11 only\n // Anchor's host property isn't correctly set when s.url is relative\n\n urlAnchor.href = urlAnchor.href;\n s.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host;\n } catch (e) {\n // If there is an error parsing the URL, assume it is crossDomain,\n // it can be rejected by the transport if it is invalid\n s.crossDomain = true;\n }\n } // Convert data if not already a string\n\n\n if (s.data && s.processData && typeof s.data !== \"string\") {\n s.data = jQuery.param(s.data, s.traditional);\n } // Apply prefilters\n\n\n inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there\n\n if (completed) {\n return jqXHR;\n } // We can fire global events as of now if asked to\n // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\n\n fireGlobals = jQuery.event && s.global; // Watch for a new set of requests\n\n if (fireGlobals && jQuery.active++ === 0) {\n jQuery.event.trigger(\"ajaxStart\");\n } // Uppercase the type\n\n\n s.type = s.type.toUpperCase(); // Determine if request has content\n\n s.hasContent = !rnoContent.test(s.type); // Save the URL in case we're toying with the If-Modified-Since\n // and/or If-None-Match header later on\n // Remove hash to simplify url manipulation\n\n cacheURL = s.url.replace(rhash, \"\"); // More options handling for requests with no content\n\n if (!s.hasContent) {\n // Remember the hash so we can put it back\n uncached = s.url.slice(cacheURL.length); // If data is available and should be processed, append data to url\n\n if (s.data && (s.processData || typeof s.data === \"string\")) {\n cacheURL += (rquery.test(cacheURL) ? \"&\" : \"?\") + s.data; // #9682: remove data so that it's not used in an eventual retry\n\n delete s.data;\n } // Add or update anti-cache param if needed\n\n\n if (s.cache === false) {\n cacheURL = cacheURL.replace(rantiCache, \"$1\");\n uncached = (rquery.test(cacheURL) ? \"&\" : \"?\") + \"_=\" + nonce.guid++ + uncached;\n } // Put hash and anti-cache on the URL that will be requested (gh-1732)\n\n\n s.url = cacheURL + uncached; // Change '%20' to '+' if this is encoded form body content (gh-2658)\n } else if (s.data && s.processData && (s.contentType || \"\").indexOf(\"application/x-www-form-urlencoded\") === 0) {\n s.data = s.data.replace(r20, \"+\");\n } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\n\n if (s.ifModified) {\n if (jQuery.lastModified[cacheURL]) {\n jqXHR.setRequestHeader(\"If-Modified-Since\", jQuery.lastModified[cacheURL]);\n }\n\n if (jQuery.etag[cacheURL]) {\n jqXHR.setRequestHeader(\"If-None-Match\", jQuery.etag[cacheURL]);\n }\n } // Set the correct header, if data is being sent\n\n\n if (s.data && s.hasContent && s.contentType !== false || options.contentType) {\n jqXHR.setRequestHeader(\"Content-Type\", s.contentType);\n } // Set the Accepts header for the server, depending on the dataType\n\n\n jqXHR.setRequestHeader(\"Accept\", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\") : s.accepts[\"*\"]); // Check for headers option\n\n for (i in s.headers) {\n jqXHR.setRequestHeader(i, s.headers[i]);\n } // Allow custom headers/mimetypes and early abort\n\n\n if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) {\n // Abort if not done already and return\n return jqXHR.abort();\n } // Aborting is no longer a cancellation\n\n\n strAbort = \"abort\"; // Install callbacks on deferreds\n\n completeDeferred.add(s.complete);\n jqXHR.done(s.success);\n jqXHR.fail(s.error); // Get transport\n\n transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort\n\n if (!transport) {\n done(-1, \"No Transport\");\n } else {\n jqXHR.readyState = 1; // Send global event\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxSend\", [jqXHR, s]);\n } // If request was aborted inside ajaxSend, stop there\n\n\n if (completed) {\n return jqXHR;\n } // Timeout\n\n\n if (s.async && s.timeout > 0) {\n timeoutTimer = window.setTimeout(function () {\n jqXHR.abort(\"timeout\");\n }, s.timeout);\n }\n\n try {\n completed = false;\n transport.send(requestHeaders, done);\n } catch (e) {\n // Rethrow post-completion exceptions\n if (completed) {\n throw e;\n } // Propagate others as results\n\n\n done(-1, e);\n }\n } // Callback for when everything is done\n\n\n function done(status, nativeStatusText, responses, headers) {\n var isSuccess,\n success,\n error,\n response,\n modified,\n statusText = nativeStatusText; // Ignore repeat invocations\n\n if (completed) {\n return;\n }\n\n completed = true; // Clear timeout if it exists\n\n if (timeoutTimer) {\n window.clearTimeout(timeoutTimer);\n } // Dereference transport for early garbage collection\n // (no matter how long the jqXHR object will be used)\n\n\n transport = undefined; // Cache response headers\n\n responseHeadersString = headers || \"\"; // Set readyState\n\n jqXHR.readyState = status > 0 ? 4 : 0; // Determine if successful\n\n isSuccess = status >= 200 && status < 300 || status === 304; // Get response data\n\n if (responses) {\n response = ajaxHandleResponses(s, jqXHR, responses);\n } // Use a noop converter for missing script\n\n\n if (!isSuccess && jQuery.inArray(\"script\", s.dataTypes) > -1) {\n s.converters[\"text script\"] = function () {};\n } // Convert no matter what (that way responseXXX fields are always set)\n\n\n response = ajaxConvert(s, response, jqXHR, isSuccess); // If successful, handle type chaining\n\n if (isSuccess) {\n // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n if (s.ifModified) {\n modified = jqXHR.getResponseHeader(\"Last-Modified\");\n\n if (modified) {\n jQuery.lastModified[cacheURL] = modified;\n }\n\n modified = jqXHR.getResponseHeader(\"etag\");\n\n if (modified) {\n jQuery.etag[cacheURL] = modified;\n }\n } // if no content\n\n\n if (status === 204 || s.type === \"HEAD\") {\n statusText = \"nocontent\"; // if not modified\n } else if (status === 304) {\n statusText = \"notmodified\"; // If we have data, let's convert it\n } else {\n statusText = response.state;\n success = response.data;\n error = response.error;\n isSuccess = !error;\n }\n } else {\n // Extract error from statusText and normalize for non-aborts\n error = statusText;\n\n if (status || !statusText) {\n statusText = \"error\";\n\n if (status < 0) {\n status = 0;\n }\n }\n } // Set data for the fake xhr object\n\n\n jqXHR.status = status;\n jqXHR.statusText = (nativeStatusText || statusText) + \"\"; // Success/Error\n\n if (isSuccess) {\n deferred.resolveWith(callbackContext, [success, statusText, jqXHR]);\n } else {\n deferred.rejectWith(callbackContext, [jqXHR, statusText, error]);\n } // Status-dependent callbacks\n\n\n jqXHR.statusCode(_statusCode);\n _statusCode = undefined;\n\n if (fireGlobals) {\n globalEventContext.trigger(isSuccess ? \"ajaxSuccess\" : \"ajaxError\", [jqXHR, s, isSuccess ? success : error]);\n } // Complete\n\n\n completeDeferred.fireWith(callbackContext, [jqXHR, statusText]);\n\n if (fireGlobals) {\n globalEventContext.trigger(\"ajaxComplete\", [jqXHR, s]); // Handle the global AJAX counter\n\n if (! --jQuery.active) {\n jQuery.event.trigger(\"ajaxStop\");\n }\n }\n }\n\n return jqXHR;\n },\n getJSON: function getJSON(url, data, callback) {\n return jQuery.get(url, data, callback, \"json\");\n },\n getScript: function getScript(url, callback) {\n return jQuery.get(url, undefined, callback, \"script\");\n }\n });\n jQuery.each([\"get\", \"post\"], function (_i, method) {\n jQuery[method] = function (url, data, callback, type) {\n // Shift arguments if data argument was omitted\n if (isFunction(data)) {\n type = type || callback;\n callback = data;\n data = undefined;\n } // The url can be an options object (which then must have .url)\n\n\n return jQuery.ajax(jQuery.extend({\n url: url,\n type: method,\n dataType: type,\n data: data,\n success: callback\n }, jQuery.isPlainObject(url) && url));\n };\n });\n jQuery.ajaxPrefilter(function (s) {\n var i;\n\n for (i in s.headers) {\n if (i.toLowerCase() === \"content-type\") {\n s.contentType = s.headers[i] || \"\";\n }\n }\n });\n\n jQuery._evalUrl = function (url, options, doc) {\n return jQuery.ajax({\n url: url,\n // Make this explicit, since user can override this through ajaxSetup (#11264)\n type: \"GET\",\n dataType: \"script\",\n cache: true,\n async: false,\n global: false,\n // Only evaluate the response if it is successful (gh-4126)\n // dataFilter is not invoked for failure responses, so using it instead\n // of the default converter is kludgy but it works.\n converters: {\n \"text script\": function textScript() {}\n },\n dataFilter: function dataFilter(response) {\n jQuery.globalEval(response, options, doc);\n }\n });\n };\n\n jQuery.fn.extend({\n wrapAll: function wrapAll(html) {\n var wrap;\n\n if (this[0]) {\n if (isFunction(html)) {\n html = html.call(this[0]);\n } // The elements to wrap the target around\n\n\n wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true);\n\n if (this[0].parentNode) {\n wrap.insertBefore(this[0]);\n }\n\n wrap.map(function () {\n var elem = this;\n\n while (elem.firstElementChild) {\n elem = elem.firstElementChild;\n }\n\n return elem;\n }).append(this);\n }\n\n return this;\n },\n wrapInner: function wrapInner(html) {\n if (isFunction(html)) {\n return this.each(function (i) {\n jQuery(this).wrapInner(html.call(this, i));\n });\n }\n\n return this.each(function () {\n var self = jQuery(this),\n contents = self.contents();\n\n if (contents.length) {\n contents.wrapAll(html);\n } else {\n self.append(html);\n }\n });\n },\n wrap: function wrap(html) {\n var htmlIsFunction = isFunction(html);\n return this.each(function (i) {\n jQuery(this).wrapAll(htmlIsFunction ? html.call(this, i) : html);\n });\n },\n unwrap: function unwrap(selector) {\n this.parent(selector).not(\"body\").each(function () {\n jQuery(this).replaceWith(this.childNodes);\n });\n return this;\n }\n });\n\n jQuery.expr.pseudos.hidden = function (elem) {\n return !jQuery.expr.pseudos.visible(elem);\n };\n\n jQuery.expr.pseudos.visible = function (elem) {\n return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\n };\n\n jQuery.ajaxSettings.xhr = function () {\n try {\n return new window.XMLHttpRequest();\n } catch (e) {}\n };\n\n var xhrSuccessStatus = {\n // File protocol always yields status code 0, assume 200\n 0: 200,\n // Support: IE <=9 only\n // #1450: sometimes IE returns 1223 when it should be 204\n 1223: 204\n },\n xhrSupported = jQuery.ajaxSettings.xhr();\n support.cors = !!xhrSupported && \"withCredentials\" in xhrSupported;\n support.ajax = xhrSupported = !!xhrSupported;\n jQuery.ajaxTransport(function (options) {\n var _callback, errorCallback; // Cross domain only allowed if supported through XMLHttpRequest\n\n\n if (support.cors || xhrSupported && !options.crossDomain) {\n return {\n send: function send(headers, complete) {\n var i,\n xhr = options.xhr();\n xhr.open(options.type, options.url, options.async, options.username, options.password); // Apply custom fields if provided\n\n if (options.xhrFields) {\n for (i in options.xhrFields) {\n xhr[i] = options.xhrFields[i];\n }\n } // Override mime type if needed\n\n\n if (options.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(options.mimeType);\n } // X-Requested-With header\n // For cross-domain requests, seeing as conditions for a preflight are\n // akin to a jigsaw puzzle, we simply never set it to be sure.\n // (it can always be set on a per-request basis or even using ajaxSetup)\n // For same-domain requests, won't change header if already provided.\n\n\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\";\n } // Set headers\n\n\n for (i in headers) {\n xhr.setRequestHeader(i, headers[i]);\n } // Callback\n\n\n _callback = function callback(type) {\n return function () {\n if (_callback) {\n _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null;\n\n if (type === \"abort\") {\n xhr.abort();\n } else if (type === \"error\") {\n // Support: IE <=9 only\n // On a manual native abort, IE9 throws\n // errors on any property access that is not readyState\n if (typeof xhr.status !== \"number\") {\n complete(0, \"error\");\n } else {\n complete( // File: protocol always yields status 0; see #8605, #14207\n xhr.status, xhr.statusText);\n }\n } else {\n complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, // Support: IE <=9 only\n // IE9 has no XHR2 but throws on binary (trac-11426)\n // For XHR2 non-text, let the caller handle it (gh-2498)\n (xhr.responseType || \"text\") !== \"text\" || typeof xhr.responseText !== \"string\" ? {\n binary: xhr.response\n } : {\n text: xhr.responseText\n }, xhr.getAllResponseHeaders());\n }\n }\n };\n }; // Listen to events\n\n\n xhr.onload = _callback();\n errorCallback = xhr.onerror = xhr.ontimeout = _callback(\"error\"); // Support: IE 9 only\n // Use onreadystatechange to replace onabort\n // to handle uncaught aborts\n\n if (xhr.onabort !== undefined) {\n xhr.onabort = errorCallback;\n } else {\n xhr.onreadystatechange = function () {\n // Check readyState before timeout as it changes\n if (xhr.readyState === 4) {\n // Allow onerror to be called first,\n // but that will not handle a native abort\n // Also, save errorCallback to a variable\n // as xhr.onerror cannot be accessed\n window.setTimeout(function () {\n if (_callback) {\n errorCallback();\n }\n });\n }\n };\n } // Create the abort callback\n\n\n _callback = _callback(\"abort\");\n\n try {\n // Do send the request (this may raise an exception)\n xhr.send(options.hasContent && options.data || null);\n } catch (e) {\n // #14683: Only rethrow if this hasn't been notified as an error yet\n if (_callback) {\n throw e;\n }\n }\n },\n abort: function abort() {\n if (_callback) {\n _callback();\n }\n }\n };\n }\n }); // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\n\n jQuery.ajaxPrefilter(function (s) {\n if (s.crossDomain) {\n s.contents.script = false;\n }\n }); // Install script dataType\n\n jQuery.ajaxSetup({\n accepts: {\n script: \"text/javascript, application/javascript, \" + \"application/ecmascript, application/x-ecmascript\"\n },\n contents: {\n script: /\\b(?:java|ecma)script\\b/\n },\n converters: {\n \"text script\": function textScript(text) {\n jQuery.globalEval(text);\n return text;\n }\n }\n }); // Handle cache's special case and crossDomain\n\n jQuery.ajaxPrefilter(\"script\", function (s) {\n if (s.cache === undefined) {\n s.cache = false;\n }\n\n if (s.crossDomain) {\n s.type = \"GET\";\n }\n }); // Bind script tag hack transport\n\n jQuery.ajaxTransport(\"script\", function (s) {\n // This transport only deals with cross domain or forced-by-attrs requests\n if (s.crossDomain || s.scriptAttrs) {\n var script, _callback2;\n\n return {\n send: function send(_, complete) {\n script = jQuery(\"