{"version":3,"sources":["webpack:///./node_modules/jquery/dist/jquery.js","webpack:///./node_modules/moment/moment.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/moment/locale/af.js","webpack:///./node_modules/moment/locale/ar.js","webpack:///./node_modules/moment/locale/ar-dz.js","webpack:///./node_modules/moment/locale/ar-kw.js","webpack:///./node_modules/moment/locale/ar-ly.js","webpack:///./node_modules/moment/locale/ar-ma.js","webpack:///./node_modules/moment/locale/ar-sa.js","webpack:///./node_modules/moment/locale/ar-tn.js","webpack:///./node_modules/moment/locale/az.js","webpack:///./node_modules/moment/locale/be.js","webpack:///./node_modules/moment/locale/bg.js","webpack:///./node_modules/moment/locale/bm.js","webpack:///./node_modules/moment/locale/bn.js","webpack:///./node_modules/moment/locale/bn-bd.js","webpack:///./node_modules/moment/locale/bo.js","webpack:///./node_modules/moment/locale/br.js","webpack:///./node_modules/moment/locale/bs.js","webpack:///./node_modules/moment/locale/ca.js","webpack:///./node_modules/moment/locale/cs.js","webpack:///./node_modules/moment/locale/cv.js","webpack:///./node_modules/moment/locale/cy.js","webpack:///./node_modules/moment/locale/da.js","webpack:///./node_modules/moment/locale/de.js","webpack:///./node_modules/moment/locale/de-at.js","webpack:///./node_modules/moment/locale/de-ch.js","webpack:///./node_modules/moment/locale/dv.js","webpack:///./node_modules/moment/locale/el.js","webpack:///./node_modules/moment/locale/en-au.js","webpack:///./node_modules/moment/locale/en-ca.js","webpack:///./node_modules/moment/locale/en-gb.js","webpack:///./node_modules/moment/locale/en-ie.js","webpack:///./node_modules/moment/locale/en-il.js","webpack:///./node_modules/moment/locale/en-in.js","webpack:///./node_modules/moment/locale/en-nz.js","webpack:///./node_modules/moment/locale/en-sg.js","webpack:///./node_modules/moment/locale/eo.js","webpack:///./node_modules/moment/locale/es.js","webpack:///./node_modules/moment/locale/es-do.js","webpack:///./node_modules/moment/locale/es-mx.js","webpack:///./node_modules/moment/locale/es-us.js","webpack:///./node_modules/moment/locale/et.js","webpack:///./node_modules/moment/locale/eu.js","webpack:///./node_modules/moment/locale/fa.js","webpack:///./node_modules/moment/locale/fi.js","webpack:///./node_modules/moment/locale/fil.js","webpack:///./node_modules/moment/locale/fo.js","webpack:///./node_modules/moment/locale/fr.js","webpack:///./node_modules/moment/locale/fr-ca.js","webpack:///./node_modules/moment/locale/fr-ch.js","webpack:///./node_modules/moment/locale/fy.js","webpack:///./node_modules/moment/locale/ga.js","webpack:///./node_modules/moment/locale/gd.js","webpack:///./node_modules/moment/locale/gl.js","webpack:///./node_modules/moment/locale/gom-deva.js","webpack:///./node_modules/moment/locale/gom-latn.js","webpack:///./node_modules/moment/locale/gu.js","webpack:///./node_modules/moment/locale/he.js","webpack:///./node_modules/moment/locale/hi.js","webpack:///./node_modules/moment/locale/hr.js","webpack:///./node_modules/moment/locale/hu.js","webpack:///./node_modules/moment/locale/hy-am.js","webpack:///./node_modules/moment/locale/id.js","webpack:///./node_modules/moment/locale/is.js","webpack:///./node_modules/moment/locale/it.js","webpack:///./node_modules/moment/locale/it-ch.js","webpack:///./node_modules/moment/locale/ja.js","webpack:///./node_modules/moment/locale/jv.js","webpack:///./node_modules/moment/locale/ka.js","webpack:///./node_modules/moment/locale/kk.js","webpack:///./node_modules/moment/locale/km.js","webpack:///./node_modules/moment/locale/kn.js","webpack:///./node_modules/moment/locale/ko.js","webpack:///./node_modules/moment/locale/ku.js","webpack:///./node_modules/moment/locale/ky.js","webpack:///./node_modules/moment/locale/lb.js","webpack:///./node_modules/moment/locale/lo.js","webpack:///./node_modules/moment/locale/lt.js","webpack:///./node_modules/moment/locale/lv.js","webpack:///./node_modules/moment/locale/me.js","webpack:///./node_modules/moment/locale/mi.js","webpack:///./node_modules/moment/locale/mk.js","webpack:///./node_modules/moment/locale/ml.js","webpack:///./node_modules/moment/locale/mn.js","webpack:///./node_modules/moment/locale/mr.js","webpack:///./node_modules/moment/locale/ms.js","webpack:///./node_modules/moment/locale/ms-my.js","webpack:///./node_modules/moment/locale/mt.js","webpack:///./node_modules/moment/locale/my.js","webpack:///./node_modules/moment/locale/nb.js","webpack:///./node_modules/moment/locale/ne.js","webpack:///./node_modules/moment/locale/nl.js","webpack:///./node_modules/moment/locale/nl-be.js","webpack:///./node_modules/moment/locale/nn.js","webpack:///./node_modules/moment/locale/oc-lnc.js","webpack:///./node_modules/moment/locale/pa-in.js","webpack:///./node_modules/moment/locale/pl.js","webpack:///./node_modules/moment/locale/pt.js","webpack:///./node_modules/moment/locale/pt-br.js","webpack:///./node_modules/moment/locale/ro.js","webpack:///./node_modules/moment/locale/ru.js","webpack:///./node_modules/moment/locale/sd.js","webpack:///./node_modules/moment/locale/se.js","webpack:///./node_modules/moment/locale/si.js","webpack:///./node_modules/moment/locale/sk.js","webpack:///./node_modules/moment/locale/sl.js","webpack:///./node_modules/moment/locale/sq.js","webpack:///./node_modules/moment/locale/sr.js","webpack:///./node_modules/moment/locale/sr-cyrl.js","webpack:///./node_modules/moment/locale/ss.js","webpack:///./node_modules/moment/locale/sv.js","webpack:///./node_modules/moment/locale/sw.js","webpack:///./node_modules/moment/locale/ta.js","webpack:///./node_modules/moment/locale/te.js","webpack:///./node_modules/moment/locale/tet.js","webpack:///./node_modules/moment/locale/tg.js","webpack:///./node_modules/moment/locale/th.js","webpack:///./node_modules/moment/locale/tk.js","webpack:///./node_modules/moment/locale/tl-ph.js","webpack:///./node_modules/moment/locale/tlh.js","webpack:///./node_modules/moment/locale/tr.js","webpack:///./node_modules/moment/locale/tzl.js","webpack:///./node_modules/moment/locale/tzm.js","webpack:///./node_modules/moment/locale/tzm-latn.js","webpack:///./node_modules/moment/locale/ug-cn.js","webpack:///./node_modules/moment/locale/uk.js","webpack:///./node_modules/moment/locale/ur.js","webpack:///./node_modules/moment/locale/uz.js","webpack:///./node_modules/moment/locale/uz-latn.js","webpack:///./node_modules/moment/locale/vi.js","webpack:///./node_modules/moment/locale/x-pseudo.js","webpack:///./node_modules/moment/locale/yo.js","webpack:///./node_modules/moment/locale/zh-cn.js","webpack:///./node_modules/moment/locale/zh-hk.js","webpack:///./node_modules/moment/locale/zh-mo.js","webpack:///./node_modules/moment/locale/zh-tw.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///(webpack)/buildin/amd-define.js","webpack:///(webpack)/buildin/amd-options.js"],"names":["global","factory","window","noGlobal","isWindow","obj","arr","getProto","Object","getPrototypeOf","slice","flat","array","call","concat","apply","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","support","isFunction","nodeType","item","document","preservedScriptAttributes","type","src","nonce","noModule","DOMEval","code","node","doc","i","val","script","createElement","text","getAttribute","setAttribute","head","appendChild","parentNode","removeChild","toType","version","jQuery","selector","context","fn","init","isArrayLike","length","prototype","jquery","constructor","toArray","this","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","arguments","first","eq","last","even","grep","_elem","odd","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","undefined","expando","Math","random","replace","isReady","error","msg","Error","noop","proto","Ctor","isEmptyObject","globalEval","makeArray","results","inArray","second","invert","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","_i","toLowerCase","Sizzle","funescape","escape","nonHex","high","String","fromCharCode","unloadHandler","setDocument","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","a","b","pop","pushNative","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","RegExp","rtrim","rcomma","rcombinators","rdescend","rpseudo","ridentifier","matchExpr","rhtml","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","inDisabledFieldset","addCombinator","disabled","nodeName","dir","next","childNodes","e","els","seed","nid","match","groups","newSelector","newContext","ownerDocument","exec","m","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","testContext","scope","toSelector","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","namespace","namespaceURI","documentElement","subWindow","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","input","innerHTML","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","hasCompare","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","specified","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","_argument","simple","forward","ofType","_context","xml","uniqueCache","outerCache","nodeIndex","start","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","matcher","unmatched","lang","elemLang","hash","location","activeElement","hasFocus","href","tabIndex","checked","selected","selectedIndex","_matchIndexes","radio","checkbox","file","password","image","createInputPseudo","submit","reset","createButtonPseudo","tokens","combinator","base","skip","checkNonElements","doneName","newCache","oldCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromGroupMatchers","elementMatchers","setMatchers","superMatcher","outermost","matchedCount","setMatched","contextBackup","byElement","dirrunsUnique","bySet","filters","parseOnly","soFar","preFilters","cached","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","token","compiled","_name","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","needsContext","rsingleTag","winnow","qualifier","not","self","root","rootjQuery","ready","parseHTML","rparentsprev","guaranteedUnique","children","contents","prev","sibling","has","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","_","flag","fire","locked","once","fired","firing","queue","firingIndex","memory","stopOnFalse","remove","empty","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","mightThrow","that","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","updateFunc","resolveContexts","resolveValues","remaining","primary","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","catch","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","_key","rmsPrefix","rdashAlpha","fcamelCase","_all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","rcssNum","cssExpand","isAttached","composed","getRootNode","isHiddenWithinTree","style","display","css","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","showHide","show","values","body","hide","toggle","rcheckableType","rtagName","rscriptType","div","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","createTextNode","rtypenamespace","returnTrue","returnFalse","expectSync","err","safeActiveElement","on","types","one","origFn","event","off","leverageNative","notAsync","saved","isTrigger","delegateType","stopPropagation","stopImmediatePropagation","preventDefault","trigger","Event","handleObjIn","eventHandle","events","t","handleObj","namespaces","origType","elemData","create","handle","triggered","dispatch","bindType","handlers","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","button","addProp","hook","enumerable","originalEvent","writable","load","noBubble","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","focus","blur","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","swap","old","pixelPositionVal","boxSizingReliableVal","scrollboxSizeVal","pixelBoxStylesVal","reliableTrDimensionsVal","reliableMarginLeftVal","container","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","computeStyleTests","divStyle","cssText","roundPixelMeasures","marginLeft","right","width","position","offsetWidth","measure","round","parseFloat","curCSS","computed","getPropertyValue","pixelBoxStyles","minWidth","maxWidth","addGetHookIf","conditionFn","hookFn","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","table","trStyle","trChild","height","parseInt","borderTopWidth","borderBottomWidth","offsetHeight","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","easing","cssHooks","opacity","origName","isCustomProp","setProperty","isFinite","getBoundingClientRect","scrollboxSizeBuggy","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","bind","complete","timer","anim","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","bool","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","addClass","classes","clazz","finalValue","curValue","removeClass","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","stopPropagationCallback","rfocusMorph","onlyHandlers","bubbleType","ontype","lastElement","eventPath","parentWindow","simulate","triggerHandler","attaches","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","param","traditional","valueOrFunction","s","encodeURIComponent","buildParams","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","url","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","urlAnchor","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","response","isSuccess","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","modified","getJSON","getScript","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","scriptAttrs","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curCSSTop","curTop","curOffset","curCSSLeft","curElem","curLeft","curPosition","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","unbind","delegate","undelegate","hover","fnOver","fnOut","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","trim","_jQuery","_$","$","noConflict","module","exports","w","hookCallback","isObject","hasOwnProp","isObjectEmpty","getOwnPropertyNames","k","isUndefined","isNumber","isDate","res","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","some","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","momentProperties","updateInProgress","copyConfig","from","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","config","updateOffset","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","Function","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","number","targetLength","forceSign","absNumber","abs","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","formatMoment","expandFormat","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","year","absFloor","floor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","month","date","daysInMonth","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","regexEscape","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","setMonth","dayOfMonth","min","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","y","parseTwoDigitYear","getSetYear","createDate","d","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","dayOfYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","day","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","getSetHour","globalLocale","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","ww","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","chooseLocale","names","loadLocale","arr1","arr2","minl","commonPrefix","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","abbr","_config","parentLocale","forEach","checkOverflow","_a","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","configFromRFC2822","militaryOffset","weekdayStr","parsedInput","parsedArray","getDay","obsOffset","numOffset","hm","setUTCMinutes","getUTCMinutes","defaults","c","configFromArray","currentDate","yearToUse","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","weekYear","weekdayOverflow","curWeek","GG","W","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","expectedWeekday","ISO_8601","RFC_2822","stringLength","totalParsedInputLength","skipped","hour","meridiemHour","isPm","meridiemFixWrap","erasConvertYear","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","minute","millisecond","configFromObject","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","separator","utcOffset","sign","offsetFromString","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","direction","period","addSubtract","isAdding","invalid","isString","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","property","objectTest","propertyTest","isMomentInputObject","monthDiff","wholeMonthDiff","anchor","adjust","newLocaleData","defaultFormat","defaultFormatUtc","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","eras","narrow","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","eraYearOrdinalParse","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","preParsePostFormat","formats","isCalendarSpec","sod","startOf","calendarFormat","asFloat","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toObject","toDate","toISOString","keepOffset","zone","for","toJSON","unix","creationData","eraName","since","eraNarrow","eraAbbr","eraYear","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","field","listMonthsImpl","out","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","_eras","Infinity","isFormat","_monthsShort","monthName","_monthsParseExact","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","weekdayName","_weekdaysParseExact","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","relativeTime$1","posNegDuration","abs$1","toISOString$1","ymSign","daysSign","hmsSign","total","toFixed","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","assign","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","define","g","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","versions","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","Popper","_interopDefaultLegacy","$__default","Popper__default","_defineProperties","descriptor","_createClass","Constructor","protoProps","staticProps","_extends","TRANSITION_END","transitionEndEmulator","_this","called","Util","triggerTransitionEnd","getUID","getSelectorFromElement","element","hrefAttr","querySelector","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","supportsTransitionEnd","Boolean","isElement","typeCheckConfig","componentName","configTypes","expectedTypes","valueType","findShadowRoot","attachShadow","ShadowRoot","jQueryDetection","emulateTransitionEnd","NAME","DATA_KEY","JQUERY_NO_CONFLICT","Alert","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","_removeElement","dispose","closeEvent","_destroyElement","_jQueryInterface","$element","_handleDismiss","alertInstance","NAME$1","DATA_KEY$1","EVENT_KEY$1","DATA_API_KEY$1","JQUERY_NO_CONFLICT$1","CLASS_NAME_ACTIVE","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_INPUT","Button","shouldAvoidTriggerChange","triggerChangeEvent","addAriaPressed","classList","hasAttribute","avoidTriggerChange","inputBtn","initialButton","tagName","_len","_button","NAME$2","DATA_KEY$2","EVENT_KEY$2","JQUERY_NO_CONFLICT$2","Default","keyboard","slide","pause","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","EVENT_SLID","CLASS_NAME_ACTIVE$1","SELECTOR_ACTIVE_ITEM","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_slide","nextWhenVisible","cycle","clearInterval","_updateInterval","setInterval","visibilityState","activeIndex","_getItemIndex","_handleSwipe","absDeltax","_this2","_keydown","_addTouchEventListeners","_this3","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","eventDirectionName","targetIndex","fromIndex","slideEvent","_setActiveIndicatorElement","indicators","nextIndicator","elementInterval","defaultInterval","directionalClassName","orderClassName","slidEvent","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$3","DATA_KEY$3","EVENT_KEY$3","JQUERY_NO_CONFLICT$3","Default$1","DefaultType$1","CLASS_NAME_SHOW$1","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","SELECTOR_DATA_TOGGLE$1","Collapse","_isTransitioning","_triggerArray","toggleList","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","startEvent","scrollSize","actives","activesData","_getDimension","setTransitioning","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$trigger","$target","NAME$4","DATA_KEY$4","EVENT_KEY$4","DATA_API_KEY$4","JQUERY_NO_CONFLICT$4","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_CLICK_DATA_API$4","EVENT_KEYDOWN_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_SHOW$2","CLASS_NAME_MENURIGHT","SELECTOR_DATA_TOGGLE$2","SELECTOR_MENU","Default$2","flip","boundary","reference","popperConfig","DefaultType$2","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","_getPlacement","$parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","dropdownMenu","clickEvent","_dataApiKeydownHandler","items","NAME$5","DATA_KEY$5","EVENT_KEY$5","JQUERY_NO_CONFLICT$5","Default$3","backdrop","DefaultType$3","EVENT_HIDDEN$2","EVENT_SHOW$2","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_OPEN","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$3","CLASS_NAME_STATIC","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","isModalOverflowing","modalTransitionDuration","hideEventPrevented","scrollHeight","clientHeight","modalBody","Node","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","_this5","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_backdropTransitionDuration","_this9","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","_this10","fixedContent","stickyContent","actualMargin","marginRight","calculatedMargin","scrollDiv","scrollbarWidth","clientWidth","_this11","uriAttrs","DefaultWhitelist","area","br","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","small","span","sub","sup","strong","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrName","regExp","attrRegex","allowedAttribute","NAME$6","DATA_KEY$6","EVENT_KEY$6","JQUERY_NO_CONFLICT$6","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType$4","template","fallbackPlacement","customClass","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$4","HOVER_STATE_SHOW","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE$2","CLASS_NAME_SHOW$4","TRIGGER_HOVER","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","toggleEnabled","dataKey","_getDelegateConfig","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","eventIn","eventOut","_fixTitle","titleType","dataAttributes","$tip","tabClass","popperData","instance","popper","initConfigAnimation","NAME$7","DATA_KEY$7","EVENT_KEY$7","JQUERY_NO_CONFLICT$7","CLASS_PREFIX$1","BSCLS_PREFIX_REGEX$1","Default$5","DefaultType$5","Event$1","Popover","_Tooltip","subClass","superClass","__proto__","_getContent","CLASS_NAME_FADE$3","NAME$8","DATA_KEY$8","EVENT_KEY$8","JQUERY_NO_CONFLICT$8","Default$6","DefaultType$6","CLASS_NAME_ACTIVE$2","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_LIST_ITEMS","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","$link","scrollSpys","$spy","DATA_KEY$9","JQUERY_NO_CONFLICT$9","CLASS_NAME_ACTIVE$3","SELECTOR_ACTIVE_UL","Tab","previous","listElement","itemSelector","hiddenEvent","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","NAME$a","DATA_KEY$a","EVENT_KEY$a","JQUERY_NO_CONFLICT$a","EVENT_CLICK_DISMISS$1","CLASS_NAME_SHOW$7","DefaultType$7","autohide","Default$7","Toast","_clearTimeout","_close","Scrollspy","require","Timeout","clearFn","_id","_clearFn","unref","ref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","setImmediate","clearImmediate","webpackPolyfill","paths","isBrowser","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","scheduled","functionToCheck","getStyleComputedProperty","getParentNode","getScrollParent","_getStyleComputedProp","getReferenceNode","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","order","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","upperSide","scrollingElement","getBordersSize","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","classCallCheck","createClass","defineProperties","getClientRect","bottom","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderLeftWidth","marginTop","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","getBoundaries","boundaries","excludeScroll","relativeOffset","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","isPaddingNumber","computeAutoPlacement","refRect","rects","sortedAreas","_ref","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","getOuterSizes","marginBottom","getOppositePlacement","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","runModifiers","ends","findIndex","isModifierEnabled","modifierName","getSupportedPropertyName","prefixes","upperProp","toCheck","getWindow","setupEventListeners","updateBound","passive","scrollElement","attachToScrollParents","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","setStyles","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","placements","validPlacements","clockwise","counter","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","op","mergeWithPrevious","reduce","str","index2","Defaults","positionFixed","removeOnDestroy","side","shiftvariation","_data$offsets","isVertical","shiftOffsets","transformProp","popperStyles","transform","escapeWithReference","secondary","keepTogether","opSide","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","_data$offsets$arrow","flipped","placementOpposite","flipOrder","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","popperWidth","offsetParentRect","shouldRound","devicePixelRatio","noRound","referenceWidth","isVariation","horizontalToInteger","verticalToInteger","prefixedProperty","willChange","invertLeft","arrowStyles","onLoad","modifierOptions","isDestroyed","isCreated","enableEventListeners","Utils","PopperUtils","moment","pluralForm","pluralize","f","plurals","symbolMap","1","2","3","4","5","6","7","8","9","numberMap","weekdaysParseExact","suffixes","70","80","20","50","100","10","30","60","90","relativeTimeWithPlural","forms","word","standalone","lastDigit","last2Digits","monthsParseExact","relativeTimeWithMutation","mutationTable","substring","softMutation","minWeekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","lastNumber","translate","ll","lll","llll","plural","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eraYearOrdinalRegex","$0","$1","$2","40","isUpper","eifelerRegelAppliesToNumber","translateSingular","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","12","13","numbersNouns","numberNoun","hundred","ten","numberAsNoun","processHoursFunction","nominative","accusative","genitive","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","originalRender","_compiled","functional","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","_injectStyles","existing","beforeCreate","tasksByHandle","runIfPresent","currentlyRunningATask","task","installPostMessageImplementation","onGlobalMessage","messagePrefix","registerImmediate","postMessage","nextHandle","channel","attachTo","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","canUsePostMessage","MessageChannel","port1","port2","__webpack_amd_options__"],"mappings":"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","file":"vendor.js","sourcesContent":["/*!\n * jQuery JavaScript Library v3.6.0\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2021-03-02T17:08Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.0\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.6\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2021-02-16\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t) );\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( ( b = b.parentNode ) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a == document || a.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b == document || b.ownerDocument == preferredDoc &&\n\t\t\t\tcontains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\treturn a == document ? -1 :\n\t\t\t\tb == document ? 1 :\n\t\t\t\t/* eslint-enable eqeqeq */\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( ( cur = cur.parentNode ) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[ i ] === bp[ i ] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[ i ], bp[ i ] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t/* eslint-disable eqeqeq */\n\t\t\tap[ i ] == preferredDoc ? -1 :\n\t\t\tbp[ i ] == preferredDoc ? 1 :\n\t\t\t/* eslint-enable eqeqeq */\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t// fragment in IE 9\n\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] ||\n\t\t\t\tmatch[ 5 ] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" ) );\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tSizzle.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr[ \"CHILD\" ].test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace +\n\t\t\t\t\t\")\" + className + \"(\" + whitespace + \"|$)\" ) ) && classCache(\n\t\t\t\t\t\tclassName, function( elem ) {\n\t\t\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\t/* eslint-disable max-len */\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t\t/* eslint-enable max-len */\n\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || ( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( outerCache[ node.uniqueID ] = {} );\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\t\"has\": markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\t\"contains\": markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement &&\n\t\t\t\t( !document.hasFocus || document.hasFocus() ) &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn ( nodeName === \"input\" && !!elem.checked ) ||\n\t\t\t\t( nodeName === \"option\" && !!elem.selected );\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[ \"empty\" ]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\t\"last\": createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\t\"eq\": createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\t\"even\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"odd\": createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"lt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ?\n\t\t\t\targument + length :\n\t\t\t\targument > length ?\n\t\t\t\t\tlength :\n\t\t\t\t\targument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\t\"gt\": createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos[ \"nth\" ] = Expr.pseudos[ \"eq\" ];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rcombinators.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrim, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] ||\n\t\t\t\t\t\t\t( outerCache[ elem.uniqueID ] = {} );\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = uniqueCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts(\n\t\t\t\tselector || \"*\",\n\t\t\t\tcontext.nodeType ? [ context ] : context,\n\t\t\t\t[]\n\t\t\t),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\ttokens\n\t\t\t\t\t\t.slice( 0, i - 1 )\n\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[ \"TAG\" ]( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache(\n\t\t\tselector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers )\n\t\t);\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find[ \"ID\" ]( token.matches[ 0 ]\n\t\t\t\t.replace( runescape, funescape ), context ) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[ \"needsContext\" ].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert( function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute( \"href\" ) === \"#\";\n} ) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert( function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n} ) ) {\n\taddHandle( \"value\", function( elem, _name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t} );\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert( function( el ) {\n\treturn el.getAttribute( \"disabled\" ) == null;\n} ) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t( val = elem.getAttributeNode( name ) ) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\t\tnull;\n\t\t}\n\t} );\n}\n\nreturn Sizzle;\n\n} )( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 - 11+\n// focus() and blur() are asynchronous, except when they are no-op.\n// So expect focus to be synchronous when the element is already active,\n// and blur to be synchronous when the element is not already active.\n// (focus and blur are always synchronous in other supported browsers,\n// this just defines when we can count on it).\nfunction expectSync( elem, type ) {\n\treturn ( elem === safeActiveElement() ) === ( type === \"focus\" );\n}\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", returnTrue );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, expectSync ) {\n\n\t// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !expectSync ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar notAsync, result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\t// Saved data should be false in such cases, but might be a leftover capture object\n\t\t\t\t// from an async native handler (gh-4350)\n\t\t\t\tif ( !saved.length ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t// focus() and blur() are asynchronous\n\t\t\t\t\tnotAsync = expectSync( this, type );\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tif ( saved !== result || notAsync ) {\n\t\t\t\t\t\tdataPriv.set( this, type, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult = {};\n\t\t\t\t\t}\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\t// Support: Chrome 86+\n\t\t\t\t\t\t// In Chrome, if an element having a focusout handler is blurred by\n\t\t\t\t\t\t// clicking outside of it, it invokes the handler synchronously. If\n\t\t\t\t\t\t// that handler calls `.remove()` on the element, the data is cleared,\n\t\t\t\t\t\t// leaving `result` undefined. We need to guard against this.\n\t\t\t\t\t\treturn result && result.value;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering the\n\t\t\t\t// native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved.length ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, {\n\t\t\t\t\tvalue: jQuery.event.trigger(\n\n\t\t\t\t\t\t// Support: IE <=9 - 11+\n\t\t\t\t\t\t// Extend with the prototype to reset the above stopImmediatePropagation()\n\t\t\t\t\t\tjQuery.extend( saved[ 0 ], jQuery.Event.prototype ),\n\t\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\t\tthis\n\t\t\t\t\t)\n\t\t\t\t} );\n\n\t\t\t\t// Abort handling of the native event\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, expectSync );\n\n\t\t\t// Return false to allow normal processing in the caller\n\t\t\treturn false;\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\t// Suppress native focus or blur as it's already being fired\n\t\t// in leverageNative.\n\t\t_default: function() {\n\t\t\treturn true;\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"gridArea\": true,\n\t\t\"gridColumn\": true,\n\t\t\"gridColumnEnd\": true,\n\t\t\"gridColumnStart\": true,\n\t\t\"gridRow\": true,\n\t\t\"gridRowEnd\": true,\n\t\t\"gridRowStart\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\n\t\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","//! moment.js\n//! version : 2.29.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key;\n for (i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i;\n for (i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (\n matched,\n p1,\n p2,\n p3,\n p4\n ) {\n return p1 || p2 || p3 || p4;\n })\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n ),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['N', 'NN', 'NNN', 'NNNN', 'NNNNN'], function (\n input,\n array,\n config,\n token\n ) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n });\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM', // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :\n typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));\n}(this, (function (exports, $, Popper) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n var TRANSITION_END = 'transitionend';\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n function toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle: function handle(event) {\n if ($__default['default'](event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n\n return undefined;\n }\n };\n }\n\n function transitionEndEmulator(duration) {\n var _this = this;\n\n var called = false;\n $__default['default'](this).one(Util.TRANSITION_END, function () {\n called = true;\n });\n setTimeout(function () {\n if (!called) {\n Util.triggerTransitionEnd(_this);\n }\n }, duration);\n return this;\n }\n\n function setTransitionEndSupport() {\n $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;\n $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n\n return prefix;\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = element.getAttribute('data-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href');\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n }\n\n try {\n return document.querySelector(selector) ? selector : null;\n } catch (_) {\n return null;\n }\n },\n getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var transitionDuration = $__default['default'](element).css('transition-duration');\n var transitionDelay = $__default['default'](element).css('transition-delay');\n var floatTransitionDuration = parseFloat(transitionDuration);\n var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n },\n reflow: function reflow(element) {\n return element.offsetHeight;\n },\n triggerTransitionEnd: function triggerTransitionEnd(element) {\n $__default['default'](element).trigger(TRANSITION_END);\n },\n supportsTransitionEnd: function supportsTransitionEnd() {\n return Boolean(TRANSITION_END);\n },\n isElement: function isElement(obj) {\n return (obj[0] || obj).nodeType;\n },\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n }\n }\n },\n findShadowRoot: function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return Util.findShadowRoot(element.parentNode);\n },\n jQueryDetection: function jQueryDetection() {\n if (typeof $__default['default'] === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n }\n\n var version = $__default['default'].fn.jquery.split(' ')[0].split('.');\n var minMajor = 1;\n var ltMajor = 2;\n var minMinor = 9;\n var minPatch = 1;\n var maxMajor = 4;\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0');\n }\n }\n };\n Util.jQueryDetection();\n setTransitionEndSupport();\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'alert';\n var VERSION = '4.6.0';\n var DATA_KEY = 'bs.alert';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n var SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\n var EVENT_CLOSE = \"close\" + EVENT_KEY;\n var EVENT_CLOSED = \"closed\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_ALERT = 'alert';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Alert = /*#__PURE__*/function () {\n function Alert(element) {\n this._element = element;\n } // Getters\n\n\n var _proto = Alert.prototype;\n\n // Public\n _proto.close = function close(element) {\n var rootElement = this._element;\n\n if (element) {\n rootElement = this._getRootElement(element);\n }\n\n var customEvent = this._triggerCloseEvent(rootElement);\n\n if (customEvent.isDefaultPrevented()) {\n return;\n }\n\n this._removeElement(rootElement);\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY);\n this._element = null;\n } // Private\n ;\n\n _proto._getRootElement = function _getRootElement(element) {\n var selector = Util.getSelectorFromElement(element);\n var parent = false;\n\n if (selector) {\n parent = document.querySelector(selector);\n }\n\n if (!parent) {\n parent = $__default['default'](element).closest(\".\" + CLASS_NAME_ALERT)[0];\n }\n\n return parent;\n };\n\n _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n var closeEvent = $__default['default'].Event(EVENT_CLOSE);\n $__default['default'](element).trigger(closeEvent);\n return closeEvent;\n };\n\n _proto._removeElement = function _removeElement(element) {\n var _this = this;\n\n $__default['default'](element).removeClass(CLASS_NAME_SHOW);\n\n if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element);\n\n return;\n }\n\n var transitionDuration = Util.getTransitionDurationFromElement(element);\n $__default['default'](element).one(Util.TRANSITION_END, function (event) {\n return _this._destroyElement(element, event);\n }).emulateTransitionEnd(transitionDuration);\n };\n\n _proto._destroyElement = function _destroyElement(element) {\n $__default['default'](element).detach().trigger(EVENT_CLOSED).remove();\n } // Static\n ;\n\n Alert._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default['default'](this);\n var data = $element.data(DATA_KEY);\n\n if (!data) {\n data = new Alert(this);\n $element.data(DATA_KEY, data);\n }\n\n if (config === 'close') {\n data[config](this);\n }\n });\n };\n\n Alert._handleDismiss = function _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n\n alertInstance.close(this);\n };\n };\n\n _createClass(Alert, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }]);\n\n return Alert;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME] = Alert._jQueryInterface;\n $__default['default'].fn[NAME].Constructor = Alert;\n\n $__default['default'].fn[NAME].noConflict = function () {\n $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n return Alert._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$1 = 'button';\n var VERSION$1 = '4.6.0';\n var DATA_KEY$1 = 'bs.button';\n var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n var DATA_API_KEY$1 = '.data-api';\n var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1];\n var CLASS_NAME_ACTIVE = 'active';\n var CLASS_NAME_BUTTON = 'btn';\n var CLASS_NAME_FOCUS = 'focus';\n var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n var SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]';\n var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n var SELECTOR_ACTIVE = '.active';\n var SELECTOR_BUTTON = '.btn';\n var EVENT_CLICK_DATA_API$1 = \"click\" + EVENT_KEY$1 + DATA_API_KEY$1;\n var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY$1 + DATA_API_KEY$1 + \" \" + (\"blur\" + EVENT_KEY$1 + DATA_API_KEY$1);\n var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY$1 + DATA_API_KEY$1;\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Button = /*#__PURE__*/function () {\n function Button(element) {\n this._element = element;\n this.shouldAvoidTriggerChange = false;\n } // Getters\n\n\n var _proto = Button.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n var triggerChangeEvent = true;\n var addAriaPressed = true;\n var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n\n if (rootElement) {\n var input = this._element.querySelector(SELECTOR_INPUT);\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false;\n } else {\n var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);\n\n if (activeElement) {\n $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $__default['default'](input).trigger('change');\n }\n }\n\n input.focus();\n addAriaPressed = false;\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));\n }\n\n if (triggerChangeEvent) {\n $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);\n }\n }\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY$1);\n this._element = null;\n } // Static\n ;\n\n Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n var $element = $__default['default'](this);\n var data = $element.data(DATA_KEY$1);\n\n if (!data) {\n data = new Button(this);\n $element.data(DATA_KEY$1, data);\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n };\n\n _createClass(Button, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$1;\n }\n }]);\n\n return Button;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n var button = event.target;\n var initialButton = button;\n\n if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {\n button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault(); // work around Firefox bug #1540995\n } else {\n var inputBtn = button.querySelector(SELECTOR_INPUT);\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault(); // work around Firefox bug #1540995\n\n return;\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');\n }\n }\n }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];\n $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n });\n $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {\n // ensure correct active class is set to match the controls' actual values/states\n // find all checkboxes/readio buttons inside data-toggle groups\n var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n\n for (var i = 0, len = buttons.length; i < len; i++) {\n var button = buttons[i];\n var input = button.querySelector(SELECTOR_INPUT);\n\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE);\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE);\n }\n } // find all button toggles\n\n\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n var _button = buttons[_i];\n\n if (_button.getAttribute('aria-pressed') === 'true') {\n _button.classList.add(CLASS_NAME_ACTIVE);\n } else {\n _button.classList.remove(CLASS_NAME_ACTIVE);\n }\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$1] = Button._jQueryInterface;\n $__default['default'].fn[NAME$1].Constructor = Button;\n\n $__default['default'].fn[NAME$1].noConflict = function () {\n $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n return Button._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$2 = 'carousel';\n var VERSION$2 = '4.6.0';\n var DATA_KEY$2 = 'bs.carousel';\n var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n var DATA_API_KEY$2 = '.data-api';\n var JQUERY_NO_CONFLICT$2 = $__default['default'].fn[NAME$2];\n var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var SWIPE_THRESHOLD = 40;\n var Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n };\n var DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n };\n var DIRECTION_NEXT = 'next';\n var DIRECTION_PREV = 'prev';\n var DIRECTION_LEFT = 'left';\n var DIRECTION_RIGHT = 'right';\n var EVENT_SLIDE = \"slide\" + EVENT_KEY$2;\n var EVENT_SLID = \"slid\" + EVENT_KEY$2;\n var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY$2;\n var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY$2;\n var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY$2;\n var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY$2;\n var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY$2;\n var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY$2;\n var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY$2;\n var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY$2;\n var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY$2;\n var EVENT_LOAD_DATA_API$1 = \"load\" + EVENT_KEY$2 + DATA_API_KEY$2;\n var EVENT_CLICK_DATA_API$2 = \"click\" + EVENT_KEY$2 + DATA_API_KEY$2;\n var CLASS_NAME_CAROUSEL = 'carousel';\n var CLASS_NAME_ACTIVE$1 = 'active';\n var CLASS_NAME_SLIDE = 'slide';\n var CLASS_NAME_RIGHT = 'carousel-item-right';\n var CLASS_NAME_LEFT = 'carousel-item-left';\n var CLASS_NAME_NEXT = 'carousel-item-next';\n var CLASS_NAME_PREV = 'carousel-item-prev';\n var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n var SELECTOR_ACTIVE$1 = '.active';\n var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n var SELECTOR_ITEM = '.carousel-item';\n var SELECTOR_ITEM_IMG = '.carousel-item img';\n var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n var SELECTOR_INDICATORS = '.carousel-indicators';\n var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';\n var SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]';\n var PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Carousel = /*#__PURE__*/function () {\n function Carousel(element, config) {\n this._items = null;\n this._interval = null;\n this._activeElement = null;\n this._isPaused = false;\n this._isSliding = false;\n this.touchTimeout = null;\n this.touchStartX = 0;\n this.touchDeltaX = 0;\n this._config = this._getConfig(config);\n this._element = element;\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS);\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);\n\n this._addEventListeners();\n } // Getters\n\n\n var _proto = Carousel.prototype;\n\n // Public\n _proto.next = function next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT);\n }\n };\n\n _proto.nextWhenVisible = function nextWhenVisible() {\n var $element = $__default['default'](this._element); // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n\n if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {\n this.next();\n }\n };\n\n _proto.prev = function prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV);\n }\n };\n\n _proto.pause = function pause(event) {\n if (!event) {\n this._isPaused = true;\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element);\n this.cycle(true);\n }\n\n clearInterval(this._interval);\n this._interval = null;\n };\n\n _proto.cycle = function cycle(event) {\n if (!event) {\n this._isPaused = false;\n }\n\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n\n if (this._config.interval && !this._isPaused) {\n this._updateInterval();\n\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n };\n\n _proto.to = function to(index) {\n var _this = this;\n\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n var activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n $__default['default'](this._element).one(EVENT_SLID, function () {\n return _this.to(index);\n });\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n\n this._slide(direction, this._items[index]);\n };\n\n _proto.dispose = function dispose() {\n $__default['default'](this._element).off(EVENT_KEY$2);\n $__default['default'].removeData(this._element, DATA_KEY$2);\n this._items = null;\n this._config = null;\n this._element = null;\n this._interval = null;\n this._isPaused = null;\n this._isSliding = null;\n this._activeElement = null;\n this._indicatorsElement = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n Util.typeCheckConfig(NAME$2, config, DefaultType);\n return config;\n };\n\n _proto._handleSwipe = function _handleSwipe() {\n var absDeltax = Math.abs(this.touchDeltaX);\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0; // swipe left\n\n if (direction > 0) {\n this.prev();\n } // swipe right\n\n\n if (direction < 0) {\n this.next();\n }\n };\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this2 = this;\n\n if (this._config.keyboard) {\n $__default['default'](this._element).on(EVENT_KEYDOWN, function (event) {\n return _this2._keydown(event);\n });\n }\n\n if (this._config.pause === 'hover') {\n $__default['default'](this._element).on(EVENT_MOUSEENTER, function (event) {\n return _this2.pause(event);\n }).on(EVENT_MOUSELEAVE, function (event) {\n return _this2.cycle(event);\n });\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners();\n }\n };\n\n _proto._addTouchEventListeners = function _addTouchEventListeners() {\n var _this3 = this;\n\n if (!this._touchSupported) {\n return;\n }\n\n var start = function start(event) {\n if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n _this3.touchStartX = event.originalEvent.clientX;\n } else if (!_this3._pointerEvent) {\n _this3.touchStartX = event.originalEvent.touches[0].clientX;\n }\n };\n\n var move = function move(event) {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n _this3.touchDeltaX = 0;\n } else {\n _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;\n }\n };\n\n var end = function end(event) {\n if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n }\n\n _this3._handleSwipe();\n\n if (_this3._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n _this3.pause();\n\n if (_this3.touchTimeout) {\n clearTimeout(_this3.touchTimeout);\n }\n\n _this3.touchTimeout = setTimeout(function (event) {\n return _this3.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n }\n };\n\n $__default['default'](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {\n return e.preventDefault();\n });\n\n if (this._pointerEvent) {\n $__default['default'](this._element).on(EVENT_POINTERDOWN, function (event) {\n return start(event);\n });\n $__default['default'](this._element).on(EVENT_POINTERUP, function (event) {\n return end(event);\n });\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n $__default['default'](this._element).on(EVENT_TOUCHSTART, function (event) {\n return start(event);\n });\n $__default['default'](this._element).on(EVENT_TOUCHMOVE, function (event) {\n return move(event);\n });\n $__default['default'](this._element).on(EVENT_TOUCHEND, function (event) {\n return end(event);\n });\n }\n };\n\n _proto._keydown = function _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault();\n this.prev();\n break;\n\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault();\n this.next();\n break;\n }\n };\n\n _proto._getItemIndex = function _getItemIndex(element) {\n this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];\n return this._items.indexOf(element);\n };\n\n _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n var isNextDirection = direction === DIRECTION_NEXT;\n var isPrevDirection = direction === DIRECTION_PREV;\n\n var activeIndex = this._getItemIndex(activeElement);\n\n var lastItemIndex = this._items.length - 1;\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement;\n }\n\n var delta = direction === DIRECTION_PREV ? -1 : 1;\n var itemIndex = (activeIndex + delta) % this._items.length;\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n };\n\n _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n\n var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));\n\n var slideEvent = $__default['default'].Event(EVENT_SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n $__default['default'](this._element).trigger(slideEvent);\n return slideEvent;\n };\n\n _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));\n $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE$1);\n\n var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n if (nextIndicator) {\n $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE$1);\n }\n }\n };\n\n _proto._updateInterval = function _updateInterval() {\n var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n if (!element) {\n return;\n }\n\n var elementInterval = parseInt(element.getAttribute('data-interval'), 10);\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = elementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n };\n\n _proto._slide = function _slide(direction, element) {\n var _this4 = this;\n\n var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n var activeElementIndex = this._getItemIndex(activeElement);\n\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n var nextElementIndex = this._getItemIndex(nextElement);\n\n var isCycling = Boolean(this._interval);\n var directionalClassName;\n var orderClassName;\n var eventDirectionName;\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT;\n orderClassName = CLASS_NAME_NEXT;\n eventDirectionName = DIRECTION_LEFT;\n } else {\n directionalClassName = CLASS_NAME_RIGHT;\n orderClassName = CLASS_NAME_PREV;\n eventDirectionName = DIRECTION_RIGHT;\n }\n\n if (nextElement && $__default['default'](nextElement).hasClass(CLASS_NAME_ACTIVE$1)) {\n this._isSliding = false;\n return;\n }\n\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\n if (slideEvent.isDefaultPrevented()) {\n return;\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return;\n }\n\n this._isSliding = true;\n\n if (isCycling) {\n this.pause();\n }\n\n this._setActiveIndicatorElement(nextElement);\n\n this._activeElement = nextElement;\n var slidEvent = $__default['default'].Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n\n if ($__default['default'](this._element).hasClass(CLASS_NAME_SLIDE)) {\n $__default['default'](nextElement).addClass(orderClassName);\n Util.reflow(nextElement);\n $__default['default'](activeElement).addClass(directionalClassName);\n $__default['default'](nextElement).addClass(directionalClassName);\n var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n $__default['default'](activeElement).one(Util.TRANSITION_END, function () {\n $__default['default'](nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(CLASS_NAME_ACTIVE$1);\n $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1 + \" \" + orderClassName + \" \" + directionalClassName);\n _this4._isSliding = false;\n setTimeout(function () {\n return $__default['default'](_this4._element).trigger(slidEvent);\n }, 0);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1);\n $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE$1);\n this._isSliding = false;\n $__default['default'](this._element).trigger(slidEvent);\n }\n\n if (isCycling) {\n this.cycle();\n }\n } // Static\n ;\n\n Carousel._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default['default'](this).data(DATA_KEY$2);\n\n var _config = _extends({}, Default, $__default['default'](this).data());\n\n if (typeof config === 'object') {\n _config = _extends({}, _config, config);\n }\n\n var action = typeof config === 'string' ? config : _config.slide;\n\n if (!data) {\n data = new Carousel(this, _config);\n $__default['default'](this).data(DATA_KEY$2, data);\n }\n\n if (typeof config === 'number') {\n data.to(config);\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + action + \"\\\"\");\n }\n\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n });\n };\n\n Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n var selector = Util.getSelectorFromElement(this);\n\n if (!selector) {\n return;\n }\n\n var target = $__default['default'](selector)[0];\n\n if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n var config = _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n var slideIndex = this.getAttribute('data-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel._jQueryInterface.call($__default['default'](target), config);\n\n if (slideIndex) {\n $__default['default'](target).data(DATA_KEY$2).to(slideIndex);\n }\n\n event.preventDefault();\n };\n\n _createClass(Carousel, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$2;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n\n return Carousel;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);\n $__default['default'](window).on(EVENT_LOAD_DATA_API$1, function () {\n var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));\n\n for (var i = 0, len = carousels.length; i < len; i++) {\n var $carousel = $__default['default'](carousels[i]);\n\n Carousel._jQueryInterface.call($carousel, $carousel.data());\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$2] = Carousel._jQueryInterface;\n $__default['default'].fn[NAME$2].Constructor = Carousel;\n\n $__default['default'].fn[NAME$2].noConflict = function () {\n $__default['default'].fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n return Carousel._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$3 = 'collapse';\n var VERSION$3 = '4.6.0';\n var DATA_KEY$3 = 'bs.collapse';\n var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n var DATA_API_KEY$3 = '.data-api';\n var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3];\n var Default$1 = {\n toggle: true,\n parent: ''\n };\n var DefaultType$1 = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n var EVENT_SHOW = \"show\" + EVENT_KEY$3;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY$3;\n var EVENT_HIDE = \"hide\" + EVENT_KEY$3;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY$3;\n var EVENT_CLICK_DATA_API$3 = \"click\" + EVENT_KEY$3 + DATA_API_KEY$3;\n var CLASS_NAME_SHOW$1 = 'show';\n var CLASS_NAME_COLLAPSE = 'collapse';\n var CLASS_NAME_COLLAPSING = 'collapsing';\n var CLASS_NAME_COLLAPSED = 'collapsed';\n var DIMENSION_WIDTH = 'width';\n var DIMENSION_HEIGHT = 'height';\n var SELECTOR_ACTIVES = '.show, .collapsing';\n var SELECTOR_DATA_TOGGLE$1 = '[data-toggle=\"collapse\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Collapse = /*#__PURE__*/function () {\n function Collapse(element, config) {\n this._isTransitioning = false;\n this._element = element;\n this._config = this._getConfig(config);\n this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$1));\n\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = Util.getSelectorFromElement(elem);\n var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n return foundElem === element;\n });\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector;\n\n this._triggerArray.push(elem);\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null;\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray);\n }\n\n if (this._config.toggle) {\n this.toggle();\n }\n } // Getters\n\n\n var _proto = Collapse.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n this.hide();\n } else {\n this.show();\n }\n };\n\n _proto.show = function show() {\n var _this = this;\n\n if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n return;\n }\n\n var actives;\n var activesData;\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {\n if (typeof _this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === _this._config.parent;\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE);\n });\n\n if (actives.length === 0) {\n actives = null;\n }\n }\n\n if (actives) {\n activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY$3);\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = $__default['default'].Event(EVENT_SHOW);\n $__default['default'](this._element).trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');\n\n if (!activesData) {\n $__default['default'](actives).data(DATA_KEY$3, null);\n }\n }\n\n var dimension = this._getDimension();\n\n $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n\n if (this._triggerArray.length) {\n $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n _this._element.style[dimension] = '';\n\n _this.setTransitioning(false);\n\n $__default['default'](_this._element).trigger(EVENT_SHOWN);\n };\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\" + capitalizedDimension;\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n this._element.style[dimension] = this._element[scrollSize] + \"px\";\n };\n\n _proto.hide = function hide() {\n var _this2 = this;\n\n if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n return;\n }\n\n var startEvent = $__default['default'].Event(EVENT_HIDE);\n $__default['default'](this._element).trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n var dimension = this._getDimension();\n\n this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n Util.reflow(this._element);\n $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n var triggerArrayLength = this._triggerArray.length;\n\n if (triggerArrayLength > 0) {\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var selector = Util.getSelectorFromElement(trigger);\n\n if (selector !== null) {\n var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));\n\n if (!$elem.hasClass(CLASS_NAME_SHOW$1)) {\n $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n }\n }\n }\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this2.setTransitioning(false);\n\n $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);\n };\n\n this._element.style[dimension] = '';\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n };\n\n _proto.setTransitioning = function setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY$3);\n this._config = null;\n this._parent = null;\n this._element = null;\n this._triggerArray = null;\n this._isTransitioning = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$1, config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n Util.typeCheckConfig(NAME$3, config, DefaultType$1);\n return config;\n };\n\n _proto._getDimension = function _getDimension() {\n var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n };\n\n _proto._getParent = function _getParent() {\n var _this3 = this;\n\n var parent;\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent; // It's a jQuery object\n\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0];\n }\n } else {\n parent = document.querySelector(this._config.parent);\n }\n\n var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n var children = [].slice.call(parent.querySelectorAll(selector));\n $__default['default'](children).each(function (i, element) {\n _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n });\n return parent;\n };\n\n _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW$1);\n\n if (triggerArray.length) {\n $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n }\n } // Static\n ;\n\n Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n var selector = Util.getSelectorFromElement(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n Collapse._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default['default'](this);\n var data = $element.data(DATA_KEY$3);\n\n var _config = _extends({}, Default$1, $element.data(), typeof config === 'object' && config ? config : {});\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n if (!data) {\n data = new Collapse(this, _config);\n $element.data(DATA_KEY$3, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Collapse, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$3;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$1;\n }\n }]);\n\n return Collapse;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n var $trigger = $__default['default'](this);\n var selector = Util.getSelectorFromElement(this);\n var selectors = [].slice.call(document.querySelectorAll(selector));\n $__default['default'](selectors).each(function () {\n var $target = $__default['default'](this);\n var data = $target.data(DATA_KEY$3);\n var config = data ? 'toggle' : $trigger.data();\n\n Collapse._jQueryInterface.call($target, config);\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$3] = Collapse._jQueryInterface;\n $__default['default'].fn[NAME$3].Constructor = Collapse;\n\n $__default['default'].fn[NAME$3].noConflict = function () {\n $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n return Collapse._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$4 = 'dropdown';\n var VERSION$4 = '4.6.0';\n var DATA_KEY$4 = 'bs.dropdown';\n var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n var DATA_API_KEY$4 = '.data-api';\n var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4];\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n var EVENT_HIDE$1 = \"hide\" + EVENT_KEY$4;\n var EVENT_HIDDEN$1 = \"hidden\" + EVENT_KEY$4;\n var EVENT_SHOW$1 = \"show\" + EVENT_KEY$4;\n var EVENT_SHOWN$1 = \"shown\" + EVENT_KEY$4;\n var EVENT_CLICK = \"click\" + EVENT_KEY$4;\n var EVENT_CLICK_DATA_API$4 = \"click\" + EVENT_KEY$4 + DATA_API_KEY$4;\n var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY$4 + DATA_API_KEY$4;\n var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY$4 + DATA_API_KEY$4;\n var CLASS_NAME_DISABLED = 'disabled';\n var CLASS_NAME_SHOW$2 = 'show';\n var CLASS_NAME_DROPUP = 'dropup';\n var CLASS_NAME_DROPRIGHT = 'dropright';\n var CLASS_NAME_DROPLEFT = 'dropleft';\n var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n var CLASS_NAME_POSITION_STATIC = 'position-static';\n var SELECTOR_DATA_TOGGLE$2 = '[data-toggle=\"dropdown\"]';\n var SELECTOR_FORM_CHILD = '.dropdown form';\n var SELECTOR_MENU = '.dropdown-menu';\n var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n var PLACEMENT_TOP = 'top-start';\n var PLACEMENT_TOPEND = 'top-end';\n var PLACEMENT_BOTTOM = 'bottom-start';\n var PLACEMENT_BOTTOMEND = 'bottom-end';\n var PLACEMENT_RIGHT = 'right-start';\n var PLACEMENT_LEFT = 'left-start';\n var Default$2 = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n };\n var DefaultType$2 = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Dropdown = /*#__PURE__*/function () {\n function Dropdown(element, config) {\n this._element = element;\n this._popper = null;\n this._config = this._getConfig(config);\n this._menu = this._getMenuElement();\n this._inNavbar = this._detectNavbar();\n\n this._addEventListeners();\n } // Getters\n\n\n var _proto = Dropdown.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2);\n\n Dropdown._clearMenus();\n\n if (isActive) {\n return;\n }\n\n this.show(true);\n };\n\n _proto.show = function show(usePopper) {\n if (usePopper === void 0) {\n usePopper = false;\n }\n\n if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = $__default['default'].Event(EVENT_SHOW$1, relatedTarget);\n\n var parent = Dropdown._getParentFromElement(this._element);\n\n $__default['default'](parent).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented()) {\n return;\n } // Totally disable Popper for Dropdowns in Navbar\n\n\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper__default['default'] === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n var referenceElement = this._element;\n\n if (this._config.reference === 'parent') {\n referenceElement = parent;\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference; // Check if it's jQuery element\n\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0];\n }\n } // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n\n\n if (this._config.boundary !== 'scrollParent') {\n $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC);\n }\n\n this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig());\n } // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n\n if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_SHOWN$1, relatedTarget));\n };\n\n _proto.hide = function hide() {\n if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n\n var parent = Dropdown._getParentFromElement(this._element);\n\n $__default['default'](parent).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY$4);\n $__default['default'](this._element).off(EVENT_KEY$4);\n this._element = null;\n this._menu = null;\n\n if (this._popper !== null) {\n this._popper.destroy();\n\n this._popper = null;\n }\n };\n\n _proto.update = function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n } // Private\n ;\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this = this;\n\n $__default['default'](this._element).on(EVENT_CLICK, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this.toggle();\n });\n };\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config);\n Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n return config;\n };\n\n _proto._getMenuElement = function _getMenuElement() {\n if (!this._menu) {\n var parent = Dropdown._getParentFromElement(this._element);\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU);\n }\n }\n\n return this._menu;\n };\n\n _proto._getPlacement = function _getPlacement() {\n var $parentDropdown = $__default['default'](this._element.parentNode);\n var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT;\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT;\n } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND;\n }\n\n return placement;\n };\n\n _proto._detectNavbar = function _detectNavbar() {\n return $__default['default'](this._element).closest('.navbar').length > 0;\n };\n\n _proto._getOffset = function _getOffset() {\n var _this2 = this;\n\n var offset = {};\n\n if (typeof this._config.offset === 'function') {\n offset.fn = function (data) {\n data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n return data;\n };\n } else {\n offset.offset = this._config.offset;\n }\n\n return offset;\n };\n\n _proto._getPopperConfig = function _getPopperConfig() {\n var popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n };\n }\n\n return _extends({}, popperConfig, this._config.popperConfig);\n } // Static\n ;\n\n Dropdown._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default['default'](this).data(DATA_KEY$4);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data) {\n data = new Dropdown(this, _config);\n $__default['default'](this).data(DATA_KEY$4, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n Dropdown._clearMenus = function _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return;\n }\n\n var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));\n\n for (var i = 0, len = toggles.length; i < len; i++) {\n var parent = Dropdown._getParentFromElement(toggles[i]);\n\n var context = $__default['default'](toggles[i]).data(DATA_KEY$4);\n var relatedTarget = {\n relatedTarget: toggles[i]\n };\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event;\n }\n\n if (!context) {\n continue;\n }\n\n var dropdownMenu = context._menu;\n\n if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW$2)) {\n continue;\n }\n\n if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) {\n continue;\n }\n\n var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n $__default['default'](parent).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n continue;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n }\n\n toggles[i].setAttribute('aria-expanded', 'false');\n\n if (context._popper) {\n context._popper.destroy();\n }\n\n $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW$2);\n $__default['default'](parent).removeClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n }\n };\n\n Dropdown._getParentFromElement = function _getParentFromElement(element) {\n var parent;\n var selector = Util.getSelectorFromElement(element);\n\n if (selector) {\n parent = document.querySelector(selector);\n }\n\n return parent || element.parentNode;\n } // eslint-disable-next-line complexity\n ;\n\n Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return;\n }\n\n if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var parent = Dropdown._getParentFromElement(this);\n\n var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW$2);\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {\n if (event.which === ESCAPE_KEYCODE) {\n $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');\n }\n\n $__default['default'](this).trigger('click');\n return;\n }\n\n var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n return $__default['default'](item).is(':visible');\n });\n\n if (items.length === 0) {\n return;\n }\n\n var index = items.indexOf(event.target);\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) {\n // Up\n index--;\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n // Down\n index++;\n }\n\n if (index < 0) {\n index = 0;\n }\n\n items[index].focus();\n };\n\n _createClass(Dropdown, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$4;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$2;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$2;\n }\n }]);\n\n return Dropdown;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');\n }).on(EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {\n e.stopPropagation();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$4] = Dropdown._jQueryInterface;\n $__default['default'].fn[NAME$4].Constructor = Dropdown;\n\n $__default['default'].fn[NAME$4].noConflict = function () {\n $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n return Dropdown._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$5 = 'modal';\n var VERSION$5 = '4.6.0';\n var DATA_KEY$5 = 'bs.modal';\n var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n var DATA_API_KEY$5 = '.data-api';\n var JQUERY_NO_CONFLICT$5 = $__default['default'].fn[NAME$5];\n var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var Default$3 = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n };\n var DefaultType$3 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n };\n var EVENT_HIDE$2 = \"hide\" + EVENT_KEY$5;\n var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY$5;\n var EVENT_HIDDEN$2 = \"hidden\" + EVENT_KEY$5;\n var EVENT_SHOW$2 = \"show\" + EVENT_KEY$5;\n var EVENT_SHOWN$2 = \"shown\" + EVENT_KEY$5;\n var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY$5;\n var EVENT_RESIZE = \"resize\" + EVENT_KEY$5;\n var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY$5;\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY$5;\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY$5;\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY$5;\n var EVENT_CLICK_DATA_API$5 = \"click\" + EVENT_KEY$5 + DATA_API_KEY$5;\n var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';\n var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n var CLASS_NAME_BACKDROP = 'modal-backdrop';\n var CLASS_NAME_OPEN = 'modal-open';\n var CLASS_NAME_FADE$1 = 'fade';\n var CLASS_NAME_SHOW$3 = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE$3 = '[data-toggle=\"modal\"]';\n var SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]';\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Modal = /*#__PURE__*/function () {\n function Modal(element, config) {\n this._config = this._getConfig(config);\n this._element = element;\n this._dialog = element.querySelector(SELECTOR_DIALOG);\n this._backdrop = null;\n this._isShown = false;\n this._isBodyOverflowing = false;\n this._ignoreBackdropClick = false;\n this._isTransitioning = false;\n this._scrollbarWidth = 0;\n } // Getters\n\n\n var _proto = Modal.prototype;\n\n // Public\n _proto.toggle = function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n };\n\n _proto.show = function show(relatedTarget) {\n var _this = this;\n\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n this._isTransitioning = true;\n }\n\n var showEvent = $__default['default'].Event(EVENT_SHOW$2, {\n relatedTarget: relatedTarget\n });\n $__default['default'](this._element).trigger(showEvent);\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = true;\n\n this._checkScrollbar();\n\n this._setScrollbar();\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {\n return _this.hide(event);\n });\n $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {\n $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {\n if ($__default['default'](event.target).is(_this._element)) {\n _this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this._showElement(relatedTarget);\n });\n };\n\n _proto.hide = function hide(event) {\n var _this2 = this;\n\n if (event) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n var hideEvent = $__default['default'].Event(EVENT_HIDE$2);\n $__default['default'](this._element).trigger(hideEvent);\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = false;\n var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $__default['default'](document).off(EVENT_FOCUSIN);\n $__default['default'](this._element).removeClass(CLASS_NAME_SHOW$3);\n $__default['default'](this._element).off(EVENT_CLICK_DISMISS);\n $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util.TRANSITION_END, function (event) {\n return _this2._hideModal(event);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n this._hideModal();\n }\n };\n\n _proto.dispose = function dispose() {\n [window, this._element, this._dialog].forEach(function (htmlElement) {\n return $__default['default'](htmlElement).off(EVENT_KEY$5);\n });\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n\n $__default['default'](document).off(EVENT_FOCUSIN);\n $__default['default'].removeData(this._element, DATA_KEY$5);\n this._config = null;\n this._element = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._isTransitioning = null;\n this._scrollbarWidth = null;\n };\n\n _proto.handleUpdate = function handleUpdate() {\n this._adjustDialog();\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$3, config);\n Util.typeCheckConfig(NAME$5, config, DefaultType$3);\n return config;\n };\n\n _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n var _this3 = this;\n\n var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED);\n $__default['default'](this._element).trigger(hideEventPrevented);\n\n if (hideEventPrevented.isDefaultPrevented()) {\n return;\n }\n\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n\n this._element.classList.add(CLASS_NAME_STATIC);\n\n var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n $__default['default'](this._element).off(Util.TRANSITION_END);\n $__default['default'](this._element).one(Util.TRANSITION_END, function () {\n _this3._element.classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n $__default['default'](_this3._element).one(Util.TRANSITION_END, function () {\n _this3._element.style.overflowY = '';\n }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n }\n }).emulateTransitionEnd(modalTransitionDuration);\n\n this._element.focus();\n };\n\n _proto._showElement = function _showElement(relatedTarget) {\n var _this4 = this;\n\n var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0;\n } else {\n this._element.scrollTop = 0;\n }\n\n if (transition) {\n Util.reflow(this._element);\n }\n\n $__default['default'](this._element).addClass(CLASS_NAME_SHOW$3);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var shownEvent = $__default['default'].Event(EVENT_SHOWN$2, {\n relatedTarget: relatedTarget\n });\n\n var transitionComplete = function transitionComplete() {\n if (_this4._config.focus) {\n _this4._element.focus();\n }\n\n _this4._isTransitioning = false;\n $__default['default'](_this4._element).trigger(shownEvent);\n };\n\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n $__default['default'](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n } else {\n transitionComplete();\n }\n };\n\n _proto._enforceFocus = function _enforceFocus() {\n var _this5 = this;\n\n $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, function (event) {\n if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) {\n _this5._element.focus();\n }\n });\n };\n\n _proto._setEscapeEvent = function _setEscapeEvent() {\n var _this6 = this;\n\n if (this._isShown) {\n $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n event.preventDefault();\n\n _this6.hide();\n } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n _this6._triggerBackdropTransition();\n }\n });\n } else if (!this._isShown) {\n $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS);\n }\n };\n\n _proto._setResizeEvent = function _setResizeEvent() {\n var _this7 = this;\n\n if (this._isShown) {\n $__default['default'](window).on(EVENT_RESIZE, function (event) {\n return _this7.handleUpdate(event);\n });\n } else {\n $__default['default'](window).off(EVENT_RESIZE);\n }\n };\n\n _proto._hideModal = function _hideModal() {\n var _this8 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._showBackdrop(function () {\n $__default['default'](document.body).removeClass(CLASS_NAME_OPEN);\n\n _this8._resetAdjustments();\n\n _this8._resetScrollbar();\n\n $__default['default'](_this8._element).trigger(EVENT_HIDDEN$2);\n });\n };\n\n _proto._removeBackdrop = function _removeBackdrop() {\n if (this._backdrop) {\n $__default['default'](this._backdrop).remove();\n this._backdrop = null;\n }\n };\n\n _proto._showBackdrop = function _showBackdrop(callback) {\n var _this9 = this;\n\n var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : '';\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = CLASS_NAME_BACKDROP;\n\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n\n $__default['default'](this._backdrop).appendTo(document.body);\n $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) {\n if (_this9._ignoreBackdropClick) {\n _this9._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this9._config.backdrop === 'static') {\n _this9._triggerBackdropTransition();\n } else {\n _this9.hide();\n }\n });\n\n if (animate) {\n Util.reflow(this._backdrop);\n }\n\n $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW$3);\n\n if (!callback) {\n return;\n }\n\n if (!animate) {\n callback();\n return;\n }\n\n var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n $__default['default'](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW$3);\n\n var callbackRemove = function callbackRemove() {\n _this9._removeBackdrop();\n\n if (callback) {\n callback();\n }\n };\n\n if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n $__default['default'](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n } // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n ;\n\n _proto._adjustDialog = function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n }\n };\n\n _proto._resetAdjustments = function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n };\n\n _proto._checkScrollbar = function _checkScrollbar() {\n var rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n };\n\n _proto._setScrollbar = function _setScrollbar() {\n var _this10 = this;\n\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding\n\n $__default['default'](fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight;\n var calculatedPadding = $__default['default'](element).css('padding-right');\n $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + \"px\");\n }); // Adjust sticky content margin\n\n $__default['default'](stickyContent).each(function (index, element) {\n var actualMargin = element.style.marginRight;\n var calculatedMargin = $__default['default'](element).css('margin-right');\n $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + \"px\");\n }); // Adjust body padding\n\n var actualPadding = document.body.style.paddingRight;\n var calculatedPadding = $__default['default'](document.body).css('padding-right');\n $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n }\n\n $__default['default'](document.body).addClass(CLASS_NAME_OPEN);\n };\n\n _proto._resetScrollbar = function _resetScrollbar() {\n // Restore fixed content padding\n var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n $__default['default'](fixedContent).each(function (index, element) {\n var padding = $__default['default'](element).data('padding-right');\n $__default['default'](element).removeData('padding-right');\n element.style.paddingRight = padding ? padding : '';\n }); // Restore sticky content\n\n var elements = [].slice.call(document.querySelectorAll(\"\" + SELECTOR_STICKY_CONTENT));\n $__default['default'](elements).each(function (index, element) {\n var margin = $__default['default'](element).data('margin-right');\n\n if (typeof margin !== 'undefined') {\n $__default['default'](element).css('margin-right', margin).removeData('margin-right');\n }\n }); // Restore body padding\n\n var padding = $__default['default'](document.body).data('padding-right');\n $__default['default'](document.body).removeData('padding-right');\n document.body.style.paddingRight = padding ? padding : '';\n };\n\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\n // thx d.walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n } // Static\n ;\n\n Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = $__default['default'](this).data(DATA_KEY$5);\n\n var _config = _extends({}, Default$3, $__default['default'](this).data(), typeof config === 'object' && config ? config : {});\n\n if (!data) {\n data = new Modal(this, _config);\n $__default['default'](this).data(DATA_KEY$5, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config](relatedTarget);\n } else if (_config.show) {\n data.show(relatedTarget);\n }\n });\n };\n\n _createClass(Modal, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$5;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$3;\n }\n }]);\n\n return Modal;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) {\n var _this11 = this;\n\n var target;\n var selector = Util.getSelectorFromElement(this);\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n var config = $__default['default'](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n var $target = $__default['default'](target).one(EVENT_SHOW$2, function (showEvent) {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return;\n }\n\n $target.one(EVENT_HIDDEN$2, function () {\n if ($__default['default'](_this11).is(':visible')) {\n _this11.focus();\n }\n });\n });\n\n Modal._jQueryInterface.call($__default['default'](target), config, this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$5] = Modal._jQueryInterface;\n $__default['default'].fn[NAME$5].Constructor = Modal;\n\n $__default['default'].fn[NAME$5].noConflict = function () {\n $__default['default'].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n return Modal._jQueryInterface;\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n var DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n };\n /**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;\n /**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\n\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n function allowedAttribute(attr, allowedAttributeList) {\n var attrName = attr.nodeName.toLowerCase();\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));\n }\n\n return true;\n }\n\n var regExp = allowedAttributeList.filter(function (attrRegex) {\n return attrRegex instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true;\n }\n }\n\n return false;\n }\n\n function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml;\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml);\n }\n\n var domParser = new window.DOMParser();\n var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n var whitelistKeys = Object.keys(whiteList);\n var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n\n var _loop = function _loop(i, len) {\n var el = elements[i];\n var elName = el.nodeName.toLowerCase();\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el);\n return \"continue\";\n }\n\n var attributeList = [].slice.call(el.attributes);\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n attributeList.forEach(function (attr) {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n });\n };\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var _ret = _loop(i);\n\n if (_ret === \"continue\") continue;\n }\n\n return createdDocument.body.innerHTML;\n }\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$6 = 'tooltip';\n var VERSION$6 = '4.6.0';\n var DATA_KEY$6 = 'bs.tooltip';\n var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n var JQUERY_NO_CONFLICT$6 = $__default['default'].fn[NAME$6];\n var CLASS_PREFIX = 'bs-tooltip';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n var DefaultType$4 = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n };\n var AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n };\n var Default$4 = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n customClass: '',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n };\n var HOVER_STATE_SHOW = 'show';\n var HOVER_STATE_OUT = 'out';\n var Event = {\n HIDE: \"hide\" + EVENT_KEY$6,\n HIDDEN: \"hidden\" + EVENT_KEY$6,\n SHOW: \"show\" + EVENT_KEY$6,\n SHOWN: \"shown\" + EVENT_KEY$6,\n INSERTED: \"inserted\" + EVENT_KEY$6,\n CLICK: \"click\" + EVENT_KEY$6,\n FOCUSIN: \"focusin\" + EVENT_KEY$6,\n FOCUSOUT: \"focusout\" + EVENT_KEY$6,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$6,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$6\n };\n var CLASS_NAME_FADE$2 = 'fade';\n var CLASS_NAME_SHOW$4 = 'show';\n var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n var SELECTOR_ARROW = '.arrow';\n var TRIGGER_HOVER = 'hover';\n var TRIGGER_FOCUS = 'focus';\n var TRIGGER_CLICK = 'click';\n var TRIGGER_MANUAL = 'manual';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Tooltip = /*#__PURE__*/function () {\n function Tooltip(element, config) {\n if (typeof Popper__default['default'] === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n } // private\n\n\n this._isEnabled = true;\n this._timeout = 0;\n this._hoverState = '';\n this._activeTrigger = {};\n this._popper = null; // Protected\n\n this.element = element;\n this.config = this._getConfig(config);\n this.tip = null;\n\n this._setListeners();\n } // Getters\n\n\n var _proto = Tooltip.prototype;\n\n // Public\n _proto.enable = function enable() {\n this._isEnabled = true;\n };\n\n _proto.disable = function disable() {\n this._isEnabled = false;\n };\n\n _proto.toggleEnabled = function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n };\n\n _proto.toggle = function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n var dataKey = this.constructor.DATA_KEY;\n var context = $__default['default'](event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default['default'](event.currentTarget).data(dataKey, context);\n }\n\n context._activeTrigger.click = !context._activeTrigger.click;\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context);\n } else {\n context._leave(null, context);\n }\n } else {\n if ($__default['default'](this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n };\n\n _proto.dispose = function dispose() {\n clearTimeout(this._timeout);\n $__default['default'].removeData(this.element, this.constructor.DATA_KEY);\n $__default['default'](this.element).off(this.constructor.EVENT_KEY);\n $__default['default'](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);\n\n if (this.tip) {\n $__default['default'](this.tip).remove();\n }\n\n this._isEnabled = null;\n this._timeout = null;\n this._hoverState = null;\n this._activeTrigger = null;\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n this._popper = null;\n this.element = null;\n this.config = null;\n this.tip = null;\n };\n\n _proto.show = function show() {\n var _this = this;\n\n if ($__default['default'](this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n var showEvent = $__default['default'].Event(this.constructor.Event.SHOW);\n\n if (this.isWithContent() && this._isEnabled) {\n $__default['default'](this.element).trigger(showEvent);\n var shadowRoot = Util.findShadowRoot(this.element);\n var isInTheDom = $__default['default'].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return;\n }\n\n var tip = this.getTipElement();\n var tipId = Util.getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n this.element.setAttribute('aria-describedby', tipId);\n this.setContent();\n\n if (this.config.animation) {\n $__default['default'](tip).addClass(CLASS_NAME_FADE$2);\n }\n\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n var attachment = this._getAttachment(placement);\n\n this.addAttachmentClass(attachment);\n\n var container = this._getContainer();\n\n $__default['default'](tip).data(this.constructor.DATA_KEY, this);\n\n if (!$__default['default'].contains(this.element.ownerDocument.documentElement, this.tip)) {\n $__default['default'](tip).appendTo(container);\n }\n\n $__default['default'](this.element).trigger(this.constructor.Event.INSERTED);\n this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment));\n $__default['default'](tip).addClass(CLASS_NAME_SHOW$4);\n $__default['default'](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n\n if ('ontouchstart' in document.documentElement) {\n $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n }\n\n var complete = function complete() {\n if (_this.config.animation) {\n _this._fixTransition();\n }\n\n var prevHoverState = _this._hoverState;\n _this._hoverState = null;\n $__default['default'](_this.element).trigger(_this.constructor.Event.SHOWN);\n\n if (prevHoverState === HOVER_STATE_OUT) {\n _this._leave(null, _this);\n }\n };\n\n if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n $__default['default'](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n }\n };\n\n _proto.hide = function hide(callback) {\n var _this2 = this;\n\n var tip = this.getTipElement();\n var hideEvent = $__default['default'].Event(this.constructor.Event.HIDE);\n\n var complete = function complete() {\n if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip);\n }\n\n _this2._cleanTipClass();\n\n _this2.element.removeAttribute('aria-describedby');\n\n $__default['default'](_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n if (_this2._popper !== null) {\n _this2._popper.destroy();\n }\n\n if (callback) {\n callback();\n }\n };\n\n $__default['default'](this.element).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n\n $__default['default'](tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n\n if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n var transitionDuration = Util.getTransitionDurationFromElement(tip);\n $__default['default'](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n\n this._hoverState = '';\n };\n\n _proto.update = function update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n } // Protected\n ;\n\n _proto.isWithContent = function isWithContent() {\n return Boolean(this.getTitle());\n };\n\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n };\n\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $__default['default'](this.config.template)[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var tip = this.getTipElement();\n this.setElementContent($__default['default'](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());\n $__default['default'](tip).removeClass(CLASS_NAME_FADE$2 + \" \" + CLASS_NAME_SHOW$4);\n };\n\n _proto.setElementContent = function setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$__default['default'](content).parent().is($element)) {\n $element.empty().append(content);\n }\n } else {\n $element.text($__default['default'](content).text());\n }\n\n return;\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);\n }\n\n $element.html(content);\n } else {\n $element.text(content);\n }\n };\n\n _proto.getTitle = function getTitle() {\n var title = this.element.getAttribute('data-original-title');\n\n if (!title) {\n title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n }\n\n return title;\n } // Private\n ;\n\n _proto._getPopperConfig = function _getPopperConfig(attachment) {\n var _this3 = this;\n\n var defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: function onCreate(data) {\n if (data.originalPlacement !== data.placement) {\n _this3._handlePopperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n return _this3._handlePopperPlacementChange(data);\n }\n };\n return _extends({}, defaultBsConfig, this.config.popperConfig);\n };\n\n _proto._getOffset = function _getOffset() {\n var _this4 = this;\n\n var offset = {};\n\n if (typeof this.config.offset === 'function') {\n offset.fn = function (data) {\n data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});\n return data;\n };\n } else {\n offset.offset = this.config.offset;\n }\n\n return offset;\n };\n\n _proto._getContainer = function _getContainer() {\n if (this.config.container === false) {\n return document.body;\n }\n\n if (Util.isElement(this.config.container)) {\n return $__default['default'](this.config.container);\n }\n\n return $__default['default'](document).find(this.config.container);\n };\n\n _proto._getAttachment = function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n };\n\n _proto._setListeners = function _setListeners() {\n var _this5 = this;\n\n var triggers = this.config.trigger.split(' ');\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n $__default['default'](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {\n return _this5.toggle(event);\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;\n var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;\n $__default['default'](_this5.element).on(eventIn, _this5.config.selector, function (event) {\n return _this5._enter(event);\n }).on(eventOut, _this5.config.selector, function (event) {\n return _this5._leave(event);\n });\n }\n });\n\n this._hideModalHandler = function () {\n if (_this5.element) {\n _this5.hide();\n }\n };\n\n $__default['default'](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);\n\n if (this.config.selector) {\n this.config = _extends({}, this.config, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n };\n\n _proto._fixTitle = function _fixTitle() {\n var titleType = typeof this.element.getAttribute('data-original-title');\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n this.element.setAttribute('title', '');\n }\n };\n\n _proto._enter = function _enter(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default['default'](event.currentTarget).data(dataKey, context);\n }\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n\n if ($__default['default'](context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_SHOW;\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context.config.delay.show);\n };\n\n _proto._leave = function _leave(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default['default'](event.currentTarget).data(dataKey, context);\n }\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_OUT;\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context.config.delay.hide);\n };\n\n _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n };\n\n _proto._getConfig = function _getConfig(config) {\n var dataAttributes = $__default['default'](this.element).data();\n Object.keys(dataAttributes).forEach(function (dataAttr) {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr];\n }\n });\n config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n\n Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType);\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n }\n\n return config;\n };\n\n _proto._getDelegateConfig = function _getDelegateConfig() {\n var config = {};\n\n if (this.config) {\n for (var key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key];\n }\n }\n }\n\n return config;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $__default['default'](this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''));\n }\n };\n\n _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper;\n\n this._cleanTipClass();\n\n this.addAttachmentClass(this._getAttachment(popperData.placement));\n };\n\n _proto._fixTransition = function _fixTransition() {\n var tip = this.getTipElement();\n var initConfigAnimation = this.config.animation;\n\n if (tip.getAttribute('x-placement') !== null) {\n return;\n }\n\n $__default['default'](tip).removeClass(CLASS_NAME_FADE$2);\n this.config.animation = false;\n this.hide();\n this.show();\n this.config.animation = initConfigAnimation;\n } // Static\n ;\n\n Tooltip._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default['default'](this);\n var data = $element.data(DATA_KEY$6);\n\n var _config = typeof config === 'object' && config;\n\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Tooltip(this, _config);\n $element.data(DATA_KEY$6, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Tooltip, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$6;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$4;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$6;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY$6;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY$6;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$4;\n }\n }]);\n\n return Tooltip;\n }();\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'].fn[NAME$6] = Tooltip._jQueryInterface;\n $__default['default'].fn[NAME$6].Constructor = Tooltip;\n\n $__default['default'].fn[NAME$6].noConflict = function () {\n $__default['default'].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n return Tooltip._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$7 = 'popover';\n var VERSION$7 = '4.6.0';\n var DATA_KEY$7 = 'bs.popover';\n var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n var JQUERY_NO_CONFLICT$7 = $__default['default'].fn[NAME$7];\n var CLASS_PREFIX$1 = 'bs-popover';\n var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n\n var Default$5 = _extends({}, Tooltip.Default, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n });\n\n var DefaultType$5 = _extends({}, Tooltip.DefaultType, {\n content: '(string|element|function)'\n });\n\n var CLASS_NAME_FADE$3 = 'fade';\n var CLASS_NAME_SHOW$5 = 'show';\n var SELECTOR_TITLE = '.popover-header';\n var SELECTOR_CONTENT = '.popover-body';\n var Event$1 = {\n HIDE: \"hide\" + EVENT_KEY$7,\n HIDDEN: \"hidden\" + EVENT_KEY$7,\n SHOW: \"show\" + EVENT_KEY$7,\n SHOWN: \"shown\" + EVENT_KEY$7,\n INSERTED: \"inserted\" + EVENT_KEY$7,\n CLICK: \"click\" + EVENT_KEY$7,\n FOCUSIN: \"focusin\" + EVENT_KEY$7,\n FOCUSOUT: \"focusout\" + EVENT_KEY$7,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$7,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$7\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Popover = /*#__PURE__*/function (_Tooltip) {\n _inheritsLoose(Popover, _Tooltip);\n\n function Popover() {\n return _Tooltip.apply(this, arguments) || this;\n }\n\n var _proto = Popover.prototype;\n\n // Overrides\n _proto.isWithContent = function isWithContent() {\n return this.getTitle() || this._getContent();\n };\n\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n };\n\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $__default['default'](this.config.template)[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events\n\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());\n\n var content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content);\n $tip.removeClass(CLASS_NAME_FADE$3 + \" \" + CLASS_NAME_SHOW$5);\n } // Private\n ;\n\n _proto._getContent = function _getContent() {\n return this.element.getAttribute('data-content') || this.config.content;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $__default['default'](this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''));\n }\n } // Static\n ;\n\n Popover._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default['default'](this).data(DATA_KEY$7);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data && /dispose|hide/.test(config)) {\n return;\n }\n\n if (!data) {\n data = new Popover(this, _config);\n $__default['default'](this).data(DATA_KEY$7, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Popover, null, [{\n key: \"VERSION\",\n // Getters\n get: function get() {\n return VERSION$7;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$5;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$7;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY$7;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$1;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY$7;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$5;\n }\n }]);\n\n return Popover;\n }(Tooltip);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'].fn[NAME$7] = Popover._jQueryInterface;\n $__default['default'].fn[NAME$7].Constructor = Popover;\n\n $__default['default'].fn[NAME$7].noConflict = function () {\n $__default['default'].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n return Popover._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$8 = 'scrollspy';\n var VERSION$8 = '4.6.0';\n var DATA_KEY$8 = 'bs.scrollspy';\n var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n var DATA_API_KEY$6 = '.data-api';\n var JQUERY_NO_CONFLICT$8 = $__default['default'].fn[NAME$8];\n var Default$6 = {\n offset: 10,\n method: 'auto',\n target: ''\n };\n var DefaultType$6 = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n };\n var EVENT_ACTIVATE = \"activate\" + EVENT_KEY$8;\n var EVENT_SCROLL = \"scroll\" + EVENT_KEY$8;\n var EVENT_LOAD_DATA_API$2 = \"load\" + EVENT_KEY$8 + DATA_API_KEY$6;\n var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n var CLASS_NAME_ACTIVE$2 = 'active';\n var SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]';\n var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n var SELECTOR_NAV_LINKS = '.nav-link';\n var SELECTOR_NAV_ITEMS = '.nav-item';\n var SELECTOR_LIST_ITEMS = '.list-group-item';\n var SELECTOR_DROPDOWN = '.dropdown';\n var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';\n var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n var METHOD_OFFSET = 'offset';\n var METHOD_POSITION = 'position';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var ScrollSpy = /*#__PURE__*/function () {\n function ScrollSpy(element, config) {\n var _this = this;\n\n this._element = element;\n this._scrollElement = element.tagName === 'BODY' ? window : element;\n this._config = this._getConfig(config);\n this._selector = this._config.target + \" \" + SELECTOR_NAV_LINKS + \",\" + (this._config.target + \" \" + SELECTOR_LIST_ITEMS + \",\") + (this._config.target + \" \" + SELECTOR_DROPDOWN_ITEMS);\n this._offsets = [];\n this._targets = [];\n this._activeTarget = null;\n this._scrollHeight = 0;\n $__default['default'](this._scrollElement).on(EVENT_SCROLL, function (event) {\n return _this._process(event);\n });\n this.refresh();\n\n this._process();\n } // Getters\n\n\n var _proto = ScrollSpy.prototype;\n\n // Public\n _proto.refresh = function refresh() {\n var _this2 = this;\n\n var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = [].slice.call(document.querySelectorAll(this._selector));\n targets.map(function (element) {\n var target;\n var targetSelector = Util.getSelectorFromElement(element);\n\n if (targetSelector) {\n target = document.querySelector(targetSelector);\n }\n\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [$__default['default'](target)[offsetMethod]().top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this2._offsets.push(item[0]);\n\n _this2._targets.push(item[1]);\n });\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY$8);\n $__default['default'](this._scrollElement).off(EVENT_KEY$8);\n this._element = null;\n this._scrollElement = null;\n this._config = null;\n this._selector = null;\n this._offsets = null;\n this._targets = null;\n this._activeTarget = null;\n this._scrollHeight = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$6, typeof config === 'object' && config ? config : {});\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n var id = $__default['default'](config.target).attr('id');\n\n if (!id) {\n id = Util.getUID(NAME$8);\n $__default['default'](config.target).attr('id', id);\n }\n\n config.target = \"#\" + id;\n }\n\n Util.typeCheckConfig(NAME$8, config, DefaultType$6);\n return config;\n };\n\n _proto._getScrollTop = function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n };\n\n _proto._getScrollHeight = function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n };\n\n _proto._getOffsetHeight = function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n };\n\n _proto._process = function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n\n var scrollHeight = this._getScrollHeight();\n\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this._targets[this._targets.length - 1];\n\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n\n return;\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n\n this._clear();\n\n return;\n }\n\n for (var i = this._offsets.length; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n };\n\n _proto._activate = function _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n var queries = this._selector.split(',').map(function (selector) {\n return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n });\n\n var $link = $__default['default']([].slice.call(document.querySelectorAll(queries.join(','))));\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE$2);\n $link.addClass(CLASS_NAME_ACTIVE$2);\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE$2); // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n\n $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_LINKS + \", \" + SELECTOR_LIST_ITEMS).addClass(CLASS_NAME_ACTIVE$2); // Handle special case when .nav-link is inside .nav-item\n\n $link.parents(SELECTOR_NAV_LIST_GROUP).prev(SELECTOR_NAV_ITEMS).children(SELECTOR_NAV_LINKS).addClass(CLASS_NAME_ACTIVE$2);\n }\n\n $__default['default'](this._scrollElement).trigger(EVENT_ACTIVATE, {\n relatedTarget: target\n });\n };\n\n _proto._clear = function _clear() {\n [].slice.call(document.querySelectorAll(this._selector)).filter(function (node) {\n return node.classList.contains(CLASS_NAME_ACTIVE$2);\n }).forEach(function (node) {\n return node.classList.remove(CLASS_NAME_ACTIVE$2);\n });\n } // Static\n ;\n\n ScrollSpy._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default['default'](this).data(DATA_KEY$8);\n\n var _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new ScrollSpy(this, _config);\n $__default['default'](this).data(DATA_KEY$8, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(ScrollSpy, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$8;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$6;\n }\n }]);\n\n return ScrollSpy;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](window).on(EVENT_LOAD_DATA_API$2, function () {\n var scrollSpys = [].slice.call(document.querySelectorAll(SELECTOR_DATA_SPY));\n var scrollSpysLength = scrollSpys.length;\n\n for (var i = scrollSpysLength; i--;) {\n var $spy = $__default['default'](scrollSpys[i]);\n\n ScrollSpy._jQueryInterface.call($spy, $spy.data());\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$8] = ScrollSpy._jQueryInterface;\n $__default['default'].fn[NAME$8].Constructor = ScrollSpy;\n\n $__default['default'].fn[NAME$8].noConflict = function () {\n $__default['default'].fn[NAME$8] = JQUERY_NO_CONFLICT$8;\n return ScrollSpy._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$9 = 'tab';\n var VERSION$9 = '4.6.0';\n var DATA_KEY$9 = 'bs.tab';\n var EVENT_KEY$9 = \".\" + DATA_KEY$9;\n var DATA_API_KEY$7 = '.data-api';\n var JQUERY_NO_CONFLICT$9 = $__default['default'].fn[NAME$9];\n var EVENT_HIDE$3 = \"hide\" + EVENT_KEY$9;\n var EVENT_HIDDEN$3 = \"hidden\" + EVENT_KEY$9;\n var EVENT_SHOW$3 = \"show\" + EVENT_KEY$9;\n var EVENT_SHOWN$3 = \"shown\" + EVENT_KEY$9;\n var EVENT_CLICK_DATA_API$6 = \"click\" + EVENT_KEY$9 + DATA_API_KEY$7;\n var CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu';\n var CLASS_NAME_ACTIVE$3 = 'active';\n var CLASS_NAME_DISABLED$1 = 'disabled';\n var CLASS_NAME_FADE$4 = 'fade';\n var CLASS_NAME_SHOW$6 = 'show';\n var SELECTOR_DROPDOWN$1 = '.dropdown';\n var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group';\n var SELECTOR_ACTIVE$2 = '.active';\n var SELECTOR_ACTIVE_UL = '> li > .active';\n var SELECTOR_DATA_TOGGLE$4 = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]';\n var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';\n var SELECTOR_DROPDOWN_ACTIVE_CHILD = '> .dropdown-menu .active';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Tab = /*#__PURE__*/function () {\n function Tab(element) {\n this._element = element;\n } // Getters\n\n\n var _proto = Tab.prototype;\n\n // Public\n _proto.show = function show() {\n var _this = this;\n\n if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $__default['default'](this._element).hasClass(CLASS_NAME_ACTIVE$3) || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED$1)) {\n return;\n }\n\n var target;\n var previous;\n var listElement = $__default['default'](this._element).closest(SELECTOR_NAV_LIST_GROUP$1)[0];\n var selector = Util.getSelectorFromElement(this._element);\n\n if (listElement) {\n var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;\n previous = $__default['default'].makeArray($__default['default'](listElement).find(itemSelector));\n previous = previous[previous.length - 1];\n }\n\n var hideEvent = $__default['default'].Event(EVENT_HIDE$3, {\n relatedTarget: this._element\n });\n var showEvent = $__default['default'].Event(EVENT_SHOW$3, {\n relatedTarget: previous\n });\n\n if (previous) {\n $__default['default'](previous).trigger(hideEvent);\n }\n\n $__default['default'](this._element).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n this._activate(this._element, listElement);\n\n var complete = function complete() {\n var hiddenEvent = $__default['default'].Event(EVENT_HIDDEN$3, {\n relatedTarget: _this._element\n });\n var shownEvent = $__default['default'].Event(EVENT_SHOWN$3, {\n relatedTarget: previous\n });\n $__default['default'](previous).trigger(hiddenEvent);\n $__default['default'](_this._element).trigger(shownEvent);\n };\n\n if (target) {\n this._activate(target, target.parentNode, complete);\n } else {\n complete();\n }\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY$9);\n this._element = null;\n } // Private\n ;\n\n _proto._activate = function _activate(element, container, callback) {\n var _this2 = this;\n\n var activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? $__default['default'](container).find(SELECTOR_ACTIVE_UL) : $__default['default'](container).children(SELECTOR_ACTIVE$2);\n var active = activeElements[0];\n var isTransitioning = callback && active && $__default['default'](active).hasClass(CLASS_NAME_FADE$4);\n\n var complete = function complete() {\n return _this2._transitionComplete(element, active, callback);\n };\n\n if (active && isTransitioning) {\n var transitionDuration = Util.getTransitionDurationFromElement(active);\n $__default['default'](active).removeClass(CLASS_NAME_SHOW$6).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto._transitionComplete = function _transitionComplete(element, active, callback) {\n if (active) {\n $__default['default'](active).removeClass(CLASS_NAME_ACTIVE$3);\n var dropdownChild = $__default['default'](active.parentNode).find(SELECTOR_DROPDOWN_ACTIVE_CHILD)[0];\n\n if (dropdownChild) {\n $__default['default'](dropdownChild).removeClass(CLASS_NAME_ACTIVE$3);\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false);\n }\n }\n\n $__default['default'](element).addClass(CLASS_NAME_ACTIVE$3);\n\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true);\n }\n\n Util.reflow(element);\n\n if (element.classList.contains(CLASS_NAME_FADE$4)) {\n element.classList.add(CLASS_NAME_SHOW$6);\n }\n\n if (element.parentNode && $__default['default'](element.parentNode).hasClass(CLASS_NAME_DROPDOWN_MENU)) {\n var dropdownElement = $__default['default'](element).closest(SELECTOR_DROPDOWN$1)[0];\n\n if (dropdownElement) {\n var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(SELECTOR_DROPDOWN_TOGGLE$1));\n $__default['default'](dropdownToggleList).addClass(CLASS_NAME_ACTIVE$3);\n }\n\n element.setAttribute('aria-expanded', true);\n }\n\n if (callback) {\n callback();\n }\n } // Static\n ;\n\n Tab._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $this = $__default['default'](this);\n var data = $this.data(DATA_KEY$9);\n\n if (!data) {\n data = new Tab(this);\n $this.data(DATA_KEY$9, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config]();\n }\n });\n };\n\n _createClass(Tab, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$9;\n }\n }]);\n\n return Tab;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$4, function (event) {\n event.preventDefault();\n\n Tab._jQueryInterface.call($__default['default'](this), 'show');\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$9] = Tab._jQueryInterface;\n $__default['default'].fn[NAME$9].Constructor = Tab;\n\n $__default['default'].fn[NAME$9].noConflict = function () {\n $__default['default'].fn[NAME$9] = JQUERY_NO_CONFLICT$9;\n return Tab._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$a = 'toast';\n var VERSION$a = '4.6.0';\n var DATA_KEY$a = 'bs.toast';\n var EVENT_KEY$a = \".\" + DATA_KEY$a;\n var JQUERY_NO_CONFLICT$a = $__default['default'].fn[NAME$a];\n var EVENT_CLICK_DISMISS$1 = \"click.dismiss\" + EVENT_KEY$a;\n var EVENT_HIDE$4 = \"hide\" + EVENT_KEY$a;\n var EVENT_HIDDEN$4 = \"hidden\" + EVENT_KEY$a;\n var EVENT_SHOW$4 = \"show\" + EVENT_KEY$a;\n var EVENT_SHOWN$4 = \"shown\" + EVENT_KEY$a;\n var CLASS_NAME_FADE$5 = 'fade';\n var CLASS_NAME_HIDE = 'hide';\n var CLASS_NAME_SHOW$7 = 'show';\n var CLASS_NAME_SHOWING = 'showing';\n var DefaultType$7 = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n };\n var Default$7 = {\n animation: true,\n autohide: true,\n delay: 500\n };\n var SELECTOR_DATA_DISMISS$1 = '[data-dismiss=\"toast\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Toast = /*#__PURE__*/function () {\n function Toast(element, config) {\n this._element = element;\n this._config = this._getConfig(config);\n this._timeout = null;\n\n this._setListeners();\n } // Getters\n\n\n var _proto = Toast.prototype;\n\n // Public\n _proto.show = function show() {\n var _this = this;\n\n var showEvent = $__default['default'].Event(EVENT_SHOW$4);\n $__default['default'](this._element).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._clearTimeout();\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE$5);\n }\n\n var complete = function complete() {\n _this._element.classList.remove(CLASS_NAME_SHOWING);\n\n _this._element.classList.add(CLASS_NAME_SHOW$7);\n\n $__default['default'](_this._element).trigger(EVENT_SHOWN$4);\n\n if (_this._config.autohide) {\n _this._timeout = setTimeout(function () {\n _this.hide();\n }, _this._config.delay);\n }\n };\n\n this._element.classList.remove(CLASS_NAME_HIDE);\n\n Util.reflow(this._element);\n\n this._element.classList.add(CLASS_NAME_SHOWING);\n\n if (this._config.animation) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto.hide = function hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW$7)) {\n return;\n }\n\n var hideEvent = $__default['default'].Event(EVENT_HIDE$4);\n $__default['default'](this._element).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n\n this._close();\n };\n\n _proto.dispose = function dispose() {\n this._clearTimeout();\n\n if (this._element.classList.contains(CLASS_NAME_SHOW$7)) {\n this._element.classList.remove(CLASS_NAME_SHOW$7);\n }\n\n $__default['default'](this._element).off(EVENT_CLICK_DISMISS$1);\n $__default['default'].removeData(this._element, DATA_KEY$a);\n this._element = null;\n this._config = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$7, $__default['default'](this._element).data(), typeof config === 'object' && config ? config : {});\n Util.typeCheckConfig(NAME$a, config, this.constructor.DefaultType);\n return config;\n };\n\n _proto._setListeners = function _setListeners() {\n var _this2 = this;\n\n $__default['default'](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function () {\n return _this2.hide();\n });\n };\n\n _proto._close = function _close() {\n var _this3 = this;\n\n var complete = function complete() {\n _this3._element.classList.add(CLASS_NAME_HIDE);\n\n $__default['default'](_this3._element).trigger(EVENT_HIDDEN$4);\n };\n\n this._element.classList.remove(CLASS_NAME_SHOW$7);\n\n if (this._config.animation) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n };\n\n _proto._clearTimeout = function _clearTimeout() {\n clearTimeout(this._timeout);\n this._timeout = null;\n } // Static\n ;\n\n Toast._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default['default'](this);\n var data = $element.data(DATA_KEY$a);\n\n var _config = typeof config === 'object' && config;\n\n if (!data) {\n data = new Toast(this, _config);\n $element.data(DATA_KEY$a, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\" + config + \"\\\"\");\n }\n\n data[config](this);\n }\n });\n };\n\n _createClass(Toast, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$a;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$7;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$7;\n }\n }]);\n\n return Toast;\n }();\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'].fn[NAME$a] = Toast._jQueryInterface;\n $__default['default'].fn[NAME$a].Constructor = Toast;\n\n $__default['default'].fn[NAME$a].noConflict = function () {\n $__default['default'].fn[NAME$a] = JQUERY_NO_CONFLICT$a;\n return Toast._jQueryInterface;\n };\n\n exports.Alert = Alert;\n exports.Button = Button;\n exports.Carousel = Carousel;\n exports.Collapse = Collapse;\n exports.Dropdown = Dropdown;\n exports.Modal = Modal;\n exports.Popover = Popover;\n exports.Scrollspy = ScrollSpy;\n exports.Tab = Tab;\n exports.Toast = Toast;\n exports.Tooltip = Tooltip;\n exports.Util = Util;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n//# sourceMappingURL=bootstrap.js.map\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù ',\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واØدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واØدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واØدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واØد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واØد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واØد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'Ùبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واØدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واØدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واØدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واØد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واØد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واØد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانÙÙŠ',\n 'ÙÙŠÙري',\n 'مارس',\n 'Ø£Ùريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'اØد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واØدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واØدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واØدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واØد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واØد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واØد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'Ùبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوÙمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'اØد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù ',\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'يناير_Ùبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|Ù…/,\n isPM: function (input) {\n return 'Ù…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù…';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort: 'جانÙÙŠ_ÙÙŠÙري_مارس_Ø£Ùريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوÙمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأØد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ø£Øد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù†_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ÙÙŠ %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertÉ™si_ÇərÅŸÉ™nbÉ™ axÅŸamı_ÇərÅŸÉ™nbÉ™_CümÉ™ axÅŸamı_CümÉ™_ŞənbÉ™'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gÉ™lÉ™n hÉ™ftÉ™] dddd [saat] LT',\n lastDay: '[dünÉ™n] LT',\n lastWeek: '[keçən hÉ™ftÉ™] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s É™vvÉ™l',\n s: 'bir neçə saniyÉ™',\n ss: '%d saniyÉ™',\n m: 'bir dÉ™qiqÉ™',\n mm: '%d dÉ™qiqÉ™',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecÉ™|sÉ™hÉ™r|gündüz|axÅŸam/,\n isPM: function (input) {\n return /^(gündüz|axÅŸam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecÉ™';\n } else if (hour < 12) {\n return 'sÉ™hÉ™r';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axÅŸam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'меÑÑц_меÑÑцы_меÑÑцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'ÑтудзенÑ_лютага_Ñакавіка_краÑавіка_траўнÑ_чÑрвенÑ_ліпенÑ_жніўнÑ_вераÑнÑ_каÑтрычніка_ліÑтапада_ÑнежнÑ'.split(\n '_'\n ),\n standalone: 'Ñтудзень_люты_Ñакавік_краÑавік_травень_чÑрвень_ліпень_жнівень_вераÑень_каÑтрычнік_ліÑтапад_Ñнежань'.split(\n '_'\n ),\n },\n monthsShort: 'Ñтуд_лют_Ñак_краÑ_трав_чÑрв_ліп_жнів_вер_каÑÑ‚_ліÑÑ‚_Ñнеж'.split(\n '_'\n ),\n weekdays: {\n format: 'нÑдзелю_панÑдзелак_аўторак_Ñераду_чацвер_пÑтніцу_Ñуботу'.split(\n '_'\n ),\n standalone: 'нÑдзелÑ_панÑдзелак_аўторак_Ñерада_чацвер_пÑтніца_Ñубота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наÑтупную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ÑÑ€_чц_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Ð¡Ñ‘Ð½Ð½Ñ Ñž] LT',\n nextDay: '[Заўтра Ñž] LT',\n lastDay: '[Учора Ñž] LT',\n nextWeek: function () {\n return '[У] dddd [Ñž] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [Ñž] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [Ñž] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі Ñекунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|днÑ|вечара/,\n isPM: function (input) {\n return /^(днÑ|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(Ñ–|Ñ‹|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-Ñ–'\n : number + '-Ñ‹';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'Ñнуари_февруари_март_април_май_юни_юли_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'Ñну_фев_мар_апр_май_юни_юли_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays: 'неделÑ_понеделник_вторник_ÑÑ€Ñда_четвъртък_петък_Ñъбота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_ÑÑ€Ñ_чет_пет_Ñъб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Ð”Ð½ÐµÑ Ð²] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[МиналиÑ] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Ñлед %s',\n past: 'преди %s',\n s: 'нÑколко Ñекунди',\n ss: '%d Ñекунди',\n m: 'минута',\n mm: '%d минути',\n h: 'чаÑ',\n hh: '%d чаÑа',\n d: 'ден',\n dd: '%d дена',\n w: 'Ñедмица',\n ww: '%d Ñедмици',\n M: 'меÑец',\n MM: '%d меÑеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_MÉ›kalo_ZuwÉ›nkalo_Zuluyekalo_Utikalo_SÉ›tanburukalo_É”kutÉ”burukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_MÉ›_Zuw_Zul_Uti_SÉ›t_É”ku_Now_Des'.split('_'),\n weekdays: 'Kari_NtÉ›nÉ›n_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_NtÉ›_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lÉ›rÉ›] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lÉ›rÉ›] LT',\n nextDay: '[Sini lÉ›rÉ›] LT',\n nextWeek: 'dddd [don lÉ›rÉ›] LT',\n lastDay: '[Kunu lÉ›rÉ›] LT',\n lastWeek: 'dddd [tÉ›mÉ›nen lÉ›rÉ›] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kÉ”nÉ”',\n past: 'a bÉ› %s bÉ”',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lÉ›rÉ› kelen',\n hh: 'lÉ›rÉ› %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: 'à§',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n 'à§': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানà§à§Ÿà¦¾à¦°à¦¿_ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿà§‡à¦®à§à¦¬à¦°_অকà§à¦Ÿà§‹à¦¬à¦°_নà¦à§‡à¦®à§à¦¬à¦°_ডিসেমà§à¦¬à¦°'.split(\n '_'\n ),\n monthsShort: 'জানà§_ফেবà§à¦°à§_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿ_অকà§à¦Ÿà§‹_নà¦à§‡_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙà§à¦—লবার_বà§à¦§à¦¬à¦¾à¦°_বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦•à§à¦°à¦¬à¦¾à¦°_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহসà§à¦ªà¦¤à¦¿_শà§à¦•à§à¦°_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহ_শà§à¦•à§à¦°_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেনà§à¦¡',\n ss: '%d সেকেনà§à¦¡',\n m: 'à¦à¦• মিনিট',\n mm: '%d মিনিট',\n h: 'à¦à¦• ঘনà§à¦Ÿà¦¾',\n hh: '%d ঘনà§à¦Ÿà¦¾',\n d: 'à¦à¦• দিন',\n dd: '%d দিন',\n M: 'à¦à¦• মাস',\n MM: '%d মাস',\n y: 'à¦à¦• বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দà§à¦ªà§à¦°|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দà§à¦ªà§à¦°' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: 'à§',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n 'à§': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানà§à§Ÿà¦¾à¦°à¦¿_ফেবà§à¦°à§à§Ÿà¦¾à¦°à¦¿_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿà§‡à¦®à§à¦¬à¦°_অকà§à¦Ÿà§‹à¦¬à¦°_নà¦à§‡à¦®à§à¦¬à¦°_ডিসেমà§à¦¬à¦°'.split(\n '_'\n ),\n monthsShort: 'জানà§_ফেবà§à¦°à§_মারà§à¦š_à¦à¦ªà§à¦°à¦¿à¦²_মে_জà§à¦¨_জà§à¦²à¦¾à¦‡_আগসà§à¦Ÿ_সেপà§à¦Ÿ_অকà§à¦Ÿà§‹_নà¦à§‡_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙà§à¦—লবার_বà§à¦§à¦¬à¦¾à¦°_বৃহসà§à¦ªà¦¤à¦¿à¦¬à¦¾à¦°_শà§à¦•à§à¦°à¦¬à¦¾à¦°_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহসà§à¦ªà¦¤à¦¿_শà§à¦•à§à¦°_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙà§à¦—ল_বà§à¦§_বৃহ_শà§à¦•à§à¦°_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেনà§à¦¡',\n ss: '%d সেকেনà§à¦¡',\n m: 'à¦à¦• মিনিট',\n mm: '%d মিনিট',\n h: 'à¦à¦• ঘনà§à¦Ÿà¦¾',\n hh: '%d ঘনà§à¦Ÿà¦¾',\n d: 'à¦à¦• দিন',\n dd: '%d দিন',\n M: 'à¦à¦• মাস',\n MM: '%d মাস',\n y: 'à¦à¦• বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬à§à§®à§¯à§¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|à¦à§‹à¦°|সকাল|দà§à¦ªà§à¦°|বিকাল|সনà§à¦§à§à¦¯à¦¾|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'à¦à§‹à¦°') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দà§à¦ªà§à¦°') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সনà§à¦§à§à¦¯à¦¾') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'à¦à§‹à¦°';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দà§à¦ªà§à¦°';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সনà§à¦§à§à¦¯à¦¾';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort: 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[à½à¼‹à½¦à½„] LT',\n lastWeek: '[བདུན་ཕྲག་མà½à½ ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སà¾à½¢à¼‹à½†à¼',\n m: 'སà¾à½¢à¼‹à½˜à¼‹à½‚ཅིག',\n mm: '%d སà¾à½¢à¼‹à½˜',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[proÅ¡lu] dddd [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'leden_únor_bÅ™ezen_duben_kvÄ›ten_Äerven_Äervenec_srpen_zářÃ_Å™Ãjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_úno_bÅ™e_dub_kvÄ›_Ävn_Ävc_srp_zář_Å™Ãj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bÅ™e/i,\n /^dub/i,\n /^kvÄ›/i,\n /^(Ävn|Äerven$|Äervna)/i,\n /^(Ävc|Äervenec|Äervence)/i,\n /^srp/i,\n /^zář/i,\n /^Å™Ãj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsRegex = /^(leden|únor|bÅ™ezen|duben|kvÄ›ten|Äervenec|Äervence|Äerven|Äervna|srpen|zářÃ|Å™Ãjen|listopad|prosinec|led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dnÃ');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mÄ›sÃc' : 'mÄ›sÃcem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mÄ›sÃce' : 'mÄ›sÃců');\n } else {\n return result + 'mÄ›sÃci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'Äerven' is substring of 'Äervenec'; therefore 'Äervenec' must precede 'Äerven' in the regex to be fully matched.\n // Otherwise parser matches '1. Äervenec' as '1. Äerven' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|února|únor|bÅ™ezen|bÅ™ezna|duben|dubna|kvÄ›ten|kvÄ›tna|Äervenec|Äervence|Äerven|Äervna|srpen|srpna|zářÃ|Å™Ãjen|Å™Ãjna|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|úno|bÅ™e|dub|kvÄ›|Ävn|Ävc|srp|zář|Å™Ãj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'nedÄ›le_pondÄ›lÃ_úterý_stÅ™eda_Ätvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zÃtra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedÄ›li v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve stÅ™edu v] LT';\n case 4:\n return '[ve Ätvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[vÄera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou nedÄ›li v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou stÅ™edu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pÅ™ed %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑÑ_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_Ò«Ó—Ñ€_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays: 'вырÑарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_Ñрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_Ñрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_Ñ‹Ñ‚_юн_кҫ_ÑÑ€_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[ПаÑн] LT [Ñехетре]',\n nextDay: '[Ыран] LT [Ñехетре]',\n lastDay: '[Ӗнер] LT [Ñехетре]',\n nextWeek: '[ҪитеÑ] dddd LT [Ñехетре]',\n lastWeek: '[Иртнӗ] dddd LT [Ñехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /Ñехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каÑлла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр Ñехет',\n hh: '%d Ñехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'pÃ¥ dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'fÃ¥ sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'et Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Þ–Þ¬Þ‚ÞªÞ‡Þ¦ÞƒÞ©',\n 'ÞŠÞ¬Þ„Þ°ÞƒÞªÞ‡Þ¦ÞƒÞ©',\n 'Þ‰Þ§ÞƒÞ¨Þ—Þª',\n 'Þ‡ÞÞ•Þ°ÞƒÞ©ÞÞª',\n 'Þ‰Þ',\n 'Þ–Þ«Þ‚Þ°',\n 'Þ–ÞªÞÞ¦Þ‡Þ¨',\n 'Þ‡Þ¯ÞŽÞ¦ÞÞ°Þ“Þª',\n 'ÞÞ¬Þ•Þ°Þ“Þ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n 'Þ‡Þ®Þ†Þ°Þ“Þ¯Þ„Þ¦ÞƒÞª',\n 'Þ‚Þ®ÞˆÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n 'Þ‘Þ¨ÞÞ¬Þ‰Þ°Þ„Þ¦ÞƒÞª',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'Þ€Þ¯Þ‰Þ¦',\n 'Þ‡Þ¦Þ‚Þ°ÞŽÞ§ÞƒÞ¦',\n 'Þ„ÞªÞ‹Þ¦',\n 'Þ„ÞªÞƒÞ§Þްފަތި',\n 'Þ€ÞªÞ†ÞªÞƒÞª',\n 'Þ€Þ®Þ‚Þ¨Þ€Þ¨ÞƒÞª',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'Þ‡Þ§Þ‹Þ¨_Þ€Þ¯Þ‰Þ¦_Þ‡Þ¦Þ‚Þ°_Þ„ÞªÞ‹Þ¦_Þ„ÞªÞƒÞ§_Þ€ÞªÞ†Þª_Þ€Þ®Þ‚Þ¨'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /Þ‰Þ†|Þ‰ÞŠ/,\n isPM: function (input) {\n return 'Þ‰ÞŠ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Þ‰Þ†';\n } else {\n return 'Þ‰ÞŠ';\n }\n },\n calendar: {\n sameDay: '[Þ‰Þ¨Þ‡Þ¦Þ‹Þª] LT',\n nextDay: '[Þ‰Þ§Þ‹Þ¦Þ‰Þ§] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Þ‡Þ¨Þ‡Þ°Þ”Þ¬] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރÞÞŽÞ¦Þ‡Þ¨ %s',\n past: 'Þ†ÞªÞƒÞ¨Þ‚Þ° %s',\n s: 'Þިކުންތުކޮޅެއް',\n ss: 'd% Þިކުންތު',\n m: 'Þ‰Þ¨Þ‚Þ¨Þ“Þ¬Þ‡Þ°',\n mm: 'Þ‰Þ¨Þ‚Þ¨Þ“Þª %d',\n h: 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞ¬Þ‡Þ°',\n hh: 'ÞŽÞ¦Þ‘Þ¨Þ‡Þ¨ÞƒÞª %d',\n d: 'Þ‹ÞªÞˆÞ¦Þ€Þ¬Þ‡Þ°',\n dd: 'Þ‹ÞªÞˆÞ¦ÞÞ° %d',\n M: 'Þ‰Þ¦Þ€Þ¬Þ‡Þ°',\n MM: 'Þ‰Þ¦ÞÞ° %d',\n y: 'Þ‡Þ¦Þ€Þ¦ÞƒÞ¬Þ‡Þ°',\n yy: 'Þ‡Þ¦Þ€Þ¦ÞƒÞª %d',\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'ΙανουάÏιος_ΦεβÏουάÏιος_ΜάÏτιος_ΑπÏίλιος_Μάιος_ΙοÏνιος_ΙοÏλιος_ΑÏγουστος_ΣεπτÎμβÏιος_ΟκτώβÏιος_ÎοÎμβÏιος_ΔεκÎμβÏιος'.split(\n '_'\n ),\n monthsGenitiveEl: 'ΙανουαÏίου_ΦεβÏουαÏίου_ΜαÏτίου_ΑπÏιλίου_ΜαÎου_Ιουνίου_Ιουλίου_ΑυγοÏστου_ΣεπτεμβÏίου_ΟκτωβÏίου_ÎοεμβÏίου_ΔεκεμβÏίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_ΜαÏ_ΑπÏ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Îοε_Δεκ'.split('_'),\n weekdays: 'ΚυÏιακή_ΔευτÎÏα_ΤÏίτη_ΤετάÏτη_Î Îμπτη_ΠαÏασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'ΚυÏ_Δευ_ΤÏι_Τετ_Πεμ_ΠαÏ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_ΤÏ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'Î Îœ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[Î Îœ]\\.?Îœ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[ΣήμεÏα {}] LT',\n nextDay: '[ΑÏÏιο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το Ï€ÏοηγοÏμενο] dddd [{}] LT';\n default:\n return '[την Ï€ÏοηγοÏμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s Ï€Ïιν',\n s: 'λίγα δευτεÏόλεπτα',\n ss: '%d δευτεÏόλεπτα',\n m: 'Îνα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ÏŽÏα',\n hh: '%d ÏŽÏες',\n d: 'μία μÎÏα',\n dd: '%d μÎÏες',\n M: 'Îνας μήνας',\n MM: '%d μήνες',\n y: 'Îνας χÏόνος',\n yy: '%d χÏόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaÅdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaÅ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[HodiaÅ je] LT',\n nextDay: '[MorgaÅ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[HieraÅ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaÅ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurà : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n '_'\n ),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: 'Û±',\n 2: 'Û²',\n 3: 'Û³',\n 4: 'Û´',\n 5: 'Ûµ',\n 6: 'Û¶',\n 7: 'Û·',\n 8: 'Û¸',\n 9: 'Û¹',\n 0: 'Û°',\n },\n numberMap = {\n 'Û±': '1',\n 'Û²': '2',\n 'Û³': '3',\n 'Û´': '4',\n 'Ûµ': '5',\n 'Û¶': '6',\n 'Û·': '7',\n 'Û¸': '8',\n 'Û¹': '9',\n 'Û°': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort: 'ژانویه_Ùوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort: 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ÛŒ_د_س_Ú†_Ù¾_ج_Ø´'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[Ùردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[Û°-Û¹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Ù…/,\n ordinal: '%dÙ…',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_aprÃl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_frÃggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frÃ_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[à dag kl.] LT',\n nextDay: '[à morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[à gjár kl.] LT',\n lastWeek: '[sÃðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s sÃðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tÃmi',\n hh: '%d tÃmar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex = /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex = /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n '_'\n );\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mÃ',\n MM: '%d mÃonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Mà rt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ã’gmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dà mhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Mà rt',\n 'Gibl',\n 'Cèit',\n 'Ã’gmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dà mh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimà irt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà ', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-mà ireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['à¤à¤•à¤¾ मिणटान', 'à¤à¤• मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['à¤à¤•à¤¾ वरान', 'à¤à¤• वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['à¤à¤•à¤¾ दिसान', 'à¤à¤• दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['à¤à¤•à¤¾ मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨', 'à¤à¤• मà¥à¤¹à¤¯à¤¨à¥‹'],\n MM: [number + ' मà¥à¤¹à¤¯à¤¨à¥à¤¯à¤¾à¤¨à¥€', number + ' मà¥à¤¹à¤¯à¤¨à¥‡'],\n y: ['à¤à¤•à¤¾ वरà¥à¤¸à¤¾à¤¨', 'à¤à¤• वरà¥à¤¸'],\n yy: [number + ' वरà¥à¤¸à¤¾à¤‚नी', number + ' वरà¥à¤¸à¤¾à¤‚'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¥€à¤²_मे_जून_जà¥à¤²à¤¯_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीचà¥à¤¯à¤¾_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€à¤šà¥à¤¯à¤¾_मारà¥à¤šà¤¾à¤šà¥à¤¯à¤¾_à¤à¤ªà¥à¤°à¥€à¤²à¤¾à¤šà¥à¤¯à¤¾_मेयाचà¥à¤¯à¤¾_जूनाचà¥à¤¯à¤¾_जà¥à¤²à¤¯à¤¾à¤šà¥à¤¯à¤¾_ऑगसà¥à¤Ÿà¤¾à¤šà¥à¤¯à¤¾_सपà¥à¤Ÿà¥‡à¤‚बराचà¥à¤¯à¤¾_ऑकà¥à¤Ÿà¥‹à¤¬à¤°à¤¾à¤šà¥à¤¯à¤¾_नोवà¥à¤¹à¥‡à¤‚बराचà¥à¤¯à¤¾_डिसेंबराचà¥à¤¯à¤¾'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š_à¤à¤ªà¥à¤°à¥€._मे_जून_जà¥à¤²._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बà¥à¤§à¤µà¤¾à¤°_बिरेसà¥à¤¤à¤¾à¤°_सà¥à¤•à¥à¤°à¤¾à¤°_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बà¥à¤§._बà¥à¤°à¥‡à¤¸à¥à¤¤._सà¥à¤•à¥à¤°._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बà¥_बà¥à¤°à¥‡_सà¥_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फालà¥à¤¯à¤¾à¤‚] LT',\n nextWeek: '[फà¥à¤¡à¤²à¥‹] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: 'à«©',\n 4: '૪',\n 5: 'à««',\n 6: '૬',\n 7: 'à«',\n 8: 'à«®',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n 'à«©': '3',\n '૪': '4',\n 'à««': '5',\n '૬': '6',\n 'à«': '7',\n 'à«®': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાનà«àª¯à«àª†àª°à«€_ફેબà«àª°à«àª†àª°à«€_મારà«àªš_àªàªªà«àª°àª¿àª²_મે_જૂન_જà«àª²àª¾àªˆ_ઑગસà«àªŸ_સપà«àªŸà«‡àª®à«àª¬àª°_ઑકà«àªŸà«àª¬àª°_નવેમà«àª¬àª°_ડિસેમà«àª¬àª°'.split(\n '_'\n ),\n monthsShort: 'જાનà«àª¯à«._ફેબà«àª°à«._મારà«àªš_àªàªªà«àª°àª¿._મે_જૂન_જà«àª²àª¾._ઑગ._સપà«àªŸà«‡._ઑકà«àªŸà«._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બà«àª§à«àªµàª¾àª°_ગà«àª°à«àªµàª¾àª°_શà«àª•à«àª°àªµàª¾àª°_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બà«àª§à«_ગà«àª°à«_શà«àª•à«àª°_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બà«_ગà«_શà«_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગà«àª¯à«‡',\n LTS: 'A h:mm:ss વાગà«àª¯à«‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગà«àª¯à«‡',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગà«àª¯à«‡',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમà«àª• પળો',\n ss: '%d સેકંડ',\n m: 'àªàª• મિનિટ',\n mm: '%d મિનિટ',\n h: 'àªàª• કલાક',\n hh: '%d કલાક',\n d: 'àªàª• દિવસ',\n dd: '%d દિવસ',\n M: 'àªàª• મહિનો',\n MM: '%d મહિનો',\n y: 'àªàª• વરà«àª·',\n yy: '%d વરà«àª·',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: '×™× ×•×ר_פברו×ר_מרץ_×פריל_מ××™_×™×•× ×™_יולי_×וגוסט_ספטמבר_×וקטובר_× ×•×‘×ž×‘×¨_דצמבר'.split(\n '_'\n ),\n monthsShort: '×™× ×•×³_פבר׳_מרץ_×פר׳_מ××™_×™×•× ×™_יולי_×וג׳_ספט׳_×וק׳_× ×•×‘×³_דצמ׳'.split(\n '_'\n ),\n weekdays: 'ר×שון_×©× ×™_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: '×׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: '×_ב_×’_ד_×”_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[×”×™×•× ×‘Ö¾]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[×תמול ב־]LT',\n lastWeek: '[ביו×] dddd [×”×חרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: '×œ×¤× ×™ %s',\n s: 'מספר ×©× ×™×•×ª',\n ss: '%d ×©× ×™×•×ª',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיי×';\n }\n return number + ' שעות';\n },\n d: 'יו×',\n dd: function (number) {\n if (number === 2) {\n return 'יומיי×';\n }\n return number + ' ימי×';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיי×';\n }\n return number + ' חודשי×';\n },\n y: '×©× ×”',\n yy: function (number) {\n if (number === 2) {\n return '×©× ×ª×™×™×';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' ×©× ×”';\n }\n return number + ' ×©× ×™×';\n },\n },\n meridiemParse: /××—×”\"צ|×œ×¤× ×”\"צ|×חרי הצהריי×|×œ×¤× ×™ הצהריי×|×œ×¤× ×•×ª בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(××—×”\"צ|×חרי הצהריי×|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return '×œ×¤× ×•×ª בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? '×œ×¤× ×”\"צ' : '×œ×¤× ×™ הצהריי×';\n } else if (hour < 18) {\n return isLower ? '××—×”\"צ' : '×חרי הצהריי×';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मारà¥à¤š/i,\n /^अपà¥à¤°à¥ˆ/i,\n /^मई/i,\n /^जून/i,\n /^जà¥à¤²/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अकà¥à¤Ÿà¥‚/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मारà¥à¤š/i,\n /^अपà¥à¤°à¥ˆ/i,\n /^मई/i,\n /^जून/i,\n /^जà¥à¤²/i,\n /^अग/i,\n /^सित/i,\n /^अकà¥à¤Ÿà¥‚/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितमà¥à¤¬à¤°_अकà¥à¤Ÿà¥‚बर_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split(\n '_'\n ),\n standalone: 'जनवरी_फरवरी_मारà¥à¤š_अपà¥à¤°à¥ˆà¤²_मई_जून_जà¥à¤²à¤¾à¤ˆ_अगसà¥à¤¤_सितंबर_अकà¥à¤Ÿà¥‚बर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort: 'जन._फ़र._मारà¥à¤š_अपà¥à¤°à¥ˆ._मई_जून_जà¥à¤²._अग._सित._अकà¥à¤Ÿà¥‚._नव._दिस.'.split(\n '_'\n ),\n weekdays: 'रविवार_सोमवार_मंगलवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ|जà¥à¤²\\.?|अगसà¥à¤¤|अग\\.?|सितमà¥à¤¬à¤°|सितंबर|सित\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर|नव\\.?|दिसमà¥à¤¬à¤°|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex: /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ|जà¥à¤²\\.?|अगसà¥à¤¤|अग\\.?|सितमà¥à¤¬à¤°|सितंबर|सित\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर|नव\\.?|दिसमà¥à¤¬à¤°|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex: /^(जनवरी?|फ़रवरी|फरवरी?|मारà¥à¤š?|अपà¥à¤°à¥ˆà¤²?|मई?|जून?|जà¥à¤²à¤¾à¤ˆ?|अगसà¥à¤¤?|सितमà¥à¤¬à¤°|सितंबर|सित?\\.?|अकà¥à¤Ÿà¥‚बर|अकà¥à¤Ÿà¥‚\\.?|नवमà¥à¤¬à¤°|नवंबर?|दिसमà¥à¤¬à¤°|दिसंबर?)/i,\n\n monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|मारà¥à¤š?|अपà¥à¤°à¥ˆ\\.?|मई?|जून?|जà¥à¤²\\.?|अग\\.?|सित\\.?|अकà¥à¤Ÿà¥‚\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कà¥à¤› ही कà¥à¤·à¤£',\n ss: '%d सेकंड',\n m: 'à¤à¤• मिनट',\n mm: '%d मिनट',\n h: 'à¤à¤• घंटा',\n hh: '%d घंटे',\n d: 'à¤à¤• दिन',\n dd: '%d दिन',\n M: 'à¤à¤• महीने',\n MM: '%d महीने',\n y: 'à¤à¤• वरà¥à¤·',\n yy: '%d वरà¥à¤·',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सà¥à¤¬à¤¹|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सà¥à¤¬à¤¹') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सà¥à¤¬à¤¹';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'sijeÄnja_veljaÄe_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'sijeÄanj_veljaÄa_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[proÅ¡lu] [nedjelju] [u] LT';\n case 3:\n return '[proÅ¡lu] [srijedu] [u] LT';\n case 6:\n return '[proÅ¡le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ¡li] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasárnap hétfÅ‘n kedden szerdán csütörtökön pénteken szombaton'.split(\n ' '\n );\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfÅ‘_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€Õ«_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€Õ«_Õ´Õ¡Ö€Õ¿Õ«_Õ¡ÕºÖ€Õ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸Ö‚Õ¶Õ«Õ½Õ«_Õ°Õ¸Ö‚Õ¬Õ«Õ½Õ«_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«'.split(\n '_'\n ),\n standalone: 'Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€_Õ´Õ¡Ö€Õ¿_Õ¡ÕºÖ€Õ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸Ö‚Õ¶Õ«Õ½_Õ°Õ¸Ö‚Õ¬Õ«Õ½_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€'.split(\n '_'\n ),\n },\n monthsShort: 'Õ°Õ¶Õ¾_ÖƒÕ¿Ö€_Õ´Ö€Õ¿_Õ¡ÕºÖ€_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö…Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿'.split('_'),\n weekdays: 'Õ¯Õ«Ö€Õ¡Õ¯Õ«_Õ¥Ö€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«_Õ¥Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸Ö‚Ö€Õ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©'.split(\n '_'\n ),\n weekdaysShort: 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n weekdaysMin: 'Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Õ©.',\n LLL: 'D MMMM YYYY Õ©., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm',\n },\n calendar: {\n sameDay: '[Õ¡ÕµÕ½Ö…Ö€] LT',\n nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',\n lastDay: '[Õ¥Ö€Õ¥Õ¯] LT',\n nextWeek: function () {\n return 'dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n lastWeek: function () {\n return '[Õ¡Õ¶ÖÕ¡Õ®] dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s Õ°Õ¥Õ¿Õ¸',\n past: '%s Õ¡Õ¼Õ¡Õ»',\n s: 'Õ´Õ« Ö„Õ¡Õ¶Õ« Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n ss: '%d Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶',\n m: 'Ö€Õ¸ÕºÕ¥',\n mm: '%d Ö€Õ¸ÕºÕ¥',\n h: 'ÕªÕ¡Õ´',\n hh: '%d ÕªÕ¡Õ´',\n d: 'Ö…Ö€',\n dd: '%d Ö…Ö€',\n M: 'Õ¡Õ´Õ«Õ½',\n MM: '%d Õ¡Õ´Õ«Õ½',\n y: 'Õ¿Õ¡Ö€Õ«',\n yy: '%d Õ¿Õ¡Ö€Õ«',\n },\n meridiemParse: /Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶/,\n isPM: function (input) {\n return /^(ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡';\n } else if (hour < 12) {\n return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';\n } else if (hour < 17) {\n return 'ÖÕ¥Ö€Õ¥Õ¯Õ¾Õ¡';\n } else {\n return 'Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(Õ«Õ¶|Ö€Õ¤)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-Õ«Õ¶';\n }\n return number + '-Ö€Õ¤';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mÃnúta' : 'mÃnútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mÃnútur' : 'mÃnútum')\n );\n } else if (withoutSuffix) {\n return result + 'mÃnúta';\n }\n return result + 'mÃnútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_aprÃl_maÃ_júnÃ_júlÃ_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maÃ_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[à dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[à gær kl.] LT',\n lastWeek: '[sÃðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s sÃðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: 'ã‹¿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: 'å¹³æˆ',\n narrow: 'ã»',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: 'æ˜å’Œ',\n narrow: 'ã¼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大æ£',\n narrow: 'ã½',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: 'ã¾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元å‰',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(å…ƒ|\\d+)å¹´/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === 'å…ƒ' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_ç«æ›œæ—¥_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n weekdaysMin: 'æ—¥_月_ç«_æ°´_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥ dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥(ddd) HH:mm',\n },\n meridiemParse: /åˆå‰|åˆå¾Œ/i,\n isPM: function (input) {\n return input === 'åˆå¾Œ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'åˆå‰';\n } else {\n return 'åˆå¾Œ';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[æ¥é€±]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}æ—¥/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + 'å¹´';\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1æ—¥',\n dd: '%dæ—¥',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1å¹´',\n yy: '%då¹´',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იáƒáƒœáƒ•áƒáƒ ი_თებერვáƒáƒšáƒ˜_მáƒáƒ ტი_áƒáƒžáƒ ილი_მáƒáƒ˜áƒ¡áƒ˜_ივნისი_ივლისი_áƒáƒ’ვისტáƒ_სექტემბერი_áƒáƒ¥áƒ¢áƒáƒ›áƒ‘ერი_ნáƒáƒ”მბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იáƒáƒœ_თებ_მáƒáƒ _áƒáƒžáƒ _მáƒáƒ˜_ივნ_ივლ_áƒáƒ’ვ_სექ_áƒáƒ¥áƒ¢_ნáƒáƒ”_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირáƒ_áƒáƒ შáƒáƒ‘áƒáƒ—ი_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ი_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ი_ხუთშáƒáƒ‘áƒáƒ—ი_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვი_შáƒáƒ‘áƒáƒ—ი'.split(\n '_'\n ),\n format: 'კვირáƒáƒ¡_áƒáƒ შáƒáƒ‘áƒáƒ—ს_სáƒáƒ›áƒ¨áƒáƒ‘áƒáƒ—ს_áƒáƒ—ხშáƒáƒ‘áƒáƒ—ს_ხუთშáƒáƒ‘áƒáƒ—ს_პáƒáƒ áƒáƒ¡áƒ™áƒ”ვს_შáƒáƒ‘áƒáƒ—ს'.split(\n '_'\n ),\n isFormat: /(წინáƒ|შემდეგ)/,\n },\n weekdaysShort: 'კვი_áƒáƒ შ_სáƒáƒ›_áƒáƒ—ხ_ხუთ_პáƒáƒ _შáƒáƒ‘'.split('_'),\n weekdaysMin: 'კვ_áƒáƒ _სáƒ_áƒáƒ—_ხუ_პáƒ_შáƒ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვáƒáƒš] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინáƒ] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(წáƒáƒ›|წუთ|სáƒáƒáƒ—|წელ|დღ|თვ)(ი|ე)/, function (\n $0,\n $1,\n $2\n ) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(წáƒáƒ›áƒ˜|წუთი|სáƒáƒáƒ—ი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რáƒáƒ›áƒ“ენიმე წáƒáƒ›áƒ˜',\n ss: '%d წáƒáƒ›áƒ˜',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'სáƒáƒáƒ—ი',\n hh: '%d სáƒáƒáƒ—ი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_Ñәуір_мамыр_мауÑым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқÑан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_Ñәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жекÑенбі_дүйÑенбі_ÑейÑенбі_ÑәрÑенбі_бейÑенбі_жұма_Ñенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_Ñей_Ñәр_бей_жұм_Ñен'.split('_'),\n weekdaysMin: 'жк_дй_Ñй_ÑÑ€_бй_жм_Ñн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін Ñағат] LT',\n nextDay: '[Ертең Ñағат] LT',\n nextWeek: 'dddd [Ñағат] LT',\n lastDay: '[Кеше Ñағат] LT',\n lastWeek: '[Өткен аптаның] dddd [Ñағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше Ñекунд',\n ss: '%d Ñекунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір Ñағат',\n hh: '%d Ñағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មáŸážŸáž¶_ឧសភា_មិážáž»áž“ា_កក្កដា_សីហា_កញ្ញា_ážáž»áž›áž¶_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិážáŸ’áž™_áž…áŸáž“្ទ_អង្គារ_ពុធ_ព្រហស្បážáž·áŸ_សុក្រ_សៅរáŸ'.split('_'),\n weekdaysShort: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_áž…_អ_áž–_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ážáŸ’ងៃនáŸáŸ‡ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្ážáž¶áž áŸáž˜áž»áž“] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀáž',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយážáŸ’ងៃ',\n dd: '%d ážáŸ’ងៃ',\n M: 'មួយážáŸ‚',\n MM: '%d ážáŸ‚',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: 'à³',\n 8: 'à³®',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n 'à³': '7',\n 'à³®': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬà³à²°à²µà²°à²¿_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚ಬರà³_ಅಕà³à²Ÿà³†à³‚ೕಬರà³_ನವೆಂಬರà³_ಡಿಸೆಂಬರà³'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ಫೆಬà³à²°_ಮಾರà³à²šà³_à²à²ªà³à²°à²¿à²²à³_ಮೇ_ಜೂನà³_ಜà³à²²à³†à³–_ಆಗಸà³à²Ÿà³_ಸೆಪà³à²Ÿà³†à²‚_ಅಕà³à²Ÿà³†à³‚ೕ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'à²à²¾à²¨à³à²µà²¾à²°_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬà³à²§à²µà²¾à²°_ಗà³à²°à³à²µà²¾à²°_ಶà³à²•à³à²°à²µà²¾à²°_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'à²à²¾à²¨à³_ಸೋಮ_ಮಂಗಳ_ಬà³à²§_ಗà³à²°à³_ಶà³à²•à³à²°_ಶನಿ'.split('_'),\n weekdaysMin: 'à²à²¾_ಸೋ_ಮಂ_ಬà³_ಗà³_ಶà³_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದà³] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನà³à²¨à³†] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವೠಕà³à²·à²£à²—ಳà³',\n ss: '%d ಸೆಕೆಂಡà³à²—ಳà³',\n m: 'ಒಂದೠನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದೠಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದೠದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದೠತಿಂಗಳà³',\n MM: '%d ತಿಂಗಳà³',\n y: 'ಒಂದೠವರà³à²·',\n yy: '%d ವರà³à²·',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬à³à³®à³¯à³¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತà³à²°à²¿|ಬೆಳಿಗà³à²—ೆ|ಮಧà³à²¯à²¾à²¹à³à²¨|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತà³à²°à²¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗà³à²—ೆ') {\n return hour;\n } else if (meridiem === 'ಮಧà³à²¯à²¾à²¹à³à²¨') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತà³à²°à²¿';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗà³à²—ೆ';\n } else if (hour < 17) {\n return 'ಮಧà³à²¯à²¾à²¹à³à²¨';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತà³à²°à²¿';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split('_'),\n monthsShort: '1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”'.split(\n '_'\n ),\n weekdays: 'ì¼ìš”ì¼_월요ì¼_화요ì¼_수요ì¼_목요ì¼_금요ì¼_í† ìš”ì¼'.split('_'),\n weekdaysShort: 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n weekdaysMin: 'ì¼_ì›”_í™”_수_목_금_í† '.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYYë…„ MMMM Dì¼',\n LLL: 'YYYYë…„ MMMM Dì¼ A h:mm',\n LLLL: 'YYYYë…„ MMMM Dì¼ dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYYë…„ MMMM Dì¼',\n lll: 'YYYYë…„ MMMM Dì¼ A h:mm',\n llll: 'YYYYë…„ MMMM Dì¼ dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: 'ë‚´ì¼ LT',\n nextWeek: 'dddd LT',\n lastDay: 'ì–´ì œ LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s ì „',\n s: '몇 ì´ˆ',\n ss: '%dì´ˆ',\n m: '1분',\n mm: '%d분',\n h: 'í•œ 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%dì¼',\n M: 'í•œ 달',\n MM: '%d달',\n y: 'ì¼ ë…„',\n yy: '%dë…„',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ì¼|ì›”|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ì¼';\n case 'M':\n return number + 'ì›”';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /ì˜¤ì „|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? 'ì˜¤ì „' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù ',\n },\n numberMap = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'Øوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays: 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysMin: 'ÛŒ_د_س_Ú†_Ù¾_Ù‡_Ø´'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك Ú•Û†Ú˜',\n dd: '%d Ú•Û†Ú˜',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'Ñнв_фев_март_апр_май_июнь_июль_авг_Ñен_окт_ноÑ_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн Ñаат] LT',\n nextDay: '[Ðртең Ñаат] LT',\n nextWeek: 'dddd [Ñаат] LT',\n lastDay: '[КечÑÑ Ñаат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [Ñаат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече Ñекунд',\n ss: '%d Ñекунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир Ñаат',\n hh: '%d Ñаат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split(\n '_'\n ),\n monthsShort: 'ມັງàºàºàº™_àºàº¸àº¡àºžàº²_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_àºà»àº¥àº°àºàº»àº”_ສິງຫາ_àºàº±àº™àºàº²_ຕຸລາ_ພະຈິàº_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'àºàº²àº—ິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_àºàº±àº‡àº„ານ_ພຸດ_ພະຫັດ_ສຸàº_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_àºàº„_ພ_ພຫ_ສàº_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕàºàº™à»€àºŠàº»à»‰àº²|ຕàºàº™à»àº¥àº‡/,\n isPM: function (input) {\n return input === 'ຕàºàº™à»àº¥àº‡';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕàºàº™à»€àºŠàº»à»‰àº²';\n } else {\n return 'ຕàºàº™à»àº¥àº‡';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້àºàº·à»ˆàº™à»€àº§àº¥àº²] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[à»àº¥à»‰àº§àº™àºµà»‰à»€àº§àº¥àº²] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'àºàºµàº %s',\n past: '%sຜ່ານມາ',\n s: 'ບà»à»ˆà»€àº—ົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືàºàº™',\n MM: '%d ເດືàºàº™',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas MozÅ«ras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundÄ—_sekundžių_sekundes',\n m: 'minutÄ—_minutÄ—s_minutÄ™',\n mm: 'minutÄ—s_minuÄių_minutes',\n h: 'valanda_valandos_valandÄ…',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dienÄ…',\n dd: 'dienos_dienų_dienas',\n M: 'mÄ—nuo_mÄ—nesio_mÄ—nesį',\n MM: 'mÄ—nesiai_mÄ—nesių_mÄ—nesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundÄ—s';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjÅ«Äio_rugsÄ—jo_spalio_lapkriÄio_gruodžio'.split(\n '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsÄ—jis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split(\n '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Å iandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[PraÄ—jusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieÅ¡ %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : JÄnis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundÄ“m_sekunde_sekundes'.split('_'),\n m: 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n mm: 'minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes'.split('_'),\n h: 'stundas_stundÄm_stunda_stundas'.split('_'),\n hh: 'stundas_stundÄm_stunda_stundas'.split('_'),\n d: 'dienas_dienÄm_diena_dienas'.split('_'),\n dd: 'dienas_dienÄm_diena_dienas'.split('_'),\n M: 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n MM: 'mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minÅ«te\", \"3 minÅ«tes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minÅ«tes\" as in \"pÄ“c 21 minÅ«tes\".\n // E.g. \"3 minÅ«tÄ“m\" as in \"pÄ“c 3 minÅ«tÄ“m\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažÄm sekundÄ“m';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvÄris_februÄris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svÄ“tdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Å odien pulksten] LT',\n nextDay: '[RÄ«t pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[PagÄjuÅ¡Ä] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pÄ“c %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag NikaÄ <miodrag@restartit.me> : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄe u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[proÅ¡le] [nedjelje] [u] LT',\n '[proÅ¡log] [ponedjeljka] [u] LT',\n '[proÅ¡log] [utorka] [u] LT',\n '[proÅ¡le] [srijede] [u] LT',\n '[proÅ¡log] [Äetvrtka] [u] LT',\n '[proÅ¡log] [petka] [u] LT',\n '[proÅ¡le] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tÄte_Hui-tanguru_PoutÅ«-te-rangi_Paenga-whÄwhÄ_Haratua_Pipiri_HÅngoingoi_Here-turi-kÅkÄ_Mahuru_Whiringa-Ä-nuku_Whiringa-Ä-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_HÅngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'RÄtapu_Mane_TÅ«rei_Wenerei_TÄite_Paraire_HÄtarei'.split('_'),\n weekdaysShort: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n weekdaysMin: 'Ta_Ma_TÅ«_We_TÄi_Pa_HÄ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hÄ“kona ruarua',\n ss: '%d hÄ“kona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_авгуÑÑ‚_Ñептември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_Ñеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_Ñреда_четврток_петок_Ñабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_Ñре_чет_пет_Ñаб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ÑÑ€_че_пе_Ña'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Ð”ÐµÐ½ÐµÑ Ð²Ð¾] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку Ñекунди',\n ss: '%d Ñекунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден чаÑ',\n hh: '%d чаÑа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден меÑец',\n MM: '%d меÑеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനàµà´µà´°à´¿_ഫെബàµà´°àµà´µà´°à´¿_മാർചàµà´šàµ_à´à´ªàµà´°à´¿àµ½_മേയàµ_ജൂൺ_ജൂലൈ_à´“à´—à´¸àµà´±àµà´±àµ_സെപàµà´±àµà´±à´‚ബർ_à´’à´•àµà´Ÿàµ‹à´¬àµ¼_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort: 'ജനàµ._ഫെബàµà´°àµ._മാർ._à´à´ªàµà´°à´¿._മേയàµ_ജൂൺ_ജൂലൈ._à´“à´—._സെപàµà´±àµà´±._à´’à´•àµà´Ÿàµ‹._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ഞായറാഴàµà´š_തിങàµà´•à´³à´¾à´´àµà´š_ചൊവàµà´µà´¾à´´àµà´š_à´¬àµà´§à´¨à´¾à´´àµà´š_à´µàµà´¯à´¾à´´à´¾à´´àµà´š_വെളàµà´³à´¿à´¯à´¾à´´àµà´š_ശനിയാഴàµà´š'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങàµà´•àµ¾_ചൊവàµà´µ_à´¬àµà´§àµ»_à´µàµà´¯à´¾à´´à´‚_വെളàµà´³à´¿_ശനി'.split('_'),\n weekdaysMin: 'à´žà´¾_തി_ചൊ_à´¬àµ_à´µàµà´¯à´¾_വെ_à´¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -à´¨àµ',\n LTS: 'A h:mm:ss -à´¨àµ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -à´¨àµ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -à´¨àµ',\n },\n calendar: {\n sameDay: '[ഇനàµà´¨àµ] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇനàµà´¨à´²àµ†] LT',\n lastWeek: '[à´•à´´à´¿à´žàµà´ž] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s à´•à´´à´¿à´žàµà´žàµ',\n past: '%s à´®àµàµ»à´ªàµ',\n s: 'അൽപ നിമിഷങàµà´™àµ¾',\n ss: '%d സെകàµà´•àµ»à´¡àµ',\n m: 'ഒരൠമിനിറàµà´±àµ',\n mm: '%d മിനിറàµà´±àµ',\n h: 'ഒരൠമണികàµà´•àµ‚ർ',\n hh: '%d മണികàµà´•àµ‚ർ',\n d: 'ഒരൠദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരൠമാസം',\n MM: '%d മാസം',\n y: 'ഒരൠവർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാതàµà´°à´¿|രാവിലെ|ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ|വൈകàµà´¨àµà´¨àµ‡à´°à´‚|രാതàµà´°à´¿/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാതàµà´°à´¿' && hour >= 4) ||\n meridiem === 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ' ||\n meridiem === 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാതàµà´°à´¿';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉചàµà´š à´•à´´à´¿à´žàµà´žàµ';\n } else if (hour < 20) {\n return 'വൈകàµà´¨àµà´¨àµ‡à´°à´‚';\n } else {\n return 'രാതàµà´°à´¿';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'Ñ…ÑдхÑн Ñекунд' : 'Ñ…ÑдхÑн Ñекундын';\n case 'ss':\n return number + (withoutSuffix ? ' Ñекунд' : ' Ñекундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' Ñар' : ' Ñарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'ÐÑгдүгÑÑÑ€ Ñар_Хоёрдугаар Ñар_Гуравдугаар Ñар_ДөрөвдүгÑÑÑ€ Ñар_Тавдугаар Ñар_Зургадугаар Ñар_Долдугаар Ñар_Ðаймдугаар Ñар_ЕÑдүгÑÑÑ€ Ñар_Ðравдугаар Ñар_Ðрван нÑгдүгÑÑÑ€ Ñар_Ðрван хоёрдугаар Ñар'.split(\n '_'\n ),\n monthsShort: '1 Ñар_2 Ñар_3 Ñар_4 Ñар_5 Ñар_6 Ñар_7 Ñар_8 Ñар_9 Ñар_10 Ñар_11 Ñар_12 Ñар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ÐÑм_Даваа_ÐœÑгмар_Лхагва_ПүрÑв_БааÑан_БÑмба'.split('_'),\n weekdaysShort: 'ÐÑм_Дав_ÐœÑг_Лха_Пүр_Баа_БÑм'.split('_'),\n weekdaysMin: 'ÐÑ_Да_ÐœÑ_Лх_Пү_Ба_БÑ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /Ò®Ó¨|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ò®Ó¨';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[ИрÑÑ…] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[ӨнгөрÑөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'à¤à¤• मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'à¤à¤• तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'à¤à¤• दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'à¤à¤• महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'à¤à¤• वरà¥à¤·';\n break;\n case 'yy':\n output = '%d वरà¥à¤·à¥‡';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'à¤à¤•à¤¾ मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'à¤à¤•à¤¾ तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'à¤à¤•à¤¾ दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'à¤à¤•à¤¾ महिनà¥à¤¯à¤¾';\n break;\n case 'MM':\n output = '%d महिनà¥à¤¯à¤¾à¤‚';\n break;\n case 'y':\n output = 'à¤à¤•à¤¾ वरà¥à¤·à¤¾';\n break;\n case 'yy':\n output = '%d वरà¥à¤·à¤¾à¤‚';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेबà¥à¤°à¥à¤µà¤¾à¤°à¥€_मारà¥à¤š_à¤à¤ªà¥à¤°à¤¿à¤²_मे_जून_जà¥à¤²à¥ˆ_ऑगसà¥à¤Ÿ_सपà¥à¤Ÿà¥‡à¤‚बर_ऑकà¥à¤Ÿà¥‹à¤¬à¤°_नोवà¥à¤¹à¥‡à¤‚बर_डिसेंबर'.split(\n '_'\n ),\n monthsShort: 'जाने._फेबà¥à¤°à¥._मारà¥à¤š._à¤à¤ªà¥à¤°à¤¿._मे._जून._जà¥à¤²à¥ˆ._ऑग._सपà¥à¤Ÿà¥‡à¤‚._ऑकà¥à¤Ÿà¥‹._नोवà¥à¤¹à¥‡à¤‚._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बà¥à¤§à¤µà¤¾à¤°_गà¥à¤°à¥‚वार_शà¥à¤•à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बà¥à¤§_गà¥à¤°à¥‚_शà¥à¤•à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बà¥_गà¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उदà¥à¤¯à¤¾] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमधà¥à¤¯à¥‡',\n past: '%sपूरà¥à¤µà¥€',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दà¥à¤ªà¤¾à¤°à¥€|सायंकाळी|रातà¥à¤°à¥€/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दà¥à¤ªà¤¾à¤°à¥€' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रातà¥à¤°à¥€'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दà¥à¤ªà¤¾à¤°à¥€';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रातà¥à¤°à¥€';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_DiÄ‹embru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_DiÄ‹'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'Ä¡urnata',\n dd: '%d Ä¡ranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: 'á',\n 2: 'á‚',\n 3: 'áƒ',\n 4: 'á„',\n 5: 'á…',\n 6: 'á†',\n 7: 'á‡',\n 8: 'áˆ',\n 9: 'á‰',\n 0: 'á€',\n },\n numberMap = {\n 'á': '1',\n 'á‚': '2',\n 'áƒ': '3',\n 'á„': '4',\n 'á…': '5',\n 'á†': '6',\n 'á‡': '7',\n 'áˆ': '8',\n 'á‰': '9',\n 'á€': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နá€á€«á€›á€®_ဖေဖော်á€á€«á€›á€®_မá€á€º_ဧပြီ_မေ_ဇွန်_ဇူလá€á€¯á€„်_သြဂုá€á€º_စက်á€á€„်ဘာ_အောက်á€á€á€¯á€˜á€¬_နá€á€¯á€á€„်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မá€á€º_ပြီ_မေ_ဇွန်_လá€á€¯á€„်_သြ_စက်_အောက်_နá€á€¯_ဒီ'.split('_'),\n weekdays: 'á€á€”င်္ဂနွေ_á€á€”င်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပá€á€±á€¸_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးá€á€²á€·á€žá€±á€¬] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်á€á€²á€·á€žá€±á€¬ %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'á€á€…်မá€á€”စ်',\n mm: '%d မá€á€”စ်',\n h: 'á€á€…်နာရီ',\n hh: '%d နာရီ',\n d: 'á€á€…်ရက်',\n dd: '%d ရက်',\n M: 'á€á€…်လ',\n MM: '%d လ',\n y: 'á€á€…်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[áá‚áƒá„á…á†á‡áˆá‰á€]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian BokmÃ¥l [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेबà¥à¤°à¥à¤µà¤°à¥€_मारà¥à¤š_अपà¥à¤°à¤¿à¤²_मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ_अगषà¥à¤Ÿ_सेपà¥à¤Ÿà¥‡à¤®à¥à¤¬à¤°_अकà¥à¤Ÿà¥‹à¤¬à¤°_नोà¤à¥‡à¤®à¥à¤¬à¤°_डिसेमà¥à¤¬à¤°'.split(\n '_'\n ),\n monthsShort: 'जन._फेबà¥à¤°à¥._मारà¥à¤š_अपà¥à¤°à¤¿._मई_जà¥à¤¨_जà¥à¤²à¤¾à¤ˆ._अग._सेपà¥à¤Ÿ._अकà¥à¤Ÿà¥‹._नोà¤à¥‡._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङà¥à¤—लबार_बà¥à¤§à¤¬à¤¾à¤°_बिहिबार_शà¥à¤•à¥à¤°à¤¬à¤¾à¤°_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङà¥à¤—ल._बà¥à¤§._बिहि._शà¥à¤•à¥à¤°._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बà¥._बि._शà¥._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउà¤à¤¸à¥‹|साà¤à¤/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउà¤à¤¸à¥‹') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साà¤à¤') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउà¤à¤¸à¥‹';\n } else if (hour < 20) {\n return 'साà¤à¤';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[à¤à¥‹à¤²à¤¿] LT',\n nextWeek: '[आउà¤à¤¦à¥‹] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गà¤à¤•à¥‹] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही कà¥à¤·à¤£',\n ss: '%d सेकेणà¥à¤¡',\n m: 'à¤à¤• मिनेट',\n mm: '%d मिनेट',\n h: 'à¤à¤• घणà¥à¤Ÿà¤¾',\n hh: '%d घणà¥à¤Ÿà¤¾',\n d: 'à¤à¤• दिन',\n dd: '%d दिन',\n M: 'à¤à¤• महिना',\n MM: '%d महिना',\n y: 'à¤à¤• बरà¥à¤·',\n yy: '%d बरà¥à¤·',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._mÃ¥._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_mÃ¥_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I gÃ¥r klokka] LT',\n lastWeek: '[FøregÃ¥ande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'eit Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone: 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquà %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: 'à©©',\n 4: '੪',\n 5: 'à©«',\n 6: '੬',\n 7: 'à©',\n 8: 'à©®',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n 'à©©': '3',\n '੪': '4',\n 'à©«': '5',\n '੬': '6',\n 'à©': '7',\n 'à©®': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪà©à¨°à©ˆà¨²_ਮਈ_ਜੂਨ_ਜà©à¨²à¨¾à¨ˆ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'à¨à¨¤à¨µà¨¾à¨°_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬà©à¨§à¨µà¨¾à¨°_ਵੀਰਵਾਰ_ਸ਼à©à©±à¨•à¨°à¨µà¨¾à¨°_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'à¨à¨¤_ਸੋਮ_ਮੰਗਲ_ਬà©à¨§_ਵੀਰ_ਸ਼à©à¨•à¨°_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕà©à¨ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬à©à©®à©¯à©¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦà©à¨ªà¨¹à¨¿à¨°|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦà©à¨ªà¨¹à¨¿à¨°') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦà©à¨ªà¨¹à¨¿à¨°';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative = 'styczeÅ„_luty_marzec_kwiecieÅ„_maj_czerwiec_lipiec_sierpieÅ„_wrzesieÅ„_październik_listopad_grudzieÅ„'.split(\n '_'\n ),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅ›nia_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutÄ™';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinÄ™';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiÄ…ce' : 'miesiÄ™cy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'niedziela_poniedziaÅ‚ek_wtorek_Å›roda_czwartek_piÄ…tek_sobota'.split(\n '_'\n ),\n weekdaysShort: 'ndz_pon_wt_Å›r_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Åšr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DziÅ› o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielÄ™ o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W Å›rodÄ™ o] LT';\n\n case 6:\n return '[W sobotÄ™ o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszÅ‚Ä… niedzielÄ™ o] LT';\n case 3:\n return '[W zeszÅ‚Ä… Å›rodÄ™ o] LT';\n case 6:\n return '[W zeszÅ‚Ä… sobotÄ™ o] LT';\n default:\n return '[W zeszÅ‚y] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzieÅ„',\n dd: '%d dni',\n w: 'tydzieÅ„',\n ww: translate,\n M: 'miesiÄ…c',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [à s] LT' // Saturday + Sunday\n : '[Última] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marÈ›i_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунды_Ñекунд' : 'Ñекунду_Ñекунды_Ñекунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'чаÑ_чаÑа_чаÑов',\n dd: 'день_днÑ_дней',\n ww: 'неделÑ_недели_недель',\n MM: 'меÑÑц_меÑÑца_меÑÑцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^Ñнв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йÑ]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^Ñен/i,\n /^окт/i,\n /^ноÑ/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Ð¡Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÑÑцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'ÑнварÑ_февралÑ_марта_апрелÑ_маÑ_июнÑ_июлÑ_авгуÑта_ÑентÑбрÑ_октÑбрÑ_ноÑбрÑ_декабрÑ'.split(\n '_'\n ),\n standalone: 'Ñнварь_февраль_март_апрель_май_июнь_июль_авгуÑÑ‚_ÑентÑбрь_октÑбрь_ноÑбрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой ÑмыÑл менÑÑ‚ÑŒ букву на точку?\n format: 'Ñнв._февр._мар._апр._маÑ_июнÑ_июлÑ_авг._Ñент._окт._ноÑб._дек.'.split(\n '_'\n ),\n standalone: 'Ñнв._февр._март_апр._май_июнь_июль_авг._Ñент._окт._ноÑб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone: 'воÑкреÑенье_понедельник_вторник_Ñреда_четверг_пÑтница_Ñуббота'.split(\n '_'\n ),\n format: 'воÑкреÑенье_понедельник_вторник_Ñреду_четверг_пÑтницу_Ñубботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|Ñледующую|Ñту)? ?] ?dddd/,\n },\n weekdaysShort: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'вÑ_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по три буквы, Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ…, по 4 буквы, ÑÐ¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð¸Ñ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¾Ð¹ и без точки\n monthsRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿Ñ€ÐµÐ´Ñ‹Ð´ÑƒÑ‰ÐµÐ³Ð¾\n monthsShortRegex: /^(Ñнвар[ÑŒÑ]|Ñнв\\.?|феврал[ÑŒÑ]|февр?\\.?|марта?|мар\\.?|апрел[ÑŒÑ]|апр\\.?|ма[йÑ]|июн[ÑŒÑ]|июн\\.?|июл[ÑŒÑ]|июл\\.?|авгуÑта?|авг\\.?|ÑентÑбр[ÑŒÑ]|Ñент?\\.?|октÑбр[ÑŒÑ]|окт\\.?|ноÑбр[ÑŒÑ]|ноÑб?\\.?|декабр[ÑŒÑ]|дек\\.?)/i,\n\n // полные Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex: /^(Ñнвар[ÑÑŒ]|феврал[ÑÑŒ]|марта?|апрел[ÑÑŒ]|ма[Ñй]|июн[ÑÑŒ]|июл[ÑÑŒ]|авгуÑта?|ÑентÑбр[ÑÑŒ]|октÑбр[ÑÑŒ]|ноÑбр[ÑÑŒ]|декабр[ÑÑŒ])/i,\n\n // Выражение, которое ÑоответÑтвует только Ñокращённым формам\n monthsShortStrictRegex: /^(Ñнв\\.|февр?\\.|мар[Ñ‚.]|апр\\.|ма[Ñй]|июн[ÑŒÑ.]|июл[ÑŒÑ.]|авг\\.|Ñент?\\.|окт\\.|ноÑб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[СегоднÑ, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ Ñледующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ Ñледующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ Ñледующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Ð’ прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð’ прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð’ прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Ð’] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'неÑколько Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'чаÑ',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделÑ',\n ww: relativeTimeWithPlural,\n M: 'меÑÑц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|днÑ|вечера/i,\n isPM: function (input) {\n return /^(днÑ|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|Ñ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-Ñ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'Ùيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءÙ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ddddØŒ D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبØ|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين Ù‡Ùتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل Ù‡Ùتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'Ù‡Úª منٽ',\n mm: '%d منٽ',\n h: 'Ù‡Úª ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'Ù‡Úª Úينهن',\n dd: '%d Úينهن',\n M: 'Ù‡Úª مهينو',\n MM: '%d مهينا',\n y: 'Ù‡Úª سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : BÃ¥rd Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'oÄ‘Ä‘ajagemánnu_guovvamánnu_njukÄamánnu_cuoÅ‹ománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_ÄakÄamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort: 'oÄ‘Ä‘j_guov_njuk_cuo_mies_geas_suoi_borg_ÄakÄ_golg_skáb_juov'.split(\n '_'\n ),\n weekdays: 'sotnabeaivi_vuossárga_maÅ‹Å‹ebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maÅ‹_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maÅ‹it %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවà·à¶»à·’_පෙබරවà·à¶»à·’_මà·à¶»à·Šà¶à·”_අප්â€à¶»à·šà¶½à·Š_මà·à¶ºà·’_ජූනි_ජූලි_අගà·à·ƒà·Šà¶à·”_à·ƒà·à¶´à·Šà¶à·à¶¸à·Šà¶¶à¶»à·Š_ඔක්à¶à·à¶¶à¶»à·Š_නොවà·à¶¸à·Šà¶¶à¶»à·Š_දෙසà·à¶¸à·Šà¶¶à¶»à·Š'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මà·à¶»à·Š_අප්_මà·à¶ºà·’_ජූනි_ජූලි_අගà·_à·ƒà·à¶´à·Š_ඔක්_නොවà·_දෙසà·'.split(\n '_'\n ),\n weekdays: 'ඉරිදà·_සඳුදà·_අඟහරුවà·à¶¯à·_බදà·à¶¯à·_බ්â€à¶»à·„ස්පà¶à·’න්දà·_සිකුරà·à¶¯à·_සෙනසුරà·à¶¯à·'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදà·_බ්â€à¶»à·„_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_à·ƒ_අ_බ_බ්â€à¶»_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [à·€à·à¶±à·’] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'à¶à¶à·Šà¶´à¶» කිහිපය',\n ss: 'à¶à¶à·Šà¶´à¶» %d',\n m: 'මිනිà¶à·Šà¶à·”à·€',\n mm: 'මිනිà¶à·Šà¶à·” %d',\n h: 'පà·à¶º',\n hh: 'පà·à¶º %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මà·à·ƒà¶º',\n MM: 'මà·à·ƒ %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} à·€à·à¶±à·’/,\n ordinal: function (number) {\n return number + ' à·€à·à¶±à·’';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.à·€|ප.à·€./,\n isPM: function (input) {\n return input === 'ප.à·€.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.à·€.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.à·€.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodÃn');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dnÃ');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo Å¡tvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[vÄera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert SedovÅ¡ek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[vÄeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejÅ¡njo] [nedeljo] [ob] LT';\n case 3:\n return '[prejÅ¡njo] [sredo] [ob] LT';\n case 6:\n return '[prejÅ¡njo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejÅ¡nji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Äez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_Äetvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._Äet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_Äe_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juÄe u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[proÅ¡le] [nedelje] [u] LT',\n '[proÅ¡log] [ponedeljka] [u] LT',\n '[proÅ¡log] [utorka] [u] LT',\n '[proÅ¡le] [srede] [u] LT',\n '[proÅ¡log] [Äetvrtka] [u] LT',\n '[proÅ¡log] [petka] [u] LT',\n '[proÅ¡le] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan JanaÄković<milanjanackovic@gmail.com> : https://github.com/milan-j\n//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['Ñекунда', 'Ñекунде', 'Ñекунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један Ñат', 'једног Ñата'],\n hh: ['Ñат', 'Ñата', 'Ñати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['меÑец', 'меÑеца', 'меÑеци'],\n yy: ['година', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_авгуÑÑ‚_Ñептембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._Ñеп._окт._нов._дец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_Ñреда_четвртак_петак_Ñубота'.split('_'),\n weekdaysShort: 'нед._пон._уто._Ñре._чет._пет._Ñуб.'.split('_'),\n weekdaysMin: 'не_по_ут_ÑÑ€_че_пе_Ñу'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[Ð´Ð°Ð½Ð°Ñ Ñƒ] LT',\n nextDay: '[Ñутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [Ñреду] [у] LT';\n case 6:\n return '[у] [Ñуботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [Ñреде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [Ñуботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико Ñекунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'дан',\n dd: translator.translate,\n M: 'меÑец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mÃ¥n_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_mÃ¥_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[IgÃ¥r] LT',\n nextWeek: '[PÃ¥] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'nÃ¥gra sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: 'à¯',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n 'à¯': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_பிபà¯à®°à®µà®°à®¿_மாரà¯à®šà¯_à®à®ªà¯à®°à®²à¯_மே_ஜூனà¯_ஜூலை_ஆகஸà¯à®Ÿà¯_செபà¯à®Ÿà¯†à®®à¯à®ªà®°à¯_அகà¯à®Ÿà¯‡à®¾à®ªà®°à¯_நவமà¯à®ªà®°à¯_டிசமà¯à®ªà®°à¯'.split(\n '_'\n ),\n weekdays: 'ஞாயிறà¯à®±à¯à®•à¯à®•à®¿à®´à®®à¯ˆ_திஙà¯à®•à®Ÿà¯à®•à®¿à®´à®®à¯ˆ_செவà¯à®µà®¾à®¯à¯à®•à®¿à®´à®®à¯ˆ_பà¯à®¤à®©à¯à®•à®¿à®´à®®à¯ˆ_வியாழகà¯à®•à®¿à®´à®®à¯ˆ_வெளà¯à®³à®¿à®•à¯à®•à®¿à®´à®®à¯ˆ_சனிகà¯à®•à®¿à®´à®®à¯ˆ'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறà¯_திஙà¯à®•à®³à¯_செவà¯à®µà®¾à®¯à¯_பà¯à®¤à®©à¯_வியாழனà¯_வெளà¯à®³à®¿_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பà¯_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இனà¯à®±à¯] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேறà¯à®±à¯] LT',\n lastWeek: '[கடநà¯à®¤ வாரமà¯] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இலà¯',\n past: '%s à®®à¯à®©à¯',\n s: 'ஒர௠சில விநாடிகளà¯',\n ss: '%d விநாடிகளà¯',\n m: 'ஒர௠நிமிடமà¯',\n mm: '%d நிமிடஙà¯à®•à®³à¯',\n h: 'ஒர௠மணி நேரமà¯',\n hh: '%d மணி நேரமà¯',\n d: 'ஒர௠நாளà¯',\n dd: '%d நாடà¯à®•à®³à¯',\n M: 'ஒர௠மாதமà¯',\n MM: '%d மாதஙà¯à®•à®³à¯',\n y: 'ஒர௠வரà¯à®Ÿà®®à¯',\n yy: '%d ஆணà¯à®Ÿà¯à®•à®³à¯',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வதà¯/,\n ordinal: function (number) {\n return number + 'வதà¯';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬à¯à¯®à¯¯à¯¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமமà¯|வைகறை|காலை|நணà¯à®ªà®•à®²à¯|எறà¯à®ªà®¾à®Ÿà¯|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமமà¯';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நணà¯à®ªà®•à®²à¯'; // நணà¯à®ªà®•à®²à¯\n } else if (hour < 18) {\n return ' எறà¯à®ªà®¾à®Ÿà¯'; // எறà¯à®ªà®¾à®Ÿà¯\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமமà¯';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமமà¯') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நணà¯à®ªà®•à®²à¯') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_à°«à°¿à°¬à±à°°à°µà°°à°¿_మారà±à°šà°¿_à°à°ªà±à°°à°¿à°²à±_మే_జూనà±_à°œà±à°²à±ˆ_ఆగసà±à°Ÿà±_సెపà±à°Ÿà±†à°‚బరà±_à°…à°•à±à°Ÿà±‹à°¬à°°à±_నవంబరà±_డిసెంబరà±'.split(\n '_'\n ),\n monthsShort: 'జన._à°«à°¿à°¬à±à°°._మారà±à°šà°¿_à°à°ªà±à°°à°¿._మే_జూనà±_à°œà±à°²à±ˆ_ఆగ._సెపà±._à°…à°•à±à°Ÿà±‹._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_à°¬à±à°§à°µà°¾à°°à°‚_à°—à±à°°à±à°µà°¾à°°à°‚_à°¶à±à°•à±à°°à°µà°¾à°°à°‚_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_à°¬à±à°§_à°—à±à°°à±_à°¶à±à°•à±à°°_శని'.split('_'),\n weekdaysMin: 'à°†_సో_మం_à°¬à±_à°—à±_à°¶à±_à°¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడà±] LT',\n nextDay: '[రేపà±] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నినà±à°¨] LT',\n lastWeek: '[à°—à°¤] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s à°•à±à°°à°¿à°¤à°‚',\n s: 'కొనà±à°¨à°¿ à°•à±à°·à°£à°¾à°²à±',\n ss: '%d సెకనà±à°²à±',\n m: 'à°’à°• నిమిషం',\n mm: '%d నిమిషాలà±',\n h: 'à°’à°• à°—à°‚à°Ÿ',\n hh: '%d à°—à°‚à°Ÿà°²à±',\n d: 'à°’à°• రోజà±',\n dd: '%d రోజà±à°²à±',\n M: 'à°’à°• నెల',\n MM: '%d నెలలà±',\n y: 'à°’à°• సంవతà±à°¸à°°à°‚',\n yy: '%d సంవతà±à°¸à°°à°¾à°²à±',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}à°µ/,\n ordinal: '%dà°µ',\n meridiemParse: /రాతà±à°°à°¿|ఉదయం|మధà±à°¯à°¾à°¹à±à°¨à°‚|సాయంతà±à°°à°‚/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాతà±à°°à°¿') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధà±à°¯à°¾à°¹à±à°¨à°‚') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంతà±à°°à°‚') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాతà±à°°à°¿';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధà±à°¯à°¾à°¹à±à°¨à°‚';\n } else if (hour < 20) {\n return 'సాయంతà±à°°à°‚';\n } else {\n return 'రాతà±à°°à°¿';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'Ñнвари_феврали_марти_апрели_майи_июни_июли_авгуÑти_ÑентÑбри_октÑбри_ноÑбри_декабри'.split(\n '_'\n ),\n standalone: 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Ñкшанбе_душанбе_Ñешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'Ñшб_дшб_Ñшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'Ñш_дш_Ñш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз Ñоати] LT',\n nextDay: '[Фардо Ñоати] LT',\n lastDay: '[Дирӯз Ñоати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оÑнда Ñоати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта Ñоати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'Ñкчанд ÑониÑ',\n m: 'Ñк дақиқа',\n mm: '%d дақиқа',\n h: 'Ñк Ñоат',\n hh: '%d Ñоат',\n d: 'Ñк рӯз',\n dd: '%d рӯз',\n M: 'Ñк моҳ',\n MM: '%d моҳ',\n y: 'Ñк Ñол',\n yy: '%d Ñол',\n },\n meridiemParse: /шаб|Ñубҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'Ñубҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'Ñубҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มà¸à¸£à¸²à¸„ม_à¸à¸¸à¸¡à¸ าพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_à¸à¸£à¸à¸Žà¸²à¸„ม_สิงหาคม_à¸à¸±à¸™à¸¢à¸²à¸¢à¸™_ตุลาคม_พฤศจิà¸à¸²à¸¢à¸™_ธันวาคม'.split(\n '_'\n ),\n monthsShort: 'ม.ค._à¸.พ._มี.ค._เม.ย._พ.ค._มิ.ย._à¸.ค._ส.ค._à¸.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัสบดี_ศุà¸à¸£à¹Œ_เสาร์'.split('_'),\n weekdaysShort: 'à¸à¸²à¸—ิตย์_จันทร์_à¸à¸±à¸‡à¸„าร_พุธ_พฤหัส_ศุà¸à¸£à¹Œ_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'à¸à¸²._จ._à¸._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'à¸à¹ˆà¸à¸™à¹€à¸—ี่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่à¸à¸§à¸²à¸™à¸™à¸µà¹‰ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่à¹à¸¥à¹‰à¸§ เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'à¸à¸µà¸ %s',\n past: '%sที่à¹à¸¥à¹‰à¸§',\n s: 'ไม่à¸à¸µà¹ˆà¸§à¸´à¸™à¸²à¸—ี',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดืà¸à¸™',\n MM: '%d เดืà¸à¸™',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ãanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ãan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'ÃekÅŸenbe_DuÅŸenbe_SiÅŸenbe_ÇarÅŸenbe_PenÅŸenbe_Anna_Åženbe'.split(\n '_'\n ),\n weekdaysShort: 'Ãek_DuÅŸ_SiÅŸ_Çar_Pen_Ann_Åžen'.split('_'),\n weekdaysMin: 'Ãk_DÅŸ_SÅŸ_Çr_Pn_An_Åžn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak YiÄŸit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à ] LT',\n nextDay: '[demà à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[ieiri à ] LT',\n lastWeek: '[sür el] dddd [lasteu à ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n mÃut\", \"'iens mÃut\"],\n mm: [number + ' mÃuts', '' + number + ' mÃuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split(\n '_'\n ),\n monthsShort: 'ⵉâµâµâ´°âµ¢âµ”_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓâµâµ¢âµ“_ⵢⵓâµâµ¢âµ“âµ£_ⵖⵓⵛⵜ_ⵛⵓⵜⴰâµâ´±âµ‰âµ”_ⴽⵟⵓⴱⵕ_âµâµ“ⵡⴰâµâ´±âµ‰âµ”_ⴷⵓⵊâµâ´±âµ‰âµ”'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_â´°âµ¢âµâ´°âµ™_ⴰⵙⵉâµâ´°âµ™_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ â´´] LT',\n nextDay: '[ⴰⵙⴽⴰ â´´] LT',\n nextWeek: 'dddd [â´´] LT',\n lastDay: '[ⴰⵚⴰâµâµœ â´´] LT',\n lastWeek: 'dddd [â´´] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'â´·â´°â´·âµ… âµ™ ⵢⴰⵠ%s',\n past: 'ⵢⴰⵠ%s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉâµâµ“â´º',\n mm: '%d ⵎⵉâµâµ“â´º',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉâµ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰâµ',\n M: 'â´°âµ¢oⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔâµ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙâµ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiá¸yas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuá¸',\n mm: '%d minuá¸',\n h: 'saÉ›a',\n hh: '%d tassaÉ›in',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split(\n '_'\n ),\n monthsShort: 'يانۋار_ÙÛۋرال_مارت_ئاپرÛÙ„_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سÛنتەبىر_ئۆكتەبىر_نويابىر_دÛكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n weekdaysMin: 'ÙŠÛ•_دۈ_سە_چا_Ù¾Û•_جۈ_Ø´Û•'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىÚD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm',\n LLLL: 'ddddØŒ YYYY-يىلىM-ئاينىÚD-كۈنى، HH:mm',\n },\n meridiemParse: /ÙŠÛرىم ÙƒÛÚ†Û•|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن ÙƒÛيىن|ÙƒÛ•Ú†/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'ÙŠÛرىم ÙƒÛÚ†Û•' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن ÙƒÛيىن' || meridiem === 'ÙƒÛ•Ú†') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'ÙŠÛرىم ÙƒÛÚ†Û•';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن ÙƒÛيىن';\n } else {\n return 'ÙƒÛ•Ú†';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[ÙƒÛلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ÙƒÛيىن',\n past: '%s بۇرۇن',\n s: 'Ù†Û•Ú†Ú†Û• سÛكونت',\n ss: '%d سÛكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر ÙƒÛˆÙ†',\n dd: '%d ÙƒÛˆÙ†',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'Ñекунда_Ñекунди_Ñекунд' : 'Ñекунду_Ñекунди_Ñекунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'міÑÑць_міÑÑці_міÑÑців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'неділÑ_понеділок_вівторок_Ñереда_четвер_п’ÑтницÑ_Ñубота'.split(\n '_'\n ),\n accusative: 'неділю_понеділок_вівторок_Ñереду_четвер_п’Ñтницю_Ñуботу'.split(\n '_'\n ),\n genitive: 'неділі_понеділка_вівторка_Ñереди_четверга_п’Ñтниці_Ñуботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наÑтупної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'ÑічнÑ_лютого_березнÑ_квітнÑ_травнÑ_червнÑ_липнÑ_ÑерпнÑ_вереÑнÑ_жовтнÑ_лиÑтопада_груднÑ'.split(\n '_'\n ),\n standalone: 'Ñічень_лютий_березень_квітень_травень_червень_липень_Ñерпень_вереÑень_жовтень_лиÑтопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'Ñіч_лют_бер_квіт_трав_черв_лип_Ñерп_вер_жовт_лиÑÑ‚_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ÑÑ€_чт_пт_Ñб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Ñ€.',\n LLL: 'D MMMM YYYY Ñ€., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Ñ€., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька Ñекунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'міÑÑць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|днÑ|вечора/,\n isPM: function (input) {\n return /^(днÑ|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'Ùروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعÛ', 'ÛÙتÛ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ddddØŒ D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبØ|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبØ';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[Ú©Ù„ بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[Ú¯Ø°Ø´ØªÛ Ø±ÙˆØ² بوقت] LT',\n lastWeek: '[گذشتÛ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹÛ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماÛ',\n MM: '%d ماÛ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/ØŒ/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, 'ØŒ');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'Ñнвар_феврал_март_апрел_май_июн_июл_авгуÑÑ‚_ÑентÑбр_октÑбр_ноÑбр_декабр'.split(\n '_'\n ),\n monthsShort: 'Ñнв_фев_мар_апр_май_июн_июл_авг_Ñен_окт_ноÑ_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун Ñоат] LT [да]',\n nextDay: '[Ðртага] LT [да]',\n nextWeek: 'dddd [куни Ñоат] LT [да]',\n lastDay: '[Кеча Ñоат] LT [да]',\n lastWeek: '[Утган] dddd [куни Ñоат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурÑат',\n ss: '%d фурÑат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир Ñоат',\n hh: '%d Ñоат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nháºt_thứ hai_thứ ba_thứ tÆ°_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngà y mai lúc] LT',\n nextWeek: 'dddd [tuần tá»›i lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trÆ°á»›c lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tá»›i',\n past: '%s trÆ°á»›c',\n s: 'và i giây',\n ss: '%d giây',\n m: 'má»™t phút',\n mm: '%d phút',\n h: 'má»™t giá»',\n hh: '%d giá»',\n d: 'má»™t ngà y',\n dd: '%d ngà y',\n w: 'má»™t tuần',\n ww: '%d tuần',\n M: 'má»™t tháng',\n MM: '%d tháng',\n y: 'má»™t năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Ãp~rÃl_~Máý_~Júñé~_Júl~ý_Ãú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort: 'J~áñ_~Féb_~Már_~Ãpr_~Máý_~Júñ_~Júl_~Ãúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~FrÃd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~FrÃ_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ã~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Ã~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~mÃñ~úté',\n mm: '%d m~Ãñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'SẹÌrẹÌ_EÌ€reÌ€leÌ€_Ẹrẹ̀naÌ€_IÌ€gbeÌ_EÌ€bibi_OÌ€kuÌ€du_Agẹmo_OÌ€guÌn_Owewe_Ọ̀waÌ€raÌ€_BeÌluÌ_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'SẹÌr_EÌ€rl_Ẹrn_IÌ€gb_EÌ€bi_OÌ€kuÌ€_Agẹ_OÌ€guÌ_Owe_Ọ̀waÌ€_BeÌl_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'AÌ€iÌ€kuÌ_AjeÌ_IÌ€sẹÌgun_Ọjá»ÌruÌ_Ọjá»Ìbá»_ẸtiÌ€_AÌ€baÌmẹÌta'.split('_'),\n weekdaysShort: 'AÌ€iÌ€k_AjeÌ_IÌ€sẹÌ_Ọjr_Ọjb_ẸtiÌ€_AÌ€baÌ'.split('_'),\n weekdaysMin: 'AÌ€iÌ€_Aj_IÌ€s_Ọr_Ọb_Ẹt_AÌ€b'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[OÌ€niÌ€ ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ toÌn'bá»] [ni] LT\",\n lastDay: '[AÌ€na ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ toÌlá»Ì] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'niÌ %s',\n past: '%s ká»jaÌ',\n s: 'iÌ€sẹjuÌ aayaÌ die',\n ss: 'aayaÌ %d',\n m: 'iÌ€sẹjuÌ kan',\n mm: 'iÌ€sẹjuÌ %d',\n h: 'waÌkati kan',\n hh: 'waÌkati %d',\n d: 'á»já»Ì kan',\n dd: 'á»já»Ì %d',\n M: 'osuÌ€ kan',\n MM: 'osuÌ€ %d',\n y: 'á»duÌn kan',\n yy: 'á»duÌn %d',\n },\n dayOfMonthOrdinalParse: /á»já»Ì\\s\\d{1,2}/,\n ordinal: 'á»já»Ì %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥Ah点mm分',\n LLLL: 'YYYYå¹´M月Dæ—¥ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // 'ä¸åˆ'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%såŽ',\n past: '%så‰',\n s: 'å‡ ç§’',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 å°æ—¶',\n hh: '%d å°æ—¶',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n week: {\n // GB/T 7408-1994《数æ®å…ƒå’Œäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ—¥æœŸå’Œæ—¶é—´è¡¨ç¤ºæ³•ã€‹ä¸ŽISO 8601:1988ç‰æ•ˆ\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上åˆ';\n } else if (hm === 1200) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%så…§',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_å…月_七月_八月_ä¹æœˆ_å月_å一月_å二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期å…'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週å…'.split('_'),\n weekdaysMin: 'æ—¥_一_二_三_å››_五_å…'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´M月Dæ—¥',\n LLL: 'YYYYå¹´M月Dæ—¥ HH:mm',\n LLLL: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´M月Dæ—¥',\n lll: 'YYYYå¹´M月Dæ—¥ HH:mm',\n llll: 'YYYYå¹´M月Dæ—¥dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上åˆ|ä¸åˆ|下åˆ|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上åˆ') {\n return hour;\n } else if (meridiem === 'ä¸åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下åˆ' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上åˆ';\n } else if (hm < 1230) {\n return 'ä¸åˆ';\n } else if (hm < 1800) {\n return '下åˆ';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ—¥|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'æ—¥';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%så‰',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分é˜',\n mm: '%d 分é˜',\n h: '1 å°æ™‚',\n hh: '%d å°æ™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 å¹´',\n yy: '%d å¹´',\n },\n });\n\n return zhTw;\n\n})));\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","module.exports = function() {\n\tthrow new Error(\"define cannot be used indirect\");\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n"],"sourceRoot":""}