{"version":3,"sources":["webpack:///./src/app/images/brands/icons/bookmarked-ico.svg","webpack:///./node_modules/@videojs/vhs-utils/es/mp4-helpers.js","webpack:///./node_modules/@videojs/vhs-utils/es/opus-helpers.js","webpack:///./node_modules/@videojs/vhs-utils/es/ebml-helpers.js","webpack:///./node_modules/@videojs/vhs-utils/es/nal-helpers.js","webpack:///./node_modules/@videojs/vhs-utils/es/containers.js","webpack:///./node_modules/videojs-vtt.js/lib/vttregion.js","webpack:///./node_modules/@videojs/vhs-utils/es/decode-b64-to-uint8-array.js","webpack:///./node_modules/videojs-vtt.js/lib/vtt.js","webpack:///./node_modules/url-toolkit/src/url-toolkit.js","webpack:///./node_modules/@videojs/vhs-utils/es/stream.js","webpack:///./node_modules/m3u8-parser/dist/m3u8-parser.es.js","webpack:///./node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack:///./node_modules/dexie/dist/dexie.mjs","webpack:///./src/app/db.js","webpack:///./node_modules/@videojs/vhs-utils/es/byte-helpers.js","webpack:///./node_modules/keycode/index.js","webpack:///./node_modules/@xmldom/xmldom/lib/sax.js","webpack:///./node_modules/@xmldom/xmldom/lib/dom.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/global/document.js","webpack:///./node_modules/video.js/dist/video.es.js","webpack:///./node_modules/react-modal/lib/index.js","webpack:///./src/app/templates/Articles/Default.js","webpack:///./src/app/pages/DefaultSectionPage.js","webpack:///./src/app/templates/Articles/ArticlesNoAds.js","webpack:///./src/app/pages/GeneralHubSectionPage.js","webpack:///./src/app/components/ContentHubArticleCard.js","webpack:///./src/app/components/ContentHubHorArticleCard.js","webpack:///./src/app/pages/HoverZoomSectionPage.js","webpack:///./src/app/pages/ContentHubPage.js","webpack:///./src/app/pages/AuthorSectionPage.js","webpack:///./src/app/pages/CiaoMalfyHubSectionPage.js","webpack:///./src/app/pages/MacHubSectionPage.js","webpack:///./src/app/templates/Articles/FourLayoutArticlesNoAds.js","webpack:///./src/app/pages/BeautyAwards.js","webpack:///./src/app/components/DefaultSection.js","webpack:///./node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack:///./node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack:///./src/app/components/FollowConcept.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///./node_modules/videojs-contrib-ads/dist/videojs-contrib-ads.es.js","webpack:///./node_modules/videojs-ima/dist/videojs.ima.es.js","webpack:///./src/app/images/brands/video/iol-wht.js","webpack:///./src/app/images/brands/video/daily-voice-red.js","webpack:///./src/app/images/brands/video/ana-white.js","webpack:///./src/app/components/Video.js","webpack:///./src/app/components/ArticleGallery.js","webpack:///./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack:///./src/app/components/RelatedArticle.css.js","webpack:///./src/app/components/RelatedArticle.js","webpack:///./src/app/components/InArticleRelated.css.js","webpack:///./src/app/components/InArticleRelated.js","webpack:///./src/app/components/SubscribeBlock.css.js","webpack:///./src/app/components/SubscribeBlock.js","webpack:///./src/app/components/AuthorArticles.css.js","webpack:///./src/app/components/AuthorArticles.js","webpack:///./src/app/pages/Article.js","webpack:///../common/lib/ion-dom/distribution/ion-dom.js","webpack:///./src/app/components/AuthorBio.js","webpack:///./node_modules/is-what/dist/index.esm.js","webpack:///./node_modules/merge-anything/dist/index.esm.js","webpack:///./node_modules/@videojs/vhs-utils/es/codecs.js","webpack:///./node_modules/semantic-ui-react/dist/es/lib/eventStack/index.js","webpack:///./src/app/static/icons/no-search-results-v2.svg","webpack:///./src/app/static/icons/broken-connection.svg","webpack:///./node_modules/@xmldom/xmldom/lib/index.js","webpack:///./node_modules/videojs-vtt.js/lib/browser-index.js","webpack:///./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack:///./src/app/static/icons/gallery-prev.svg","webpack:///./node_modules/@videojs/vhs-utils/es/id3-helpers.js","webpack:///./node_modules/@videojs/xhr/lib/index.js","webpack:///./node_modules/mux.js/lib/utils/clock.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./src/app/components/AdFormats.js","webpack:///./node_modules/react-modal/lib/components/ModalPortal.js","webpack:///./node_modules/react-modal/lib/helpers/scopeTab.js","webpack:///./src/app/templates/Articles/BeautyAwardsCategoryList.js","webpack:///./node_modules/stylis-rule-sheet/index.js","webpack:///./node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack:///./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///./node_modules/react-modal/lib/helpers/focusManager.js","webpack:///./node_modules/react-modal/lib/helpers/bodyTrap.js","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./src/app/images/brands/icons/notifications-ico.svg","webpack:///./node_modules/@videojs/vhs-utils/es/resolve-url.js","webpack:///./node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack:///./node_modules/react-modal/lib/helpers/tabbable.js","webpack:///./node_modules/semantic-ui-react/dist/es/modules/Sticky/Sticky.js","webpack:///./src/app/components/SidebarArticleCard.js","webpack:///./src/app/components/MostReadArticles.js","webpack:///./src/app/components/NotificationsBell.js","webpack:///./src/app/components/Sidebar.js","webpack:///./node_modules/stylis/stylis.min.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:///./node_modules/react-18-image-lightbox/dist/index.es.js","webpack:///./node_modules/react-modal/lib/helpers/classList.js","webpack:///./node_modules/is-function/index.js","webpack:///./src/app/components/ui/articleutils.js","webpack:///./node_modules/mux.js/lib/tools/parse-sidx.js","webpack:///./node_modules/mpd-parser/dist/mpd-parser.es.js","webpack:///./node_modules/@videojs/vhs-utils/es/media-groups.js","webpack:///./node_modules/@videojs/vhs-utils/es/media-types.js","webpack:///./node_modules/@xmldom/xmldom/lib/conventions.js","webpack:///./src/app/pages/NotFound.js","webpack:///./node_modules/@videojs/xhr/lib/http-handler.js","webpack:///./node_modules/safe-json-parse/tuple.js","webpack:///./src/app/images/brands/icons/bookmark-ico.svg","webpack:///./src/app/components/WingBanners.js","webpack:///./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack:///./src/app/static/icons/gallery-next.svg","webpack:///./node_modules/react-modal/lib/components/Modal.js","webpack:///./node_modules/mux.js/lib/utils/numbers.js","webpack:///./src/app/components/ArticleCard.js","webpack:///./node_modules/videojs-vtt.js/lib/vttcue.js","webpack:///./node_modules/@xmldom/xmldom/lib/dom-parser.js","webpack:///./node_modules/@babel/runtime/helpers/construct.js","webpack:///./node_modules/@xmldom/xmldom/lib/entities.js","webpack:///./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack:///./node_modules/global/window.js","webpack:///./src/app/components/StyledLink.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeFunction.js"],"names":["module","exports","DESCRIPTORS","Uint8Array","path","bytes","results","i","length","tag","size","headerSize","byte","z","_DESCRIPTORS$z","id","parser","push","subarray","desc","flags","dependsOnEsId","ocrEsId","descriptors","url","len","oti","streamType","bufferSize","maxBitrate","avgBitrate","findBox","paths","complete","Array","isArray","map","p","normalizePaths","type","end","data","apply","slice","EBML_TAGS","EBML","DocType","Segment","SegmentInfo","Tracks","Track","TrackNumber","DefaultDuration","TrackEntry","TrackType","FlagDefault","CodecID","CodecPrivate","VideoTrack","AudioTrack","Cluster","Timestamp","TimestampScale","BlockGroup","BlockDuration","Block","SimpleBlock","LENGTH_TABLE","offset","removeLength","signed","getLength","valueBytes","prototype","call","value","normalizePath","match","getInfinityDataSize","innerid","dataHeader","findEbml","dataStart","dataEnd","concat","NAL_TYPE_ONE","NAL_TYPE_TWO","EMULATION_PREVENTION","positions","newLength","newData","sourceIndex","shift","dataType","types","nalLimit","Infinity","nalStart","nalsFound","nalOffset","nalType","indexOf","CONSTANTS","_isLikely","aac","mask","mp3","webm","docType","mkv","matroska","mp4","mov","fmp4","moof","moov","ac3","ts","flac","ogg","avi","riff","wav","findH264Nal","findH265Nal","isLikelyTypes","Object","keys","filter","t","forEach","isLikelyFn","isLikely","scrollSetting","isValidPercentValue","_width","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","defineProperties","this","enumerable","get","set","Error","TypeError","setting","toLowerCase","findScrollSetting","console","warn","decodeB64ToUint8Array","b64Text","s","decodedString","atob","Buffer","from","toString","array","charCodeAt","document","_objCreate","create","F","o","arguments","ParsingError","errorData","message","name","code","parseTimeStamp","input","computeSeconds","h","m","f","replace","Settings","values","parseOptions","callback","keyValueDelim","groupDelim","groups","split","kv","trim","parseCue","cue","regionList","oInput","consumeTimeStamp","Errors","BadTimeStamp","skipWhitespace","startTime","substr","endTime","settings","k","v","region","alt","vals","vals0","integer","percent","vertical","line","e","lineAlign","snapToLines","align","position","start","left","center","middle","right","positionAlign","consumeCueSettings","constructor","BadSignature","dflt","defaultKey","has","a","n","test","parseInt","parseFloat","TEXTAREA_ELEMENT","createElement","TAG_NAME","c","b","u","ruby","rt","lang","DEFAULT_COLOR_CLASS","white","lime","cyan","red","yellow","magenta","blue","black","TAG_ANNOTATION","NEEDS_PARENT","parseContent","window","nextToken","result","shouldAdd","current","element","localName","annotation","tagName","rootDiv","tagStack","appendChild","createTextNode","innerHTML","textContent","pop","parentNode","node","createProcessingInstruction","classes","cl","bgColor","colorName","hasOwnProperty","propName","propValue","style","className","join","strongRTLRanges","isStrongRTLChar","charCode","currentRange","determineBidi","cueDiv","nodeStack","text","childNodes","pushNodes","nextTextNode","innerText","StyleBox","CueStyleBox","styleOptions","styles","color","backgroundColor","top","bottom","display","writingMode","unicodeBidi","applyStyles","div","direction","textAlign","font","whiteSpace","textPos","formatStyle","width","height","move","box","BoxPosition","obj","lh","offsetHeight","offsetWidth","offsetTop","rects","getClientRects","getBoundingClientRect","Math","max","lineHeight","undefined","moveBoxToLinePosition","styleBox","containerBox","boxPositions","boxPosition","linePos","track","textTrackList","mediaElement","trackList","count","mode","computeLinePos","axis","step","round","maxPosition","initialAxis","abs","ceil","reverse","calculatedPercentage","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","findBestPosition","toCSSCompatValues","WebVTT","prop","val","unit","toMove","overlaps","b2","boxes","container","min","reference","getSimpleBoxPosition","StringDecoder","decode","decodeURIComponent","encodeURIComponent","convertCueToDOMTree","cuetext","processCues","cues","overlay","firstChild","removeChild","paddedOverlay","margin","hasBeenReset","displayState","shouldCompute","fontSize","Parser","vttjs","decoder","state","buffer","TextDecoder","reportOrThrowError","onparsingerror","parse","self","collectNextLine","pos","parseHeader","ontimestampmap","parseTimestampMap","xy","anchor","VTTRegion","lines","regionAnchorX","regionAnchorY","viewportAnchorX","viewportAnchorY","scroll","onregion","parseRegion","stream","alreadyCollectedLine","VTTCue","hasSubstring","oncue","flush","onflush","root","URL_REGEX","FIRST_SEGMENT_REGEX","SLASH_DOT_REGEX","SLASH_DOT_DOT_REGEX","URLToolkit","buildAbsoluteURL","baseURL","relativeURL","opts","alwaysNormalize","basePartsForNormalise","parseURL","buildURLFromParts","relativeParts","scheme","baseParts","netLoc","pathParts","exec","builtParts","params","query","fragment","baseURLPath","newPath","substring","lastIndexOf","parts","Stream","listeners","_proto","on","listener","off","index","splice","trigger","callbacks","args","_length","_i","dispose","pipe","destination","_Stream","LineStream","_this","nextNewline","TAB","String","fromCharCode","parseByterange","byterangeString","parseAttributes","attributes","attr","attrs","RegExp","ParseStream","customParsers","tagMappers","event","_this2","reduce","acc","mapper","mappedLine","newLine","tagType","duration","title","version","number","playlistType","allowed","URI","uri","BYTERANGE","byterange","RESOLUTION","resolution","BANDWIDTH","dateTimeString","dateTimeObject","Date","IV","Uint32Array","PRECISE","key","subkey","addParser","_ref","_this3","expression","customType","dataParser","segment","addTagMapper","_ref2","camelCaseKeys","str","toUpperCase","setHoldBack","manifest","serverControl","targetDuration","partTargetDuration","hb","phb","minTargetDuration","minPartDuration","lineStream","parseStream","currentMap","_key","uris","currentUri","hasParts","noop","defaultMediaGroups","currentTimeline","allowCache","discontinuityStarts","segments","lastByterangeEnd","lastPartByterangeEnd","preloadHints","timeline","preloadSegment","entry","mediaGroup","rendition","endlist","endList","inf","mediaSequence","discontinuitySequence","METHOD","KEYFORMAT","contentProtection","KEYID","schemeIdUri","keyId","pssh","method","iv","isFinite","playlist","playlists","mediaGroups","media","TYPE","NAME","mediaGroupType","default","DEFAULT","autoselect","AUTOSELECT","LANGUAGE","language","instreamId","CHARACTERISTICS","characteristics","FORCED","forced","discontinuity","targetduration","isNaN","timeOffset","precise","cueOut","cueOutCont","cueIn","skip","warnOnMissingAttributes_","segmentIndex","part","partIndex","renditionReports","r","canBlockReload","canSkipDateranges","hint","isPart","otherHint","report","required","partInf","partTarget","comment","custom","identifier","missing","chunk","options","defineProperty","canUseDOM","SafeNodeList","SafeHTMLCollection","_exenv","EE","__esModule","SafeHTMLElement","HTMLElement","HTMLCollection","NodeList","__assign","assign","__spreadArray","to","pack","ar","l","_global","globalThis","global","extend","extension","Promise","getProto","getPrototypeOf","_hasOwn","hasOwn","props","proto","Reflect","ownKeys","setProp","functionOrGetSet","configurable","writable","derive","Child","Parent","bind","getOwnPropertyDescriptor","getPropertyDescriptor","_slice","override","origFunc","overridedFactory","assert","asap$1","fn","setImmediate","setTimeout","arrayToObject","extractor","item","nameAndValue","getByKeyPath","keyPath","rv","period","innerObj","setByKeyPath","isFrozen","currentKeyPath","remainingKeyPath","shallowClone","flatten","intrinsicTypeNames","num","intrinsicTypes","x","circularRefs","deepClone","any","WeakMap","innerDeepClone","toStringTag","iteratorSymbol","Symbol","iterator","getIteratorOf","NO_CHAR_ARRAY","getArrayOf","arrayLike","it","next","done","isAsyncFunction","debug","location","href","setDebug","libraryFilter","NEEDS_THROW_FOR_STACK","stack","getErrorWithStack","prettyStack","exception","numIgnoredFrames","frame","idbDomErrorNames","errorList","defaultTexts","VersionChanged","DatabaseClosed","Abort","TransactionInactive","MissingAPI","DexieError","msg","_e","getMultiErrorMessage","failures","ModifyError","successCount","failedKeys","BulkError","failuresByPos","_stack","errnames","BaseException","exceptions","fullName","msgOrInner","inner","Syntax","SyntaxError","Type","Range","RangeError","exceptionMap","fullNameExceptions","nop","mirror","pureFunctionChain","f1","f2","callBoth","on1","on2","hookCreatingChain","res","onsuccess","onerror","res2","hookDeletingChain","hookUpdatingChain","modifications","reverseStoppableEventChain","promisableChain","then","thiz","INTERNAL","_a$1","globalP","resolve","crypto","subtle","nativeP","digest","resolvedNativePromise","nativePromiseProto","resolvedGlobalPromise","nativePromiseThen","NativePromise","patchGlobalPromise","stack_being_generated","schedulePhysicalTick","physicalTick","MutationObserver","hiddenDiv","observe","setAttribute","asap","microtickQueue","needsNewPhysicalTick","isOutsideMicroTick","unhandledErrors","rejectingErrors","currentFulfiller","rejectionMapper","globalPSD","ref","unhandleds","onunhandled","globalError","pgp","env","finalize","uh","PSD","numScheduledCalls","tickFinalizers","DexiePromise","_listeners","onuncatched","_lib","psd","_PSD","_stackHolder","_prev","_numPrev","_state","_value","handleRejection","executePromiseTask","thenProp","microTaskId","totalEchoes","onFulfilled","onRejected","possibleAwait","cleanup","decrementExpectedAwaits","reject","propagateToListener","Listener","nativeAwaitCompatibleWrap","linkToPreviousPromise","zone","promise","shouldExecuteTick","beginMicroTickScope","_then","propagateAllListeners","endMicroTickScope","ex","reason","_promise","tryCatch","origProp","some","addPossiblyUnhandledError","finalizePhysicalTick","cb","callListener","ret","markErrorAsHandled","prev","numPrev","wasRootExec","unhandledErrs","finalizers","PromiseReject","wrap","errorCatcher","outerScope","switchToZone","catch","handler","err","finally","onFinally","getStack","stacks","limit","errorName","failure","timeout","ms","handle","Timeout","clearTimeout","snapShot","all","onPossibleParallellAsync","remaining","race","newPSD","newScope","usePSD","scheduler","follow","zoneProps","finalizer","run_at_end_of_this_or_next_physical_tick","allSettled","possiblePromises","status","AggregateError","task","awaits","echoes","taskCounter","zoneStack","zoneEchoes","zone_id_counter","a1","a2","parent","globalEnv","PromiseProp","nthen","getPatchedPromiseThen","gthen","incrementExpectedAwaits","possiblePromise","rejection","zoneEnterEcho","targetZone","zoneLeaveEcho","bEnteringZone","currentZone","enqueueNativeMicroTask","GlobalPromise_1","targetEnv","GlobalPromise","a3","job","outerZone","origThen","onResolved","eventData","createEvent","initEvent","CustomEvent","detail","dispatchEvent","PromiseRejectionEvent","onunhandledrejection","_","defaultPrevented","maxString","INVALID_KEY_ARGUMENT","connections","isIEOrEdge","navigator","userAgent","hasIEDeleteObjectStoreBug","hangsOnDeleteLargeKeyRange","dexieStackFrameFilter","combine","filter1","filter2","AnyRange","lower","lowerOpen","upper","upperOpen","workaroundForUndefinedPrimKey","Table","_trans","writeLocked","trans","_tx","tableName","checkTableInTransaction","schema","NotFound","idbtrans","db","transless","tempTransaction","storeNames","idbdb","openComplete","letThrough","_vip","_createTransaction","_dbSchema","PR1398_maxLoop","InvalidState","isOpen","_close","open","_completion","dbOpenError","isBeingOpened","_options","autoOpen","dbReadyPromise","keyOrCrit","where","first","core","hook","reading","fire","indexOrCrit","WhereClause","keyPaths","equals","compoundIndex","indexes","primKey","ix","compound","every","_maxKey","kp","JSON","stringify","idxByName","idb","_deps","indexedDB","cmp","_a","prevIndex","prevFilterFn","multi","idx","filterFunction","toCollection","and","thenShortcut","numRows","each","toArray","Collection","orderBy","mapToClass","mappedClass","readHook","unsubscribe","defineClass","content","add","auto","objToAdd","mutate","numFailures","lastResult","update","keyOrObject","modify","InvalidArgument","put","delete","clear","range","bulkGet","getMany","bulkAdd","objects","keysOrOptions","wantResults","allKeys","numObjects","objectsToAdd","bulkPut","objectsToPut","bulkDelete","numKeys","Events","ctx","evs","eventName","subscriber","subscribe","addEventType","chainFunction","defaultFunction","addConfiguredEvents","context","subscribers","cfg","makeClassConstructor","isPlainKeyRange","ignoreLimitFilter","algorithm","or","justLimit","replayFilter","addFilter","addReplayFilter","factory","isLimitFilter","curr","getIndexOrStore","coreSchema","isPrimKey","primaryKey","getIndexByKeyPath","Schema","openCursor","coreTable","keysOnly","dir","unique","iter","coreTrans","set_1","union","cursor","advance","stop","fail","_iterate","iterate","valueMapper","cursorPromise","wrappedFn","continue","advancer","ta","tb","NaN","al","bl","compareUint8Arrays","getUint8Array","compareArrays","ArrayBuffer","isView","tsTag","byteOffset","byteLength","_read","_ctx","error","table","_write","_addAlgorithm","clone","raw","sortBy","lastPart","lastIndex","getval","order","sorter","aVal","bVal","sort","valueMapper_1","a_1","offsetLeft","rowsLeft","until","bIncludeStopEntry","last","isMatch","indexName","_ondirectionchange","eachKey","eachUniqueKey","eachPrimaryKey","primaryKeys","uniqueKeys","firstKey","lastKey","distinct","strKey","found","changes","modifyer","anythingModified","outbound","extractKey","modifyChunkSize","totalFailures","applyMutateResult","expectedCount","nextChunk","cache","addValues","putValues","putKeys","deleteKeys","origValue","ctx_1","criteria","deleteCallback","changeSpec","coreRange","simpleCompare","simpleCompareReverse","collectionOrWhereClause","T","collection","emptyCollection","whereClause","rangeEqual","nextCasing","lowerKey","upperNeedle","lowerNeedle","llp","lwrKeyChar","addIgnoreCaseAlgorithm","needles","suffix","compare","upperNeedles","lowerNeedles","nextKeySuffix","needlesLen","initDirection","upperFactory","lowerFactory","needleBounds","needle","nb","createRange","firstPossibleNeedle","lowestPossibleCasing","casing","between","includeLower","includeUpper","_cmp","above","aboveOrEqual","below","belowOrEqual","startsWith","startsWithIgnoreCase","equalsIgnoreCase","anyOfIgnoreCase","startsWithAnyOfIgnoreCase","anyOf","_ascending","_descending","notEqual","inAnyRange","includeLowers","includeUppers","noneOf","ranges","ascending","descending","_min","_max","sortDirection","rangeSorter","newRange","rangePos","keyIsBeyondCurrentEntry","keyIsBeforeCurrentEntry","checkKey","keyWithinCurrentRange","startsWithAnyOf","eventRejectHandler","preventDefault","target","stopPropagation","globalEvents","Transaction","_lock","_reculock","lockOwnerFor","_unlock","_blockedFuncs","_locked","fnAndPSD","OpenFailed","active","transaction","durability","chromeTransactionDurability","ev","_reject","onabort","oncomplete","_resolve","storagemutated","bWriteLock","ReadOnly","_root","waitFor","promiseLike","_waitingFor","_waitingQueue","store","objectStore","spin","_spinCount","currentWaitPromise","abort","memoizedTables","_memoizedTables","tableSchema","transactionBoundTable","createIndexSpec","src","nameFromKeyPath","createTableSchema","getMaxKey","IdbKeyRange","only","getKeyExtractor","getSinglePathKeyExtractor","arrayify","_id_counter","getKeyPathAlias","createDBCore","tmpTrans","makeIDBKeyRange","upperBound","lowerBound","bound","tables","objectStoreNames","autoIncrement","indexByKeyPath","isPrimaryKey","indexNames","multiEntry","hasGetAll","extractSchema","isAddOrPut","req","reqs","errorHandler","args1","args2","keyCount","callbackCount","successHandler","_pos","request","nonInfinitLimit","source","idbKeyRange","getAll","getAllKeys","count_1","req_1","openKeyCursor","result_1","___id","_cursorContinue","_cursorContinuePrimaryKey","continuePrimaryKey","_cursorAdvance","doThrowCursorIsStopped","gotOne","iterationPromise","resolveIteration","rejectIteration","guardedCallback","createDbCoreTable","tableMap","MIN_KEY","MAX_KEY","createMiddlewareStacks","middlewares","IDBKeyRange","dbcore","stackImpl","down","createMiddlewareStack","generateMiddlewareStacks","_novip","_middlewares","tbl","setApiOnPlace","objs","tableNames","dbschema","propDesc","removeTablesApi","lowerVersionFirst","_cfg","runUpgraders","oldVersion","idbUpgradeTrans","globalSchema","_storeNames","rejectTransaction","createTable","populate","queue","versions","_versions","buildGlobalSchema","anyContentUpgraderHasRun","runQueue","oldSchema","newSchema","adjustToExistingIndexNames","diff","getSchemaDiff","tuple","change","recreate","Upgrade","store_1","addIndex","deleteIndex","del","idxName","contentUpgrade","upgradeSchema_1","returnValue_1","contentUpgradeIsAsync_1","promiseFollowed","decrementor","storeName","deleteObjectStore","deleteRemovedTables","contains","updateTablesAndIndexes","oldDef","newDef","def","oldIndexes","newIndexes","oldIdx","newIdx","createObjectStore","createIndex","j","idbindex","_hasGetAll","dexieName","indexSpec","WorkerGlobalScope","Version","_parseStoresSpec","stores","outSchema","indexNum","storesSource","storesSpec","_allTables","upgrade","upgradeFunction","getDbNamesTable","dbNamesDB","Dexie$1","addons","dbnames","hasDatabasesNative","databases","_onDatabaseDeleted","vip","idbReady","intervalId","userAgentData","tryIdb","setInterval","clearInterval","dexieOpen","openCanceller","throwIfCancelled","resolveDbReady","dbReadyResolve","upgradeTransaction","wasCreated","dbName","autoSchema","verno","onblocked","_fireOnBlocked","onupgradeneeded","allowEmptyDB","close","delreq","deleteDatabase","NoSuchDatabase","oldVer","pow","readGlobalSchema","ch","verifyInstalledSchema","onversionchange","vcFired","onclose","_onDatabaseCreated","onReadyBeingFired","ready","fireRemainders","remainders_1","awaitIterator","callNext","onSuccess","onError","throw","getNext","extractTransactionArgs","_tableArgs_","scopeFunc","enterTransactionScope","parentTransaction","returnValue","scopeFuncIsAsync","PrematureCommit","pad","virtualIndexMiddleware","level","indexLookup","allVirtualIndexes","addVirtualIndexes","keyTail","lowLevelIndex","keyPathAlias","indexList","keyLength","isVirtual","virtualIndex","translateRequest","createVirtualCursor","getObjectDiff","prfx","ap","bp","apTypeName","hooksMiddleware","downCore","downTable","dxTrans","deleting","creating","updating","addPutOrDelete","deleteNextChunk","deleteRange","getEffectiveKeys","effectiveKeys","getExistingValues","existingValues","contexts","existingValue","generatedPrimaryKey","objectDiff","additionalChanges_1","requestedValue_1","getFromTransactionCache","cacheExistingValuesMiddleware","cachedResult","isEmptyRange","RangeSet","fromOrTree","d","addRange","rebalance","rightWasCutOff","mergeRanges","newSet","_addRangeSet","getRangeSetIterator","keyProvided","up","_b","rootClone","oldRootRight","computeDepth","rangeSet","addKey","addKeys","observabilityMiddleware","FULL_RANGE","tableClone","mutatedParts","getRangeSet","pkRangeSet","delsRangeSet","newObjs","oldCache","oldObjs","addKeyOrKeys","oldKey","newKey","trackAffectedIndexes","getRange","_c","_d","readSubscribers","subscr","pkRangeSet_1","delsRangeSet_1","queriedIndex","queriedRanges","keysPromise_1","resultingKeys","pKeys","cursor_1","wantValues_1","pkey","domDeps","Dexie","deps","dependencies","cancelOpen","bSticky","db_1","keyRangeGenerator","keyRange","whereCtx","readingHook","createCollectionConstructor","createTableConstructor","wasActive","createTransactionConstructor","versionNumber","createVersionConstructor","orCollection","_IDBKeyRange","createWhereClauseConstructor","newVersion","use","addon","versionInstance","_whenReady","unuse","mw","hasArguments","doDelete","backendDB","hasBeenClosed","hasFailed","dynamicallyOpened","_transaction","idbMode","onlyIfCompatible","SubTransaction","enterTransaction","InvalidTable","symbolObservable","observable","Observable","_subscribe","extendObservabilitySet","mozIndexedDB","webkitIndexedDB","msIndexedDB","webkitIDBKeyRange","propagateLocally","updateParts","wasMe","propagatingLocally","databaseName","exists","getDatabaseNames","infos","info","ignoreTransaction","async","generatorFn","spawn","currentTransaction","promiseOrFunction","optionalTimeout","liveQuery","querier","observer","closed","accumMuts","currentObs","subscription","mutationListener","querying","startedListening","shouldNotify","rangeSet1","rangeSet2","i1","nextResult1","i2","nextResult2","rangesOverlap","doQuery","execute","delByKeyPath","minKey","semVer","maxKey","addEventListener","updatedParts","event_1","initCustomEvent","BroadcastChannel","bc_1","unref","changedParts","postMessage","onmessage","localStorage","setItem","trig","random","matchAll","includeUncontrolled","client","newValue","swContainer","serviceWorker","domError","bm","messages","padStart","repeat","isArrayBufferView","toUint8","toHexString","toBinaryString","BigInt","Number","BYTE_TABLE","bytesToNumber","Uint16Array","_temp","_ref$signed","_ref$le","le","total","exponent","numberToBytes","_temp2","_ref2$le","byteCount","countBits","byteIndex","bytesToString","string","escape","stringToBytes","stringIsBytes","unescape","view","concatTypedArrays","_len","buffers","totalLen","buf","tempBuffer","bytesMatch","_temp3","_ref3","_ref3$offset","_ref3$mask","bByte","keyCode","searchInput","hasKeyCode","which","names","foundNamedKey","search","codes","aliases","isEventKey","nameOrCode","alias","NAMESPACE","nameStartChar","nameChar","tagNamePattern","ParseError","locator","captureStackTrace","XMLReader","copyLocator","lineNumber","columnNumber","parseElementStartPart","el","currentNSMap","entityReplacer","addAttribute","qname","startIndex","attributeNames","fatalError","addValue","attrName","charAt","warning","setTagName","isHTML","appendElement","domBuilder","localNSMap","qName","nsp","prefix","nsPrefix","_copy","XMLNS","startPrefixMapping","XML","ns","startElement","endElement","endPrefixMapping","parseHtmlSpecialContent","elStartEnd","elEndStart","characters","fixSelfClosed","closeMap","parseDCC","startCDATA","endCDATA","matchs","reg","pubid","sysid","lastMatch","startDTD","endDTD","parseInstruction","processingInstruction","ElementAttributes","defaultNSMap","entityMap","startDocument","defaultNSMapCopy","surrogate1","surrogate2","fixedFromCharCode","appendText","xt","lineEnd","linePattern","lineStart","parseStack","tagStart","doc","currentElement","config","endMatch","nbsp","locator2","endDocument","getLocalName","getLocator","getQName","getURI","getValue","conventions","find","notEmptyString","orderedSetReducer","toOrderedSet","list","splitOnASCIIWhitespace","copy","dest","_extends","Class","Super","pt","NodeType","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE","ExceptionCode","ExceptionMessage","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","NOT_FOUND_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","INUSE_ATTRIBUTE_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","DOMException","LiveNodeList","refresh","_node","_refresh","_updateLiveList","inc","_inc","ownerDocument","ls","__set__","NamedNodeMap","_findNodeIndex","_addNamedNode","newAttr","oldAttr","ownerElement","_onRemoveAttribute","namespaceURI","_nsMap","_onAddAttribute","_removeNamedNode","DOMImplementation","Node","_xmlEncoder","_visitNode","nextSibling","Document","remove","_onUpdateChild","newChild","cs","child","_removeChild","previous","previousSibling","lastChild","isDocTypeNode","nodeType","isElementNode","isTextNode","isElementInsertionPossible","parentChildNodes","docTypeNode","isElementReplacementPossible","assertPreInsertionValidity1to5","hasValidParentNodeType","hasInsertableNodeType","assertPreInsertionValidityInDocument","nodeChildNodes","nodeChildElements","parentElementChild","assertPreReplacementValidityInDocument","_insertBefore","_inDocumentAssertion","cp","newFirst","newLast","pre","Element","Attr","CharacterData","Text","Comment","CDATASection","DocumentType","Notation","Entity","EntityReference","DocumentFragment","ProcessingInstruction","XMLSerializer","nodeSerializeToString","isHtml","nodeFilter","refNode","documentElement","lookupPrefix","visibleNamespaces","namespace","serializeToString","needNamespaceDefine","addSerializedAttribute","qualifiedName","nodeName","prefixedNodeName","defaultNS","ai","nsi","publicId","systemId","sub","internalSubset","object","predicate","getNamedItem","setNamedItem","_ownerElement","setNamedItemNS","getNamedItemNS","removeNamedItem","removeNamedItemNS","hasFeature","feature","createDocument","doctype","implementation","createElementNS","createDocumentType","nodeValue","insertBefore","refChild","replaceChild","oldChild","hasChildNodes","cloneNode","deep","node2","attrs2","setAttributeNode","normalize","appendData","isSupported","hasAttributes","lookupNamespaceURI","isDefaultNamespace","importNode","importedNode","getElementById","rtv","getAttribute","getElementsByClassName","classNames","classNamesSet","base","nodeClassNames","matches","nodeClassNamesSet","createDocumentFragment","createComment","createCDATASection","createAttribute","specified","createEntityReference","pl","createAttributeNS","hasAttribute","getAttributeNode","removeAttribute","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagName","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","newText","newNode","$$length","getTextContent","setPrototypeOf","subClass","superClass","doccy","minDoc","topLevel","browserApi","hooks_","hooks","removeHook","FullscreenApi","prefixed","apiMap","specApi","history","log$1","createLogger$1","logByType","log","lvl","levels","lvlRegExp","unshift","LogByTypeFactory","createLogger","subname","fname","historyItem","disable","enable","_len2","_key2","_len3","_key3","_len4","_key4","isObject","sources","isPlain","computedStyle","getComputedStyle","computedStyleValue","getPropertyValue","USER_AGENT","webkitVersionMap","appleWebkitVersion","IS_IPOD","IOS_VERSION","IS_ANDROID","ANDROID_VERSION","major","minor","IS_NATIVE_ANDROID","IS_FIREFOX","IS_EDGE","IS_CHROME","CHROME_VERSION","IE_VERSION","IS_SAFARI","IS_WINDOWS","TOUCH_ENABLED","Boolean","isReal","maxTouchPoints","DocumentTouch","IS_IPAD","IS_IPHONE","IS_IOS","IS_ANY_SAFARI","browser","freeze","__proto__","isNonBlankString","throwIfWhitespace","isEl","isInFrame","createQuerier","selector","querySelector","createEl","properties","getOwnPropertyNames","appendContent","prependTo","hasClass","classToCheck","classList","addClass","classToAdd","removeClass","classToRemove","toggleClass","classToToggle","setAttributes","attrValue","getAttributes","knownBooleans","attrVal","attribute","blockTextSelection","body","focus","onselectstart","unblockTextSelection","rect","findPosition","offsetParent","fullscreenElement","getPointerPosition","translated","y","transform","_values","boxTarget","boxW","boxH","offsetY","offsetX","changedTouches","pageX","pageY","emptyEl","normalizeContent","insertContent","isSingleLeftClick","button","buttons","videojs$1","$","$$","Dom","_windowLoaded","autoSetup","vids","audios","divs","mediaEls","mediaEl","autoSetupTimeout","player","wait","vjs","setWindowLoaded","removeEventListener","readyState","FakeWeakMap","createStyleElement","setTextContent","styleSheet","cssText","_guid","newGUID","vdata","floor","performance","now","access","_supportsPassive","DomData","_cleanUpEvents","elem","handlers","dispatcher","detachEvent","disabled","_handleMultipleEvents","fixEvent","fixed_","returnTrue","returnFalse","isPropagationStopped","isImmediatePropagationStopped","srcElement","relatedTarget","fromElement","toElement","cancelBubble","stopImmediatePropagation","clientX","scrollLeft","clientLeft","clientY","scrollTop","clientTop","passiveEvents","guid","hash","handlersCopy","supportsPassive","passive","attachEvent","removeType","elemData","bubbles","targetData","one","func","EVENT_MAP","uid","throttle","EventTarget$2","allowedEvents_","ael","queueTrigger","Map","oldTimeout","objName","name_","isEvented","eventBusEl_","isValidEventType","validateTarget","fnName","validateEventType","validateListener","normalizeListenArgs","isTargetingSelf","listen","EventedMixin","_normalizeListenArgs","removeListenerOnDispose","removeRemoverOnTargetDispose","_normalizeListenArgs2","wrapper","largs","_normalizeListenArgs3","_len5","_key5","targetOrType","typeOrListener","evented","eventBusKey","eventedCallbacks","el_","StatefulMixin","setState","stateUpdates","stateful","defaultState","handleStateChanged","w","toTitleCase$1","mergeOptions$3","MapSham","map_","thisArg","Map$1","SetSham","set_","Set$1","Set","Component$1","Component","play","player_","isDisposed_","parentComponent_","options_","id_","handleLanguagechange","children_","childIndex_","childNameIndex_","setTimeoutIds_","setIntervalIds_","rafIds_","namedRafs_","clearingTimersOnDispose_","initChildren","reportTouchActivity","enableTouchActivity","readyQueue_","restoreEl","isDisposed","localize","tokens","defaultValue","languages","primaryCode","primaryLang","localizedString","contentEl","contentEl_","children","getChildById","getChild","getDescendant","currentChild","addChild","component","componentName","componentClassName","componentClass","ComponentClass","getComponent","childFound","compEl","workingChildren","parentOptions","Tech","wchild","isTech","playerOptions","buildCSSClass","sync","isReady_","triggerReady","readyQueue","show","hide","lockShowing","unlockShowing","skipListeners","dimension","dimensions","widthOrHeight","pxIndex","currentDimension","computedWidthOrHeight","rule","currentDimensions","currentWidth","currentHeight","blur","handleKeyDown","handleKeyPress","emitTapEvents","couldBeTap","touchStart","firstTouch","touches","xdiff","ydiff","sqrt","noTap","reportUserActivity","touchHolding","touchEnd","timeoutId","clearTimersOnDispose_","interval","requestAnimationFrame","_this4","supportsRaf_","requestNamedAnimationFrame","_this5","cancelNamedAnimationFrame","cancelAnimationFrame","_this6","idName","cancelName","registerComponent","ComponentToRegister","isComp","isPrototypeOf","components_","Player","players","playerNames","pname","valueIndex","rangeIndex","maxIndex","rangeCheck","createTimeRangesObj","timeRangesObj","createTimeRanges","bufferedPercent","buffered","bufferedDuration","MediaError","defaultMessages","errorTypes","1","2","3","4","5","errNum","isPromise","silencePromise","trackToJson_","textTrackConverter","tech","trackEls","trackObjs","trackEl","json","textTracks","addedTrack","addRemoteTextTrack","addCue","ModalDialog","_Component","handleKeyDown_","close_","opened_","hasBeenOpened_","hasBeenFilled_","closeable","uncloseable","MODAL_CLASS_NAME","role","descEl_","description","tabIndex","label","previouslyActiveEl_","fillAlways","fill","wasPlaying_","paused","pauseOnOpen","pause","hadControls_","controls","conditionalFocus_","opened","conditionalBlur_","temporary","closeable_","temp","controlText","fillWith","parentEl","nextSiblingEl","empty","closeButton","content_","activeEl","activeElement","playerEl","focusIndex","focusableEls","focusableEls_","shiftKey","allChildren","querySelectorAll","HTMLAnchorElement","HTMLAreaElement","HTMLInputElement","HTMLSelectElement","HTMLTextAreaElement","HTMLButtonElement","HTMLIFrameElement","HTMLObjectElement","HTMLEmbedElement","TrackList","_EventTarget","tracks","tracks_","addTrack","labelchange_","removeTrack","rtrack","getTrackById","addtrack","removetrack","labelchange","disableOthers$1","enabled","AudioTrackList","_TrackList","changing_","enabledChange_","disableOthers","selected","VideoTrackList","selectedChange_","TextTrackList","queueChange_","triggerSelectedlanguagechange","triggerSelectedlanguagechange_","kind","selectedlanguagechange_","HtmlTrackElementList","trackElements","trackElements_","addTrackElement_","trackElement","getTrackElementByTrack_","trackElement_","removeTrackElement_","TextTrackCueList","setCues_","length_","oldLength","cues_","defineProp","getCueById","VideoTrackKind","alternative","captions","main","sign","subtitles","commentary","AudioTrackKind","TextTrackKind","descriptions","chapters","metadata","TextTrackMode","hidden","showing","trackProps","_loop","newLabel","parseUrl","details","protocol","host","getAbsoluteURL","getFileExtension","isCrossOrigin","winLoc","urlInfo","Url","parseCues","srcContent","errors","groupCollapsed","groupEnd","loadTrack","crossOrigin","cors","withCredentials","tech_","response","responseBody","loaded_","TextTrack","_Track","srclang","default_","activeCues_","preload_","preloadTextTracks","activeCues","changed","timeupdateHandler","rvf_","requestVideoFrameCallback","stopTracking","startTracking","newMode","ct","currentTime","cancelVideoFrameCallback","originalCue","originalCue_","removeCue","_removeCue","cuechange","newEnabled","newSelected","HTMLTrackElement","load","NONE","LOADING","LOADED","ERROR","NORMAL","audio","ListClass","TrackClass","capitalName","video","getterName","privateName","REMOTE","remoteText","remoteTextEl","ALL","onDurationChange_","onDurationChange","trackProgress_","trackProgress","trackCurrentTime_","trackCurrentTime","stopTrackingCurrentTime_","stopTrackingCurrentTime","disposeSourceHandler_","disposeSourceHandler","queuedHanders_","hasStarted_","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","featuresNativeTextTracks","emulateTextTracks","autoRemoteTextTracks_","initTrackListeners","nativeControlsForTouch","triggerSourceset","manualProgress","manualProgressOff","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","duration_","manualTimeUpdates","manualTimeUpdatesOff","currentTimeInterval","manuallyTriggered","clearTracks","removeRemoteTextTrack","cleanupAutoTextTracks","reset","setCrossOrigin","error_","played","setScrubbing","scrubbing","setCurrentTime","trackListChanges","addWebVttScript_","script","onload","remoteTracks","remoteTextTracks","handleAddTrack","handleRemoveTrack","updateDisplay","textTracksChanges","addTextTrack","createTrackHelper","createRemoteTextTrack","manualCleanup","_this7","htmlTrackElement","remoteTextTrackEls","getVideoPlaybackQuality","requestPictureInPicture","PromiseClass","disablePictureInPicture","setDisablePictureInPicture","_this8","setPoster","playsinline","setPlaysinline","overrideNativeAudioTracks","overrideNativeVideoTracks","canPlayType","canPlaySource","srcObj","registerTech","techs_","defaultTechOrder_","getTech","videojs","featuresVolumeControl","featuresMuteControl","featuresFullscreenResize","featuresPlaybackRate","featuresSourceset","featuresVideoFrameCallback","withSourceHandlers","_Tech","registerSourceHandler","sourceHandlers","can","selectSourceHandler","canHandleSource","sh","originalFn","sourceHandler_","setSource","nativeSourceHandler","currentSource_","handleSource","middlewareInstances","TERMINATOR","setSourceHelper","middleware","lastRun","_middleware","mwFactory","mwrest","mws","_mws$i","mwf","mwi","getOrCreateFactory","_src","mediate","arg","callMethod","middlewareValue","middlewareIterator","terminated","executeRight","allowedGetters","muted","seekable","volume","ended","allowedSetters","setMuted","setVolume","allowedMediators","MimetypesKind","opus","ogv","m4v","m4a","caf","oga","m3u8","mpd","jpg","jpeg","gif","png","svg","webp","getMimetype","ext","fixSource","mimetype","MediaLoader","techOrder","techName","loadTech_","ClickableComponent","handleMouseOver_","handleMouseOver","handleMouseOut_","handleMouseOut","handleClick_","handleClick","tabIndex_","createControlTextEl","controlTextEl_","controlText_","localizedText","nonIconControl","noUITitleAttributes","enabled_","clickHandler","PosterImage","_ClickableComponent","update_","poster","setSrc","backgroundImage","sourceIsEncrypted","usingPlugin","eme","sessions","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","constructColor","opacity","hex","tryUpdateStyle","TextTrackDisplay","updateDisplayHandler","toggleDisplay","preselectTrack","firstDesc","firstCaptions","preferredTrack","modes","userPref","cache_","selectedLanguage","clearDisplay","allowMultipleShowingTracks","showingTracks","updateForTrack","descriptionsTrack","captionsSubtitlesTrack","_track","updateDisplayState","overrides","textTrackSettings","getValues","textOpacity","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontFamily","fontVariant","_i2","_track2","_j","cueEl","LoadingSpinner","isAudio","playerType","Button","BigPlayButton","_Button","mouseused_","handleMouseDown","playPromise","playToggle","playFocus","CloseButton","PlayToggle","replay","handlePlay","handlePause","handleEnded","handleSeeked","defaultImplementation","seconds","guide","gm","gh","formatTime","TimeDisplay","updateContent","updateTextNode_","span","labelText_","textNode_","time","formattedTime_","oldNode","CurrentTimeDisplay","_TimeDisplay","getCache","DurationDisplay","TimeDivider","RemainingTimeDisplay","displayNegative","remainingTimeDisplay","remainingTime","LiveDisplay","updateShowing","SeekToLive","updateLiveEdgeStatus","liveTracker","updateLiveEdgeStatusHandler_","textEl_","atLiveEdge","seekToLiveEdge","clamp","Slider","handleMouseDown_","handleMouseUp_","handleMouseUp","handleMouseMove_","handleMouseMove","bar","barName","playerEvent","progress","getProgress","progress_","sizeKey","toFixed","getPercent","calculateDistance","stepBack","stepForward","bool","vertical_","percentify","LoadProgressBar","partEls_","loadedText","separator","percentageEl_","isLive","seekableEnd","bufferedEnd","percent_","dataset","TimeTooltip","seekBarRect","seekBarPoint","tooltipRect","playerRect","seekBarPointPx","spaceLeftOfPoint","spaceRightOfPoint","pullTooltipBy","write","updateTime","liveWindow","secondsBehind","PlayProgressBar","timeTooltip","MouseTimeDisplay","SeekBar","_Slider","setEventHandlers_","updateInterval","enableIntervalHandler_","enableInterval_","disableIntervalHandler_","disableInterval_","toggleVisibility_","visibilityState","getCurrentTime_","liveCurrentTime","currentTime_","userSeek_","nextSeekedFromUser","seekableStart","videoWasPlaying","mouseDown","newTime","distance","mouseTimeDisplay","handleAction","gotoFraction","STEP_SECONDS","ProgressControl","throttledHandleMouseSeek","handleMouseSeek","handleMouseUpHandler_","handleMouseDownHandler_","seekBar","playProgressBar","seekBarEl","removeListenersAddedOnMousedownAndTouchstart","PictureInPictureToggle","handlePictureInPictureChange","handlePictureInPictureEnabledChange","currentType","audioPosterMode","audioOnlyMode","isInPictureInPicture","exitPictureInPicture","pictureInPictureEnabled","FullscreenToggle","handleFullscreenChange","fsApi_","fullscreenEnabled","isFullscreen","exitFullscreen","requestFullscreen","VolumeLevel","VolumeLevelTooltip","rangeBarRect","rangeBarPoint","volumeBarPointPx","updateVolume","MouseVolumeLevelDisplay","VolumeBar","updateLastVolume_","updateARIAAttributes","mouseVolumeLevelDisplay","volumeBarEl","volumeBarRect","volumeBarPoint","checkMuted","ariaValue","volumeAsPercentage_","volumeBeforeDrag","lastVolume_","VolumeControl","volumeBar","checkVolumeSupport","throttledHandleMouseMove","orientationClass","MuteToggle","checkMuteSupport","vol","lastVolume","volumeToSet","updateIcon_","updateControlText_","VolumePanel","inline","volumeControl","handleKeyPressHandler_","volumePanelState_","muteToggle","handleVolumeControlKeyUp","sliderActive_","sliderInactive_","Menu","menuButton_","menuButton","focusedChild_","boundHandleBlur_","handleBlur","boundHandleTapClick_","handleTapClick","addEventListenerForItem","removeEventListenerForItem","addItem","childComponent","contentElType","append","btn","buttonPressed_","unpressButton","childComponents","foundComponent","stepChild","MenuButton","buttonClass","handleMenuKeyUp_","handleMenuKeyUp","menu","handleMouseLeave","handleSubmenuKeyDown","createMenu","items","hideThreshold_","titleEl","titleComponent","createItems","buildWrapperCSSClass","menuButtonClass","pressButton","handleSubmenuKeyPress","TrackButton","_MenuButton","updateHandler","MenuKeys","MenuItem","selectable","isSelected_","multiSelectable","_selected","TextTrackMenuItem","_MenuItem","kinds","changeHandler","handleTracksChange","selectedLanguageChangeHandler","handleSelectedLanguageChange","onchange","Event","referenceTrack","shouldBeSelected","OffTextTrackMenuItem","_TextTrackMenuItem","allHidden","TextTrackButton","_TrackButton","TrackMenuItem","label_","kinds_","kind_","ChaptersTrackMenuItem","ChaptersButton","_TextTrackButton","selectCurrentItem_","track_","findChaptersTrack","setTrack","updateHandler_","remoteTextTrackEl","_remoteTextTrackEl","getMenuCaption","mi","DescriptionsButton","SubtitlesButton","CaptionSettingsMenuItem","CaptionsButton","SubsCapsMenuItem","parentSpan","SubsCapsButton","language_","AudioTrackMenuItem","audioTracks","featuresNativeAudioTracks","AudioTrackButton","PlaybackRateMenuItem","rate","playbackRate","PlaybackRateMenuButton","labelElId_","updateVisibility","updateLabel","handlePlaybackRateschange","labelEl_","rates","playbackRates","currentRate","newIndex","playbackRateSupported","Spacer","CustomControlSpacer","_Spacer","ControlBar","ErrorDisplay","_ModalDialog","COLOR_BLACK","COLOR_BLUE","COLOR_CYAN","COLOR_GREEN","COLOR_MAGENTA","COLOR_RED","COLOR_WHITE","COLOR_YELLOW","OPACITY_OPAQUE","OPACITY_SEMI","OPACITY_TRANS","selectConfigs","parseOptionValue","TextTrackSettings","endDialog","setDefaults","persistTextTrackSettings","saveSettings","restoreSettings","createElSelect_","legendId","selectLabelledbyIds","optionId","createElFgColor_","createElBgColor_","createElWinColor_","createElColors_","createElFont_","createElControls_","defaultsDescription","initial","accum","selectedIndex","setValues","setSelectedOption","getItem","removeItem","ttDisplay","controlBar","subsCapsBtn","subsCapsButton","ccBtn","captionsButton","ResizeManager","RESIZE_OBSERVER_AVAILABLE","ResizeObserver","loadListener_","resizeObserver_","debouncedHandler_","immediate","debounced","_later","cancel","debounce","resizeHandler","contentWindow","unloadListener_","unobserve","disconnect","resizeObserver","defaults","trackingThreshold","liveTolerance","LiveTracker","handleVisibilityChange_","handleVisibilityChange","trackLiveHandler_","trackLive_","handlePlay_","handleFirstTimeupdate_","handleFirstTimeupdate","handleSeeked_","seekToLiveEdge_","reset_","handleDurationchange","toggleTracking","deltaTime","lastTime_","pastSeekEnd_","pastSeekEnd","isBehind","seekedBehindLive_","timeupdateSeen_","behindLiveEdge_","liveui","isTracking","hasStarted","trackingInterval_","timeDiff","nextSeekedFromUser_","lastSeekEnd_","seekableEnds","seekableStarts","behindLiveEdge","sourcesetLoad","srcUrls","innerHTMLDescriptorPolyfill","dummy","docFrag","getDescriptor","priority","descriptor","firstSourceWatch","resetSourceWatch_","innerDescriptor","HTMLMediaElement","getInnerHTMLDescriptor","appendWrapper","appendFn","retval","srcDescriptorPolyfill","setupSourceset","resetSourceset_","srcDescriptor","getSrcDescriptor","oldSetAttribute","oldLoad","currentSrc","defineLazyProperty","setter","Html5","crossoriginTracks","initNetworkState_","handleLateInit_","enableSourceset","setupSourcesetHandling_","isScrubbing_","nodes","nodesLength","removeNodes","proxyNativeTracks_","restoreMetadataTracksInIOSNativePlayer_","setControls","proxyWebkitFullscreen_","disposeMediaElement","metadataTracksPreFullscreenState","takeMetadataTrackSnapshot","storedMode","restoreTrackMode","storedTrack","overrideNative_","lowerCaseType","proxyNativeTracksForType_","elTracks","techTracks","currentTarget","removeOldTracks","removeTracks","playerElIngest","movingMediaElementInDOM","techId","playerId","preload","settingsAttrs","networkState","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","isScrubbing","fastSeek","checkProgress","endFn","beginFn","webkitPresentationMode","nativeIOSFullscreen","supportsFullScreen","webkitEnterFullScreen","enterFullScreen","HAVE_METADATA","exitFullScreen","webkitDisplayingFullscreen","webkitExitFullScreen","webkitKeys","resetMediaElement","videoPlaybackQuality","webkitDroppedFrameCount","webkitDecodedFrameCount","droppedVideoFrames","totalVideoFrames","creationTime","timing","navigationStart","TEST_VID","canControlVolume","canControl","canMuteVolume","canControlPlaybackRate","canOverrideAttributes","supportsNativeTextTracks","supportsNativeVideoTracks","videoTracks","supportsNativeAudioTracks","patchCanPlayType","unpatchCanPlayType","TECH_EVENTS_RETRIGGER","TECH_EVENTS_QUEUE","canplay","canplaythrough","playing","seeked","BREAKPOINT_ORDER","BREAKPOINT_CLASSES","DEFAULT_BREAKPOINTS","tiny","xsmall","small","medium","large","xlarge","huge","getTagSettings","closest","boundDocumentFullscreenChange_","documentFullscreenChange_","boundFullWindowOnEscKey_","fullWindowOnEscKey","boundUpdateStyleEl_","updateStyleEl_","boundApplyInitTime_","applyInitTime_","boundUpdateCurrentBreakpoint_","updateCurrentBreakpoint_","boundHandleTechClick_","handleTechClick_","boundHandleTechDoubleClick_","handleTechDoubleClick_","boundHandleTechTouchStart_","handleTechTouchStart_","boundHandleTechTouchMove_","handleTechTouchMove_","boundHandleTechTouchEnd_","handleTechTouchEnd_","boundHandleTechTap_","handleTechTap_","isFullscreen_","isPosterFromTech_","queuedCallbacks_","userActive_","debugEnabled_","audioOnlyMode_","audioPosterMode_","audioOnlyCache_","playerHeight","hiddenChildren","tagAttributes","languagesToLower","languages_","resetCache_","poster_","controls_","changingSrc_","playCallbacks_","playTerminatedQueue_","autoplay","plugins","scrubbing_","fullscreenchange","fluid_","playerOptionsCopy","middleware_","flexNotSupported_","majorVersion","userActive","listenForUserActivity_","handleStageClick_","breakpoints","responsive","styleEl_","playerElIngest_","divEmbed","tabindex","VIDEOJS_NO_DYNAMIC_STYLE","defaultsStyleEl","head","fill_","fluid","aspectRatio","crossorigin","links","linkEl","techGet_","techCall_","_dimension","privDimension","parsedVal","ratio","aspectRatio_","idClass","ratioParts","videoWidth","videoHeight","ratioMultiplier","width_","height_","_height","techEl","unloadTech_","titleTechName","camelTechName","techName_","normalizeAutoplay","techOptions","loop","techCanOverridePoster","TechClass","handleTechReady_","textTracksJson_","eventObj","seeking","handleTechLoadStart_","handleTechSourceset_","handleTechWaiting_","handleTechEnded_","handleTechSeeking_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechFullscreenError_","handleTechEnterPictureInPicture_","handleTechLeavePictureInPicture_","handleTechError_","handleTechPosterChange_","handleTechTextData_","handleTechRateChange_","usingNativeControls","addTechControlsListeners_","safety","removeTechControlsListeners_","manualAutoplay_","resolveMuted","previouslyMuted","restoreMuted","mutedPromise","updateSourceCaches_","matchingSources","findMimetype","sourceElSources","sourceEls","matchingSourceEls","sourceObj","updateSourceCaches","playerSrc","currentSource","eventSrc","lastSource_","techSrc","techGet","lastPlaybackRate","queued","timeWhenWaiting","timeUpdateListener","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechSeeked_","starttime","userActions","click","doubleClick","userWasActive","cancelable","toggleFullscreenClass_","targetPlayer","isFs","fullscreen","msMatchesSelector","_this9","togglePictureInPictureClass_","initTime","inactivityTimeout","defaultPlaybackRate","reduceRight","_this10","play_","_this11","isSrcReady","isSafariOrIOS","waitToPlay_","resetProgressBar_","runPlayTerminatedQueue_","runPlayCallbacks_","q","percentAsDecimal","_muted","defaultMuted","_defaultMuted","isFS","oldValue","fullscreenOptions","offHandler","requestFullscreenHelper_","fsOptions","_this12","preferFullWindow","enterFullWindow","exitFullscreenHelper_","_this13","exitFullWindow","isFullWindow","docOrigOverflow","overflow","isPiP","isInPictureInPicture_","hotkeys","isContentEditable","excludeElement","handleHotkeys","_hotkeys$fullscreenKe","fullscreenKey","keydownEvent","_hotkeys$muteKey","muteKey","_hotkeys$playPauseKey","playPauseKey","FSToggle","selectSource","_this14","techs","findFirstPassingTechSourcePair","outerArray","innerArray","tester","outerChoice","innerChoice","finder","sourceOrder","handleSrc_","isRetry","_this15","resetRetryOnError_","filterSource","newsrc","srcobj","middlewareSource","src_","notSupportedMessage","setTech","retryOnError","retry","stopListeningForErrors","str1","str2","_this16","sourceTech","_this17","doReset_","resetControlBarUI_","resetPlaybackRate_","resetVolumeBar_","durationDisplay","currentSources","techAutoplay","newPoster","usingNativeControls_","_this18","hookFunction","newErr","suppressNotSupportedError","triggerSuppressedError","errorDisplay","userActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","handleMouseUpAndMouseLeave","screenX","screenY","isAudio_","enableAudioOnlyUI_","_this19","playerChildren","controlBarHeight","disableAudioOnlyUI_","_this20","exitPromises","enablePosterModeUI_","disablePosterModeUI_","_this21","toJSON","createModal","_this22","modal","currentBreakpoint","candidateBreakpoint","breakpoints_","breakpoint_","removeCurrentBreakpoint_","currentBreakpointClass","_breakpoints","responsive_","loadMedia","_this23","_this$cache_$media","artwork","tt","getMedia","baseOptions","tagOptions","dataSetup","_safeParseTuple","childName","previousLogLevel_","newRates","html5","userLanguage","navigationUI","pluginStorage","pluginExists","getPlugin","markPluginAsActive","triggerSetupEvent","before","createPluginFactory","PluginSubClass","plugin","instance","getEventHash","Plugin","VERSION","isBasic","registerPlugin","basicPluginWrapper","createBasicPlugin","deregisterPlugin","getPlugins","getPluginVersion","BASE_PLUGIN_NAME","hasPlugin","hasLogged","normalizeId","getPlayer","defaultView","PlayerComponent","hookOnce","original","getPlayers","nId","_tag","_player","getAllPlayers","comp","writeable","subClassMethods","methods","super_","mergeOptions","addLanguage","_mergeOptions","createTimeRange","setFormatTime","customImplementation","resetFormatTime","EventTarget","xhr","dom","resolveUrl","resolveManifestRedirect","handleManifestRedirect","responseURL","logger","filterRanges","timeRanges","findRange","TIME_FUDGE_FACTOR","findNextRange","printableRange","strArr","timeRangesToArray","timeRangesList","lastBufferedEnd","timeAheadOf","segmentDurationWithParts","getPartsAndSegments","si","pi","getLastParts","lastSegment","getKnownPartCount","partCount","liveEdgeDelay","master","suggestedPresentationDelay","partHoldBack","holdBack","intervalDuration","endSequence","expired","backward","backwardDuration","forward","forwardDuration","totalDuration","sumDurations","defaultDuration","durationList","endIndex","durations","playlistEnd","useSafeLiveEnd","liveEdgePadding","lastSegmentEndTime","isBlacklisted","excludeUntil","isIncompatible","isEnabled","blacklisted","isLowestEnabledRendition","currentBandwidth","MAX_VALUE","playlistMatch","resolvedUri","someAudioVariant","AUDIO","groupName","isAudioOnly","variant","CODECS","_ret","Playlist","getMediaInfoForTime","_ref4","startingSegmentIndex","startingPartIndex","experimentalExactManifestTimings","partsAndSegments","partAndSegment","_partAndSegment","_i3","_i4","_partAndSegment2","isDisabled","isAes","estimateSegmentRequestTime","segmentDuration","bandwidth","bytesReceived","createPlaylistID","groupID","group","forEachMediaGroup","mediaType","groupKey","labelKey","mediaProperties","setupMediaPlaylist","playlistErrors_","addPropertiesToMaster","createGroupID","phonyUri","audioOnlyMaster","groupId","setupMediaPlaylists","resolveMediaGroupUris","mergeOptions$2","EventTarget$1","updateSegment","skipped","resolveSegmentUris","baseUri","getAllSegments","isPlaylistUnchanged","updateMaster$1","newMedia","unchangedCheck","oldMedia","mergedPlaylist","skippedSegments","oldSegments","newSegments","oldSegment","newSegment","updateSegments","refreshDelay","lastDuration","PlaylistLoader","vhs","logger_","_options$withCredenti","_options$handleManife","handleManifestRedirects","vhs_","vhsOptions","customTagParsers","customTagMappers","experimentalLLHLS","handleMediaupdatetimeout_","parameters","nextMSN","nextPart","_HLS_part","_HLS_msn","canSkipUntil","_HLS_skip","parsedUri","URL","searchParams","addLLHLSQueryDirectives","playlistRequestError","haveMetadata","playlistString","responseText","startingState","parseManifest_","onwarn","oninfo","manifestString","_ref$customTagParsers","_ref$customTagMappers","customParser","parseManifest","playlistObject","lastRequest","pendingMedia_","media_","updateMediaUpdateTimeout_","stopRequest","mediaUpdateTimeout","finalRenditionTimeout","oldRequest","onreadystatechange","shouldDelay","delay","mediaChange","masterPlaylistRef","started","setupInitialPlaylist","srcUri","masterForMedia","videojsXHR","mergeOptions$1","callbackWrapper","reqResponse","responseType","responseTime","roundTripTime","requestTime","headers","responseHeaders","timedout","aborted","statusCode","xhrFactory","XhrFunction","beforeRequest","Vhs","newOptions","originalAbort","segmentXhrHeaders","textRange","formatHexString","formatAsciiString","createTransferableMessage","transferable","initSegmentId","initSegment","segmentKeyId","hexDump","utils","tagDump","textRanges","getProgramTime","_ref$time","matchedSegment","segmentEnd","videoTimingInfo","transmuxedPresentationEnd","estimatedStart","transmuxedPresentationStart","findSegmentForPlayerTime","seekTime","programTimeObject","mediaSeconds","programTime","playerTime","transmuxerPrependedSeconds","offsetFromSegmentStart","getTime","playerTimeToProgramTime","programDateTime","toISOString","seekToProgramTime","_ref2$retryCount","retryCount","seekTo","_ref2$pauseAfterSeek","pauseAfterSeek","verifyProgramDateTimeTags","lastSegmentStart","lastSegmentDuration","findSegmentForProgramTime","mediaOffset","comparisonTimeStamp","segmentDateTime","segmentTimeEpoch","getOffsetFromTimestamp","seekToTime","callbackOnCompleted","dashPlaylistUnchanged","sidx","aSegment","bSegment","aByterange","bByterange","dashGroupId","updateMaster","oldMaster","newMaster","sidxMapping","noChanges","minimumUpdatePeriod","timelineStarts","sidxKey","playlistUpdate","_playlistUpdate","removeOldMediaGroupLabels","compareSidxEntry","oldSidxMapping","newSidxMapping","currentSidxInfo","savedSidxInfo","sidxInfo","DashPlaylistLoader","srcUrlOrPlaylist","masterPlaylistLoader","masterPlaylistLoader_","isMaster_","refreshXml_","refreshMedia_","loadedPlaylists_","srcUrl","sidxMapping_","childPlaylist_","requestErrored_","addSidxSegments_","fin","id3Offset","finished","endRequestAndCallback","_bytes","progressListener","newPart","beforeSend","overrideMimeType","loaded","containerRequest","internal","blacklistDuration","_playlist$sidx$bytera","mediaRequest_","minimumUpdatePeriodTimeout_","createMupOnMedia_","hasPendingRequest","sidxChanged","isFinalRendition","updateMinimumUpdatePeriodTimeout_","requestMaster_","masterChanged","haveMaster_","masterXml_","date","masterLoaded_","handleMaster_","syncClientServerClock_","utcTiming","clientOffset_","serverTime","masterXml","clientOffset","previousManifest","manifestUri","parseMasterXml","locations","mpl","mup","createMUPTimeout_","mediaGroupSidx","filterChangedSidxMappings","mediaID","mediaChanged","createMediaUpdateTimeout","Config","GOAL_BUFFER_LENGTH","MAX_GOAL_BUFFER_LENGTH","BACK_BUFFER_LENGTH","GOAL_BUFFER_LENGTH_RATE","INITIAL_BANDWIDTH","BANDWIDTH_VARIANCE","BUFFER_LOW_WATER_LINE","MAX_BUFFER_LOW_WATER_LINE","EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE","BUFFER_LOW_WATER_LINE_RATE","BUFFER_HIGH_WATER_LINE","browserWorkerPolyFill","workerObj","objectUrl","createObjectURL","Blob","blob","BlobBuilder","getBlob","worker","Worker","objURL","terminate","revokeObjectURL","getWorkerString","TransmuxWorker","init","flushSource","partialFlush","endTimeline","dinf","esds","ftyp","mdat","mfhd","minf","mvex","mvhd","trak","tkhd","mdia","mdhd","hdlr","sdtp","stbl","stsd","traf","trex","trun$1","MAJOR_BRAND","MINOR_VERSION","AVC1_BRAND","VIDEO_HDLR","AUDIO_HDLR","HDLR_TYPES","VMHD","SMHD","DREF","STCO","STSC","STSZ","STTS","MAX_UINT32$1","numbers","getUint64","uint8","dv","DataView","getBigUint64","MAX_SAFE_INTEGER","getUint32","MAX_UINT32","avc1","avcC","btrt","dref","mp4a","pasp","smhd","stco","stsc","stsz","stts","styp","tfdt","tfhd","trun","vmhd","payload","setUint32","audioobjecttype","samplingfrequencyindex","channelcount","samplerate","sequenceNumber","trackFragments","samples","dependsOn","isDependedOn","hasRedundancy","videoSample","audioSample","avc1Box","sps","pps","sequenceParameterSets","pictureParameterSets","profileIdc","profileCompatibility","levelIdc","sarRatio","hSpacing","vSpacing","samplesize","trackFragmentHeader","trackFragmentDecodeTime","trackFragmentRun","sampleDependencyTable","upperWordBaseMediaDecodeTime","lowerWordBaseMediaDecodeTime","baseMediaDecodeTime","audioTrun","videoTrun","trunHeader","durationPresent","sizePresent","flagsPresent","compositionTimeOffset","bytesOffest","header","sample","isLeading","paddingValue","isNonSyncSample","degradationPriority","silence","secondsToVideoTs","secondsToAudioTs","videoTsToSeconds","audioTsToSeconds","audioTsToVideoTs","videoTsToAudioTs","metadataTsToSeconds","mp4Generator","fileType","movie","sampleForFrame","dataOffset","pts","dts","keyFrame","frameUtils","nalUnits","currentNal","currentFrame","frames","nalCount","nalUnitType","currentGop","gops","baseDataOffset","nalsByteLength","numberOfNals","highPrefix","lowPrefix","zeroFill","silence_1","coneOfSilence","96000","88200","64000","48000","44100","32000","24000","16000","12000","11025","8000","metaTable","arr","timestamp","sampleRate","timelineStartPts","keepOriginalTimestamps","clock","audioFrameUtils","audioAppendStartTs","videoBaseMediaDecodeTime","baseMediaDecodeTimeTs","frameDuration","silentFrame","firstFrame","audioGapDuration","audioFillFrameCount","audioFillDuration","adtsFrames","earliestAllowedDts","minSegmentDts","minSegmentPts","sum","sumFrameByteLengths","ONE_SECOND_IN_TS$3","trackDecodeInfo","maxSegmentDts","maxSegmentPts","timelineStartInfo","captionPacketParser","payloadType","payloadSize","sei","userData","ccData","emulationPreventionBytesPositions","CaptionStream$1","CaptionStream","parse708captions_","parse708captions","captionPackets_","ccStreams_","Cea608Stream","cc708Stream_","Cea708Stream","captionServices","cc","newCaptionPackets","escapedRBSP","latestDts_","ignoreNextEqualDts_","numSameDts_","flushCCStreams","flushType","flushStream","presortIndex","packet","dispatchCea608Packet","dispatchCea708Packet","activeCea608Channel_","ccStream","setsTextOrXDSActive","setsChannel1Active","setsChannel2Active","CHARACTER_TRANSLATION_708","within708TextBlock","Cea708Window","windowNum","clearText","pendingNewLine","winAttr","penAttr","penLoc","penColor","visible","rowLock","columnLock","relativePositioning","anchorVertical","anchorHorizontal","anchorPoint","rowCount","virtualRowCount","columnCount","windowStyle","penStyle","getText","rows","rowIdx","beforeRowOverflow","isEmpty","addText","backspace","row","Cea708Service","serviceNum","encoding","currentWindow","windows","createTextDecoder","startPts","win","setCurrentWindow","textDecoder_","serviceProps","captionServiceEncodings","serviceName","serviceEncodings","current708Packet","services","new708Packet","add708Bytes","push708Packet","ptsVals","byte0","byte1","packet708","packetData","blockSize","seq","sizeCode","pushServiceBlock","service","initService","handleText","multiByteCharacter","extendedCommands","defineWindow","clearWindows","deleteWindows","displayWindows","hideWindows","toggleWindows","setWindowAttributes","setPenAttributes","setPenColor","setPenLocation","isExtended","getPts","flushDisplayed","_char","charCodeArray","isMultiByte","extended","currentByte","nextByte","newCode","get708CharFromCode","firstByte","secondByte","fillOpacity","fillRed","fillGreen","fillBlue","borderType","borderRed","borderGreen","borderBlue","wordWrap","printDirection","scrollDirection","justify","effectSpeed","effectDirection","displayEffect","displayedText","winId","endPts","pushCaption","textTag","penSize","italics","underline","edgeType","fontStyle","fgOpacity","fgRed","fgGreen","fgBlue","bgOpacity","bgRed","bgGreen","bgBlue","edgeRed","edgeGreen","edgeBlue","column","CHARACTER_TRANSLATION","getCharFromCode","ROWS","createDisplayBuffer","BOTTOM_ROW","field","dataChannel","field_","dataChannel_","setConstants","swap","char0","char1","lastControlCode_","PADDING_","RESUME_CAPTION_LOADING_","mode_","END_OF_CAPTION_","clearFormatting","displayed_","nonDisplayed_","startPts_","ROLL_UP_2_ROWS_","rollUpRows_","setRollUp","ROLL_UP_3_ROWS_","ROLL_UP_4_ROWS_","CARRIAGE_RETURN_","shiftRowsUp_","BACKSPACE_","row_","ERASE_DISPLAYED_MEMORY_","ERASE_NON_DISPLAYED_MEMORY_","RESUME_DIRECT_CAPTIONING_","isSpecialCharacter","column_","isExtCharacter","isMidRowCode","addFormatting","isOffsetControlCode","isPAC","formatting_","isColorPAC","isNormalChar","topRow_","BASE_","EXT_","CONTROL_","OFFSET_","_char2","newBaseRow","format","popOn","baseRow","rollUp","paintOn","captionStream","streamTypes","H264_STREAM_TYPE","ADTS_STREAM_TYPE","METADATA_STREAM_TYPE","handleRollover$1","TimestampRolloverStream$1","TimestampRolloverStream","lastDTS","referenceDTS","type_","_MetadataStream","timestampRolloverStream","percentEncode$1","parseUtf8","parseSyncSafeInteger$1","tagParsers","TXXX","WXXX","PRIV","owner","privateData","tagSize","dispatchType","frameStart","frameSize","dataAlignmentIndicator","timeStamp","_TransportPacketStream","_TransportParseStream","_ElementaryStream","metadataStream","bytesInBuffer","everything","parsePsi","parsePat","parsePmt","packetsWaitingForPmt","programMapTable","psi","payloadUnitStartIndicator","pat","section_number","last_section_number","pmtPid","pmt","tableEnd","pid","processPes_","STREAM_TYPES","h264","adts","segmentHadPmt","timedMetadata","forceFlush","packetFlushable","trackId","pes","ptsDtsFlags","startPrefix","packetLength","parsePes","codec","flushStreams_","m2ts","PAT_PID","MP2T_PACKET_LENGTH","TransportPacketStream","TransportParseStream","ElementaryStream","MetadataStream","_AdtsStream","m2ts_1","ONE_SECOND_IN_TS$2","ADTS_SAMPLING_FREQUENCIES$1","handlePartialSegments","frameNum","skipWarn_","frameLength","protectionSkipBytes","oldBuffer","sampleCount","adtsFrameDuration","_H264Stream","_NalByteStream","PROFILES_WITH_OPTIONAL_SPS_DATA","expGolomb","workingData","workingBytesAvailable","workingWord","workingBitsAvailable","bitsAvailable","loadWord","workingBytes","availableBytes","skipBits","skipBytes","readBits","bits","valu","skipLeadingZeros","leadingZeroCount","skipUnsignedExpGolomb","skipExpGolomb","readUnsignedExpGolomb","clz","readExpGolomb","readBoolean","readUnsignedByte","syncPoint","swapBuffer","100","110","122","244","44","83","86","118","128","138","139","134","currentPts","currentDts","discardEmulationPreventionBytes","readSequenceParameterSet","skipScalingList","nalByteStream","nalUnitTypeCode","expGolombDecoder","lastScale","nextScale","chromaFormatIdc","picOrderCntType","numRefFramesInPicOrderCntCycle","picWidthInMbsMinus1","picHeightInMapUnitsMinus1","frameMbsOnlyFlag","scalingListCount","frameCropLeftOffset","frameCropRightOffset","frameCropTopOffset","frameCropBottomOffset","_AacStream","H264Stream","NalByteStream","ADTS_SAMPLING_FREQUENCIES","parseId3TagSize","returnSize","parseSyncSafeInteger","isLikelyAacData","getId3Offset","parseAdtsSize","lowThree","parseType","parseSampleRate","parseAacTimestamp","percentEncode","setTimestamp","bytesLeft","tempLength","_VideoSegmentStream","_AudioSegmentStream","_Transmuxer","_CoalesceStream","audioProperties","videoProperties","ONE_SECOND_IN_TS$1","retriggerForStream","addPipelineLogRetriggers","transmuxer","pipeline","arrayEquals","generateSegmentTimingInfo","startDts","endDts","prependedContentDuration","firstSequenceNumber","setEarliestDts","earliestDts","setVideoBaseMediaDecodeTime","setAudioAppendStart","videoClockCyclesOfSilencePrefixed","gopsToAlignWith","minPTS","gopCache_","nalUnit","gopForFusion","firstGop","lastGop","resetStream_","getGopForFusion_","alignedGops","alignGopsAtEnd","alignGopsAtEnd_","alignGopsAtStart_","gop","dtsDistance","nearestGopObj","currentGopObj","nearestDistance","alignIndex","gopIndex","alignEndIndex","matchFound","trimIndex","alignGopsWith","newGopsToAlignWith","numberOfTracks","remux","remuxTracks","pendingTracks","videoTrack","pendingBoxes","pendingCaptions","pendingMetadata","pendingBytes","emittedTracks","output","audioTrack","caption","id3","captionStreams","cueTime","setRemux","hasFlushed","transmuxPipeline_","setupAacPipeline","aacStream","audioTimestampRolloverStream","timedMetadataTimestampRolloverStream","adtsStream","coalesceStream","headOfPipeline","audioSegmentStream","getLogTrigger_","hasAudio","hasVideo","setupTsPipeline","packetStream","elementaryStream","h264Stream","videoSegmentStream","id3Frame","setBaseMediaDecodeTime","isAac","resetCaptions","getTracks","getTimescaleFromMediaHeader","Transmuxer","VideoSegmentStream","AudioSegmentStream","AUDIO_PROPERTIES","VIDEO_PROPERTIES","bin","parseType_1","toUnsigned$2","findBox_1","subresults","toUnsigned$1","getUint64$1","parseTfdt","parseSampleFlags_1","parseTrun","dataOffsetPresent","firstSampleFlagsPresent","sampleDurationPresent","sampleSizePresent","sampleFlagsPresent","sampleCompositionTimeOffsetPresent","getInt32","parseTfhd","baseDataOffsetPresent","sampleDescriptionIndexPresent","defaultSampleDurationPresent","defaultSampleSizePresent","defaultSampleFlagsPresent","durationIsEmpty","defaultBaseIsMoof","sampleDescriptionIndex","defaultSampleDuration","defaultSampleSize","defaultSampleFlags","baseDataOffsetIsMoof","commonjsGlobal","window_1","mapToSample","approximateOffset","parseCaptionNals","videoTrackId","trafs","mdats","captionNals","mdatTrafPairs","matchingTraf","pair","headerInfo","truns","avcStream","seiNal","lastMatchedSample","avcView","logs","seiNals","matchingSample","findSeiNals","allSamples","parseSamples","captionParser","segmentCache","timescale","parsedCaptions","parsingPartial","isInitialized","isPartial","isNewInit","videoTrackIds","timescales","parsedData","cachedSegment","trackNals","parseEmbeddedCaptions","pushNals","nals","nal","clearParsedCaptions","resetCaptionStream","clearAllCaptions","toUnsigned","lowestTime","baseTime","scale","traks","tkhdVersion","getUint8","sampleDescriptions","codecConfig","codecBox","probe$2","parsePid","parsePayloadUnitStartIndicator","parseAdaptionField","parseNalUnitType","probe$1","pusi","payloadOffset","parsePesType","parsePesTime","videoPacketContainsKeyFrame","frameBuffer","frameI","frameSyncPoint","foundKeyFrame","handleRollover","probe","ONE_SECOND_IN_TS","parseAudioPes_","pesType","parsed","endLoop","parseVideoPes_","firstKeyFrame","inspectTs_","parsePsi_","tsInspector","baseTimestamp","audioCount","audioTimescale","inspectAac_","segmentInfo","audioBaseTimestamp","dtsTime","ptsTime","videoBaseTimestamp","adjustTimestamp_","MessageHandlers","initArray","typedArray","action","gopInfo","timingInfo","videoSegmentTimingInfo","presentation","audioSegmentTimingInfo","trackInfo","audioTimingInfo","wireTransmuxerEvents","pushMp4Captions","trackIds","probeMp4StartTime","probeMp4Tracks","probeTs","baseStartTime","tsStartTime","timeInfo","videoStart","audioStart","clearAllMp4Captions","clearParsedMp4Captions","setTimestampOffset","timestampOffset","appendStart","messageHandlers","processTransmux","audioAppendStart","onData","onTrackInfo","onAudioTimingInfo","onVideoTimingInfo","onVideoSegmentTimingInfo","onAudioSegmentTimingInfo","onId3","onCaptions","onDone","onEndedTimeline","onTransmuxerLog","isEndOfTimeline","transmuxedData","waitForEndedTimelineEvent","currentTransmux","_event$data$segment","videoFrameDtsTime","videoFramePtsTime","handleData_","handleGopInfo_","handleDone_","dequeue","transmuxQueue","processAction","enqueueAction","transmux","segmentTransmuxer","term","workerCallback","endAction","listenForEndEvent","isArrayBuffer","transfers","REQUEST_ERRORS","abortAll","activeXhrs","handleErrors","handleKeyResponse","finishProcessingFn","errorObj","parseInitSegment","_callback","handleSegmentResponse","newBytes","stringToArrayBuffer","lastReachedChar","stats","getRequestStats","encryptedBytes","transmuxAndNotify","trackInfoFn","timingInfoFn","videoSegmentTimingInfoFn","audioSegmentTimingInfoFn","id3Fn","captionsFn","endedTimelineFn","dataFn","doneFn","fmp4Tracks","isMuxed","audioStartFn","audioEndFn","videoStartFn","videoEndFn","probeResult","id3Frames","handleSegmentBytes","_ref5","bytesAsUint8Array","isFmp4","audioCodec","videoCodec","finishLoading","_ref6","decrypt","_ref7","keyBytes","decryptionWorker","decryptionHandler","decrypted","encrypted","waitForCompletion","_ref9","didError","segmentFinish","_ref8","requestId","decryptedBytes","decryptSegment","endOfAllRequests","parseError","handleProgress","_ref11","progressFn","progressEvent","getProgressStats","firstBytesReceivedAt","mediaSegmentRequest","_ref12","xhrOptions","abortFn","keyXhr","mapKeyXhr","initSegmentXhr","handleInitSegmentResponse","segmentRequestOptions","segmentXhr","loadendState","activeXhr","_ref10","calledAbortFn","handleLoadEnd","logFn$1","isMaat","mediaAttributes","unwrapCodecList","codecList","codecs","codecCount","codecObj","codecsForPlaylist","codecInfo","getCodecs","audioGroup","defaultCodecs","logFn","representationToString","representation","safeGetComputedStyle","property","stableSort","sortFn","newArray","comparePlaylistBandwidth","leftBandwidth","rightBandwidth","simpleSelector","playerBandwidth","playerWidth","limitRenditionByPlayerDimensions","masterPlaylistController","getAudioTrackPlaylists_","audioOnly","sortedPlaylistReps","enabledPlaylistReps","rep","bandwidthPlaylistReps","highestRemainingBandwidthRep","bandwidthBestRep","_chosenRep","haveResolution","resolutionBestRepList","resolutionPlusOneList","resolutionPlusOneSmallest","resolutionPlusOneRep","leastPixelDiffRep","resolutionBestRep","experimentalLeastPixelDiffSelector","leastPixelDiffList","pixelDiff","chosenRep","_type","lastBandwidthSelector","pixelRatio","useDevicePixelRatio","devicePixelRatio","systemBandwidth","masterPlaylistController_","addMetadata","inbandTextTracks","metadataArray","videoDuration","Cue","WebKitDataCue","metadataTrack","metadataTrack_","deprecateOldCue","cuesArray","cuesGroupedByStartTime","timeSlot","sortedStartTimes","cueGroup","nextTime","removeCuesFromTrack","finite","segmentInfoString","startOfSegment","_segmentInfo$playlist","_segmentInfo$playlist2","mediaIndex","segmentLen","selection","isSyncRequest","independent","hasPartIndex","zeroBasedPartCount","timingInfoPropertyForMedia","shouldWaitForTimelineChange","timelineChangeController","segmentTimeline","loaderType","audioDisabled","lastMainTimelineChange","lastTimelineChange","pendingAudioTimelineChange","pendingTimelineChange","segmentTooLong","maxDuration","getTroublesomeSegmentDurationMessage","sourceType","timingInfos","typeTimingInfo","mediaDuration","isSegmentWayTooLong","isSegmentSlightlyTooLong","segmentTooLongMessage","severity","SegmentLoader","_videojs$EventTarget","mediaSource","throughput","roundTrip","resetStats_","hasPlayed_","hasPlayed","seekable_","seeking_","mediaSource_","loaderType_","currentMediaInfo_","startingMediaInfo_","segmentMetadataTrack_","segmentMetadataTrack","goalBufferLength_","goalBufferLength","sourceType_","sourceUpdater_","sourceUpdater","inbandTextTracks_","state_","timelineChangeController_","shouldSaveSegmentTimingInfo_","useDtsForTimestampOffset_","useDtsForTimestampOffset","captionServices_","checkBufferTimeout_","currentTimeline_","pendingSegment_","xhrOptions_","pendingSegments_","audioDisabled_","isPendingTimestampOffset_","gopBuffer_","timeMapping_","safeAppend_","appendInitSegment_","playlistOfLastInitSegment_","callQueue_","loadQueue_","metadataQueue_","waitingOnRemove_","quotaExceededErrorRetryTimeout_","activeInitSegmentId_","initSegments_","cacheEncryptionKeys_","cacheEncryptionKeys","keyCache_","decrypter_","decrypter","syncController_","syncController","syncPoint_","transmuxer_","createTransmuxer_","triggerSyncInfoUpdate_","isEndOfStream_","ended_","fetchAtBuffer_","newState","hasEnoughInfoToAppend_","processCallQueue_","hasEnoughInfoToLoad_","processLoadQueue_","mediaBytesTransferred","mediaRequests","mediaRequestsAborted","mediaRequestsTimedout","mediaRequestsErrored","mediaTransferDuration","mediaSecondsLoaded","mediaAppends","abort_","setAudio","removeAudio","monitorBuffer_","abortRequests","clearPendingTimelineChange","checkForAbort_","_error","endOfStream","buffered_","getMediaInfo_","videoBuffered","audioBuffered","initSegmentForMap","storedMap","segmentKey","storedKey","couldBeginLoading_","playlist_","init_","resetEverything","newPlaylist","oldPlaylist","syncInfo","setDateTimeMappingForStart","oldId","resyncLoader","resetLoader","mediaSequenceDiff","saveExpiredSegmentInfo","force","removesRemaining","removeFinished","mapping","updatedBuffer","removeGopBuffer","removeVideo","monitorBufferTick_","fillBuffer_","chooseNextRequest_","loadSegment_","appendedLastSegment","appendedLastPart","bufferedTime","preloaded","haveEnoughBuffer","getSyncPoint","targetTime","timelineSegments","getSyncSegmentCandidate","_Playlist$getMediaInf","_partIndex","nextSegment","lastSegmentLastPart","generateSegmentInfo_","forceTimestampOffset","overrideCheck","timestampOffsetForSegment_","audioBufferedEnd","audioTimestampOffset","currentTimePts","gopsSafeToAlignWith","videoTimestampOffset","timestampOffsetForSegment","earlyAbortWhenNeeded_","measuredBandwidth","requestTimeRemaining","timeUntilRebuffer$1","timeUntilRebuffer","switchCandidate","compatiblePlaylists","enabledPlaylists","rebufferingEstimates","numRequests","rebufferingImpact","noRebufferingPlaylists","estimate","minRebufferMaxBandwidthSelector","timeSavedBySwitching","minimumTimeSaving","handleAbort_","handleProgress_","simpleSegment","handleTrackInfo_","checkForIllegalMediaSwitch","akeys","bkeys","shallowEqual","handleTimingInfo_","timeType","timingInfoProperty","handleCaptions_","captionData","hasAppendedData_","captionTracks","captionTrack","trackName","_captionTracks$trackN","captionService","createCaptionsTrackIfNotExists","captionArray","addCaptionData","handleId3_","inBandMetadataTrackDispatchType","createMetadataTrackIfNotExists","processMetadataQueue_","callQueue","fun","loadQueue","getCurrentMediaInfo_","getPendingSegmentPlaylist","setTimeMapping_","updateMediaSecondsLoaded_","firstVideoFrameTimeForData","useVideoTimingInfo","trueSegmentStart_","currentStart","currentVideoTimestampOffset","updateAppendInitSegmentStatus","updateSourceBufferTimestampOffset_","updateTimingInfoEnd_","saveSegmentTimingInfo","shouldSaveTimelineMapping","appendData_","changedTimestampOffset","getInitSegmentAndUpdateState_","handleQuotaExceededError_","audioBufferStart","audioBufferEnd","videoBufferStart","videoBufferEnd","appendToSourceBuffer_","timeToRemoveUntil","MIN_BACK_BUFFER","handleAppendError_","segmentObj","concatSegments","appendBuffer","handleSegmentTimingInfo_","segmentTimingInfo","transmuxedDecodeStart","transmuxedDecodeEnd","trimBackBuffer_","updateTransmuxerAndRequestSegment_","shouldUpdateTransmuxerTimestampOffset_","createSimplifiedSegmentObj_","isEndOfStream","isWalkingForward","isDiscontinuity","segmentRequestFinished_","removeToTime","trimTime","maxTrimTime","safeBackBufferTrimTime","previousSegment","saveTransferStats_","saveBandwidthRelatedStats_","handleTimeout_","updateGopBuffer","waitForAppendsToComplete_","timelineMapping","mappingForTimeline","waitForVideo","waitForAudio","waitingOnAppends","checkAppendsDone_","videoQueueCallback","audioQueueCallback","handleAppendsDone_","illegalMediaSwitchError","startingMedia","illegalMediaSwitch","didChange","getSegmentStartTimeForTimestampOffsetCalculation_","prioritizedTimingInfo","segmentDurationMessage","recordThroughput_","addSegmentMetadataCue_","badSegmentGuess","badPartGuess","segmentProcessingTime","segmentProcessingThroughput","Vhs$1","toTitleCase","bufferTypes","_updating","sourceBuffer","queuePending","shiftQueue","queueIndex","queueEntry","nextQueueIndexOfType","cleanupBuffer","titleType","inSourceBuffers","sourceBuffers","actions","_duration","mime","addSourceBuffer","removeSourceBuffer","changeType","pushQueue","onUpdateend","SourceUpdater","sourceopenListener_","audioTimestampOffset_","videoTimestampOffset_","delayedAudioAppendQueue_","videoAppendQueued_","onVideoUpdateEnd_","onAudioUpdateEnd_","onVideoError_","videoError_","onAudioError_","audioError_","createdSourceBuffers_","initializedEme_","triggeredReady_","initializedEme","hasCreatedSourceBuffers","hasInitializedAnyEme","createSourceBuffers","addOrChangeSourceBuffers","canRemoveSourceBuffer","MediaSource","canChangeType","SourceBuffer","processedAppend_","videoBuffer","que","audioBuffer","bufferA","bufferB","arity","extents","bufferIntersection","setDuration","uint8ToUtf8","uintArray","VTT_LINE_TERMINATORS","_char3","NoVttJsError","_Error","VTTSegmentLoader","_SegmentLoader","subtitlesTrack_","featuresNativeTextTracks_","loadVttJs","combinedByteLength","combinedSegment","timestampOffsetForTimeline","skipEmptySegments_","stopForError","requested","parseVTTCues_","updateTimeMapping_","timelines","duplicates","occurrences","dupe","removeDuplicateCuesFromTrack","decodeBytesToString","timestampmap","MPEGTS","LOCAL","mapData","segmentData","mappingObj","firstStart","lastStart","findAdCue","mediaTime","adStartTime","adEndTime","syncPointStrategies","run","timelineToDatetimeMappings","lastDistance","datetimeMapping","discontinuitySync","discontinuities","SyncController","syncPoints","runStrategies_","selectSyncPoint_","getExpiredTime","strategy","bestSyncPoint","bestDistance","bestStrategy","newDistance","lastRemovedSegment","firstSegment","playlistTimestamp","didCalculateSegmentTimeMapping","calculateSegmentTimeMapping_","saveDiscontinuitySyncInfo_","dateTime","accuracy","mediaIndexDiff","TimelineChangeController","pendingTimelineChanges_","lastTimelineChanges_","Decrypter","createCommonjsModule","basedir","require","commonjsRequire","createClass","_defineProperties","Constructor","protoProps","staticProps","_setPrototypeOf","inheritsLoose","aesTables","AES","tmp","xInv","x2","x4","tEnc","tDec","encTable","decTable","sbox","sboxInv","th","precompute","_tables","keyLen","rcon","encKey","decKey","encrypted0","encrypted1","encrypted2","encrypted3","out","c2","nInnerRounds","kIndex","table0","table1","table2","table3","AsyncStream","jobs","timeout_","processJob_","ntoh","word","initVector","STEP","encrypted32","Int32Array","asyncStream_","decryptChunk_","padded","init0","init1","init2","init3","wordIx","decipher","decrypted32","audioTrackKind_","stopLoaders","segmentLoader","activePlaylistLoader","startLoaders","playlistLoader","segmentLoaders","mediaTypes","blacklistCurrentPlaylist","activeTrack","activeGroup","defaultTrack","onTrackChanged","SUBTITLES","setupListeners","requestOptions","initialize","_settings$mediaTypes$","variantLabel","isMasterPlaylist","_settings$mediaTypes$2","_settings$mediaTypes$3","newProps","groupMatch","setupMediaGroups","_settings$segmentLoad3","audioSegmentLoader","mainSegmentLoader","variants","groupKeys","groupPropertyList","onGroupChanged","_settings$segmentLoad","getActiveGroup","previousActiveLoader","lastGroup","lastGroup_","lastTrack_","onGroupChanging","_settings$segmentLoad2","lastTrack","mpc","selectPlaylist","fastQualityChange_","activeTrack_","onAudioTrackChanged","loaderStats","sumLoaderStat","stat","audioSegmentLoader_","mainSegmentLoader_","MasterPlaylistController","externVhs","useCueTags","enableLowInitialPlaylist","experimentalBufferBasedABR","maxPlaylistRetries","useCueTags_","cueTagsTrack_","requestOptions_","pauseLoading","mediaTypes_","createMediaTypes","handleDurationChange_","handleSourceOpen_","handleSourceEnded_","segmentLoaderSettings","setupMasterPlaylistLoaderListeners_","subtitleSegmentLoader_","onLoad","setupSegmentLoaderListeners_","startABRTimer_","stopABRTimer_","triggeredFmp4Usage","loadOnPlay_","timeToLoadedData__","mainAppendsToLoadedData__","audioAppendsToLoadedData__","timeToLoadedDataStart","mainAppendsToLoadedData_","audioAppendsToLoadedData_","appendsToLoadedData_","timeToLoadedData_","checkABR_","nextPlaylist","shouldSwitchToMedia_","switchMedia_","cause","newId","abrTimer_","defaultPlaylists","defaultGroup","requestTimeout","triggerPresenceUsage_","setupFirstPlay","updatedPlaylist","selectedMedia","excludeUnsupportedVariants_","selectInitialPlaylist","initialMedia_","handleUpdatedMediaPlaylist","lastExcludeReason_","stuckAtPlaylistEnd_","updateAdCues_","updateDuration","defaultDemuxed","audioGroupKeys","currentPlaylist","bufferLowWaterLine","bufferHighWaterLine","sharedLogLine","isBuffered","forwardBuffer","maxBufferLowWaterLine","nextBandwidth","currBandwidth","logLine","_logLine","shouldSwitchToMedia","onSyncInfoUpdate_","onEndOfStream","delegateLoaders_","updateCodecs","tryToCreateSourceBuffers_","getCodecsOrExclude_","mediaSecondsLoaded_","smoothQualityChange_","mainMediaInfo","absolutePlaylistEnd","reincluded","errorMessage","delayDuration","fnNames","loaders","dontFilterPlaylist","loader","audioSeekable","mainSeekable","oldEnd","oldStart","updateDuration_","areMediaTypesKnown_","usingAudioLoader","hasMainMediaInfo","hasAudioMediaInfo","playlistCodecs","unsupportedAudio","unsupportedCodecs","supporter","switchMessages","newCodec","oldCodec","codecString","excludeIncompatibleVariants_","ids","unsupported","codecCount_","videoDetails","audioDetails","blacklistReasons","variantCodecs","variantCodecCount","variantVideoDetails","variantAudioDetails","_segment$cueOutCont$s","adOffset","adTotal","updateAdCues","newMax","Representation","vhsHandler","playlistID","changePlaylistFn","qualityChangeFunction","smoothQualityChange","frameRate","incompatible","currentlyEnabled","timerCancelEvents","PlaybackWatcher","allowSeeksWithinUnsafeLiveWindow","liveRangeSafeTimeDelta","consecutiveUpdates","lastRecordedTime","timer_","checkCurrentTimeTimeout_","playHandler","monitorCurrentTime_","canPlayHandler","waitingHandler","techWaiting_","cancelTimerHandler","cancelTimer_","loaderTypes","loaderChecks","resetSegmentDownloads_","updateend","checkSegmentDownloads_","setSeekingHandlers","seekingAppendCheck_","fixesBadSeeks_","clearSeekingAppendCheck_","watchForBadSeeking_","checkCurrentTime_","isBufferedDifferent","isRangeDifferent","playlistId","waiting_","afterSeekableWindow_","beforeSeekableWindow_","minAppendedDuration","bufferedToCheck","nextRange","livePoint","videoUnderflow_","difference","skipTheGap_","allowedEnd","gap","lastVideoRange","videoRange","audioRange","gapFromVideoUnderflow_","scheduledCurrentTime","gaps","findGaps","defaultOptions","errorInterval","getSource","IWillNotUseThisInPlugins","STANDARD_PLAYLIST_SELECTOR","INITIAL_PLAYLIST_SELECTOR","movingAverageBandwidthSelector","decay","average","lastSystemBandwidth","comparePlaylistResolution","leftWidth","rightWidth","handleVhsMediaChange","qualityLevels","selectedIndex_","waitForKeySessionCreation","sourceKeySystems","audioMedia","mainPlaylists","initializeMediaKeys","keySystemsOptionsArr","keySystems","keySystemsArr","keySystemsOptions","keySystemsObj","keySystem","keySystemOptions","getAllPsshKeySystemsOptions","initializationFinishedPromises","keySessionCreatedPromises","setupEmeOptions","sourceOptions","mainPlaylist","audioPlaylist","videoContentType","audioContentType","keySystemContentTypes","emeKeySystems","getVhsLocalStorage","storedObject","supportsNativeHls","canItPlay","supportsNativeDash","supportsTypeNatively","VhsHandler","hls","initialBandwidth","source_","ignoreNextSeekingEvent_","setOptions_","overrideNative","featuresNativeVideoTracks","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","useBandwidthFromLocalStorage","useNetworkInformationApi","option","dataUri","playbackWatcherOptions","playbackWatcher_","defaultSelector","playerBandwidthEst","networkInformation","connection","mozConnection","webkitConnection","networkInfoBandwidthEstBitsPerSec","downlink","invThroughput","invBandwidth","mediaRequests_","mediaRequestsAborted_","mediaRequestsTimedout_","mediaRequestsErrored_","mediaTransferDuration_","mediaBytesTransferred_","mediaAppends_","mainAppendsToLoadedData","audioAppendsToLoadedData","appendsToLoadedData","timeToLoadedData","currentTech","playerDimensions","objectToStore","updateVhsLocalStorage","representations","setupEme_","setupQualityLevels_","mediaSourceUrl_","createKeySessions_","audioPlaylistLoader","handleWaitingForKey_","didSetupEmeOptions","masterPlaylist","_videojs$log","excludedHDPlaylists","qualityLevels_","addQualityLevel","dash","convertToProgramTime","VhsSourceHandler","localOptions","simpleType","getOverrideNative","_options$vhs","_options$hls","defaultOverrideNative","_vhs$overrideNative","_hls$overrideNative","initPlugin","lastCalled","loadedMetadataHandler","cleanupEvents","reloadSourceOnError","_Modal","_Modal2","Default","articles","section","noImage","isConnected","sectionLabel","moreButton","adPath","sectionsLabels","hasMounted","useHasMounted","__jsx","React","Fragment","uuid","FollowConcept","topic","followText","unFollowText","article","contentKey","Desktop","Ad","process","targeting","leaderboard","FORMATS","leaderboard2","ArticleCard","MobileElse","slotId","collapseEmptyDiv","Mobile","MagazineCover","isInteger","mpu","adNotice","DefaultSectionPage","Template","template","DefaultTemplate","Helmet","titleTemplate","getSectionLabel","logo","itemProp","keywords","twitterName","itemprop","isPage0","Articles","noDiv","loading","DefaultSectionPageSkeleton","WingBanners","useSmall","onSlotRenderEndedLeft","onSlotRenderEndedRight","Sidebar","DesktopTablet","pageSize","NoImage","notFound","withMore","page0Limit","SectionMeta","defaultProps","connect","authorName","GeneralHubSectionPage","ArticlesNoAdsTemplate","ContentHubArticleCard","imageSize","headlineOnly","aria-label","Link","getCanonicalUri","ImageOrNoImage","shape","image","headline","getAuthor","formatDate","ContentHubHorArticleCard","HoverZoomSectionPage","halfpage","desktop","tablet","mobile","ArticlesNoAds","ContentHubPage","AuthorArticles","AuthorSectionPage","_React$Component","_inherits","_super","_createSuper","_classCallCheck","fetchAuthor","authorSlug","_createClass","author","AuthorBio","withRouter","dispatch","bindActionCreators","CiaoMalfyHubSectionPage","MacHubSectionPage","BeautyAwardsPage","CategoryList","DefaultSection","qs","ignoreQueryPrefix","page","Switch","Route","strict","exact","render","Redirect","pathname","url2section","Article","reactPropsRegex","componentText","subscribeConcept","onClick","_useState","useState","isSubscribed","setIsSubscribed","_useState2","helpPopupVisible","setHelpPopupVisible","_useState3","setSubscription","_useState4","registration","setRegistration","isSubscribedToConcept","titleKey","endpoint","axios","post","subscribed","useEffect","getRegistration","pushManager","getSubscription","_setSubscribed","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_context","sent","setSubscribed","canPush","Popup","popupLogo","justifycontent","userVisibleOnly","applicationServerKey","urlB64ToUint8Array","_createForOfIteratorHelper","allowArrayLike","unsupportedIterableToArray","normalCompletion","didErr","_e2","cancelEvent","prefixEvent","originalEvent","redispatch","ads","isInAdMode","isContentResuming","_contentEnding","handlePlaying","_contentHasEnded","stitchedAds","_hasThereBeenALoadStartDuringPlayerLife","_hasThereBeenALoadedData","_hasThereBeenALoadedMetaData","inAdBreak","contentSrc","handleLoadEvent","tcData","__tcfapi","cmpFrame","cmpCallbacks","__tcfapiLocator","ignore","cmd","callId","__tcfapiCall","command","parameter","__tcfapiReturn","success","uriEncodeIfNeeded","uriEncode","customFields","mediainfo","macros","customFieldsName","fields","fieldNames","adMacroReplacement","customMacros","defaultVal","referrer","playlistinfo","gdprApplies","cueTextTracks","processMetadataTrack","setModeAndProcess","setMetadataTrackMode","cueAlreadySeen","cueId","includedCues","setCueAlreadySeen","cancelContentPlay","_shouldBlockPlay","_cancelledPlay","processAdTrack","processCue","cancelAdsHandler","cueData","getSupportedAdCue","isSupportedAdCue","getCueId","videojsReference","isMiddlewareMediatorSupported","playMiddleware","callPlay","_playBlocked","testHook","testVjs","States","getState","states_","registerState","StateToRegister","State","_getName","transitionTo","NewState","onPlay","onPlaying","onEnded","onAdEnded","onAdsReady","onAdsError","onAdsCanceled","onAdTimeout","onAdStarted","onContentChanged","onContentResumed","onReadyForPostroll","onNoPreroll","onNoPostroll","startLinearAdMode","endLinearAdMode","skipLinearAdMode","isAdState","isWaitingForAdBreak","handleEvent","_inheritsLoose","AdState","_State","contentResuming","waitingForAdBreak","ContentPlayback","_inLinearAdMode","ContentState","BeforePreroll","Preroll","_pausedOnContentupdate","tryToResumeTimeout_","_ContentState","AdsDone","obj$1","shouldTakeSnapshots","snapshot","suppressedTracks","snapshotObject","getPlayerSnapshot","shouldPlayContentBehindAd","preAdVolume_","removeNativePoster","adType","disableNextSnapshotRestore","trackSnapshot","attempts","restoreTracks","resume","_playPromise","shouldRemoveAutoplay_","tryToResume","videoElementRecycled","restorePlayerSnapshot","_AdState","adsReady","shouldResumeToContent","nopreroll_","resumeAfterNoPreroll","prerollTimeout","_timeout","handleAdsReady","readyForPreroll","afterLoadStart","noPreroll","cleanupPartial","_playRequested","allowVjsAutoplay","Midroll","Postroll","nopostroll_","resumeContent","postrollTimeout","_postrollTimeout","StitchedContentPlayback","StitchedAdRoll","contribAdsPlugin","isMiddlewareMediatorSupported$1","VIDEO_EVENTS","contentIsLive","liveCuePoints","videoEvents","initCancelContentPlay","srcChanged","currentSrcChanged","somePlayer","isAdPlaying","getAds","_seenInitialLoadstart","initializeContentupdate","textTrackChangeHandler","listenToTcf","usingContribAdsMiddleware_","PlayerWrapper","adsPluginSettings","controller","vjsPlayer","contentTrackingTimer","contentComplete","updateTimeIntervalHandle","updateTimeInterval","seekCheckIntervalHandle","seekCheckInterval","resizeCheckIntervalHandle","resizeCheckInterval","seekThreshold","contentEndedListeners","contentSource","contentSourceType","contentPlayheadTracker","previousTime","vjsPlayerDimensions","getPlayerWidth","getPlayerHeight","vjsControls","h5Player","setUpPlayerIntervals","boundContentEndedListener","localContentEndedListener","playerDisposedListener","onReadyForPreroll","onPlayerReady","getSettings","requestMode","requestAds","updateCurrentTime","checkForSeeking","checkForResize","onPlayerResize","onContentComplete","onPlayerDisposed","adTimeoutTimeout","intervalsToClear","onPlayerReadyForPreroll","getPlayerId","setSetting","onVolumeChange","onFullscreenChange","onPlayerEnterFullscreen","onPlayerExitFullscreen","newVolume","onPlayerVolumeChanged","injectAdContainerDiv","adContainerDiv","getContentPlayer","getVolume","unmute","mute","togglePlayback","getPlayerOptions","toggleFullscreen","getContentPlayheadTracker","onAdError","adErrorEvent","getError","AdError","AdErrorEvent","onAdLog","adEvent","adData","getAdData","getMessage","AdEvent","onAdBreakStart","onAdBreakEnd","onAdStart","onAllAdsCompleted","onContentAndAdsCompleted","changeSource","seekContentToZero","triggerPlayerEvent","addContentEndedListener","AdUi","controlsDiv","countdownDiv","seekBarDiv","progressDiv","playPauseDiv","muteDiv","sliderDiv","sliderLevelDiv","fullscreenDiv","boundOnMouseUp","onMouseUp","boundOnMouseMove","onMouseMove","adPlayheadTracker","controlPrefix","showCountdown","isAdNonlinear","createAdContainer","assignControlAttributes","zIndex","showAdControls","hideAdControls","onAdContainerClick","createControls","getIsMobile","adLabel","onAdPlayPauseClick","onAdMuteClick","onAdVolumeSliderMouseDown","getIsIos","onAdFullscreenClick","onAdsPaused","sdkImpl","adPlaying","onAdsResumed","onAdsPlaying","updateAdUi","adPosition","totalAds","remainingMinutes","remainingSeconds","podCount","adLabelNofN","playProgressPercent","getPlayerVolume","changeVolume","showAdContainer","hideAdContainer","getAd","getContentType","showControlsForJSAds","currentAd","getCurrentAd","isLinear","onLinearAdStart","onNonLinearAdLoad","disableAdControls","controlName","getClassRegexp","elementHasClass","classRegexp","getAdContainerDiv","setShowCountdown","showCountdownIn","pkg","_typeof","SdkImpl","adDisplayContainer","adDisplayContainerInitialized","adsLoader","adsManager","adsRenderingSettings","adsResponse","adTrackingTimer","allAdsCompleted","adsActive","adMuted","adBreakReadyListener","contentCompleteCalled","isAdTimedOut","adsManagerDimensions","autoPlayAdBreaks","locale","google","ima","setLocale","disableFlashAds","setDisableFlashAds","disableCustomPlaybackForIOS10Plus","setDisableCustomPlaybackForIOS10Plus","ppid","setPpid","featureFlags","setFeatureFlags","initAdObjects","AdDisplayContainer","AdsLoader","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","vpaidAllowed","DISABLED","vpaidMode","numRedirects","setNumRedirects","sessionId","setSessionId","setPlayerType","setPlayerVersion","setAutoPlayAdBreaks","AdsManagerLoadedEvent","ADS_MANAGER_LOADED","onAdsManagerLoaded","AD_ERROR","onAdsLoaderError","playerWrapper","adsRequest","AdsRequest","adTagUrl","forceNonLinearFullSlot","vastLoadTimeout","omidMode","omidAccessModeRules","omidValues","FULL","OmidAccessMode","DOMAIN","LIMITED","linearAdSlotWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearWidth","nonLinearAdSlotHeight","nonLinearHeight","setAdWillAutoPlay","adsWillAutoplay","setAdWillPlayMuted","adsWillPlayMuted","providedAdsRequest","adsManagerLoadedEvent","createAdsRenderingSettings","getAdsManager","AD_BREAK_READY","onAdBreakReady","CONTENT_PAUSE_REQUESTED","onContentPauseRequested","CONTENT_RESUME_REQUESTED","onContentResumeRequested","ALL_ADS_COMPLETED","onAdLoaded","STARTED","COMPLETE","onAdComplete","SKIPPED","LOG","PAUSED","onAdPaused","RESUMED","onAdResumed","initAdsManager","preventLateAdStart","adsManagerLoadedCallback","onErrorLoadingAds","destroy","initWidth","initHeight","ViewMode","initializeAdDisplayContainer","adError","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","playContent","onAdPlayheadTrackerInterval","onNonLinearAdStart","getRemainingTime","getDuration","getAdPodInfo","getAdPosition","getTotalAds","onAdPlayheadUpdated","getCuePoints","includes","resize","screen","FULLSCREEN","setAdBreakReadyListener","isAdMuted","pauseAds","resumeAds","playAdBreak","Controller","contentAndAdsEndedListeners","isMobile","isIos","initWithSettings","contribAdsDefaults","contribAdsSettings","adUi","IMA_DEFAULTS","warnAboutDeprecatedSettings","setContentWithAdTag","adTag","setContentWithAdsResponse","setContentWithAdsRequest","addContentAndAdsEndedListener","changeAdTag","pauseAd","resumeAd","adWillAutoplay","adWillPlayMuted","ImaPlugin","Logo","xmlns","viewBox","stroke","strokeWidth","points","SvgComponent","xmlSpace","data-name","dangerouslySetInnerHTML","__html","Branding","IndependentOnline","iolLogo","DailyVoice","dvdLogo","AfricanNewsAgency","anaLogo","VideoPlayer","videoNode","useRef","brandingPath","BrandingLogo","branding","tw","channel","ChannelBrandingLogo","img","createRoot","data-vjs-player","ArticleGallery","photoIndex","gallery","resizeURL","Lightbox","mainSrc","nextSrc","prevSrc","imageCaption","onCloseRequest","onMovePrevRequest","onMoveNextRequest","_taggedTemplateLiteral","strings","StyledRelatedArticle","styled","_templateObject","RelatedArticle","relatedArticle","externalUrl","StyledRelatedInArticle","StyledHeadlineDiv","_templateObject2","StyledBoxDiv","_templateObject3","StyledInnerDiv","_templateObject4","SingleRelatedArticle","imageUrl","teaserHeadline","StyledMagazineCoverOuter","StyledCoverImage","StyledDescriptionDiv","StyledSubscribeButton","_templateObject5","SubscribeBlock","subscribeBlock","fetchSubscribeBlock","topText","saveText","savePercentage","subscribeLink","rel","AuthorArticlesContainer","StyledAuthorArticles","StyledArticleContent","StyledLink","getCanonical","getImage","getImageSize","getTeaser","bookmarked","scriptloaded","_assertThisInitialized","handleSubmit","processVideo","previewArticle","serverArticleRender","email","validateEmail","validateName","competition","form","insertAdjacentHTML","elements","submitCompetition","formElements","formEntries","checked","getAllFormFields","prevProps","hasError","fetchArticle","scripts","processArticle","errorNode","errElement","showErrorMessage","ArticlePushContext","setPreviewArticle","lastFetch","nodeScriptReplace","nodeScriptIs","nodeScriptClone","bodyHTML","images","calc","ImageCalculator","imgOffsetX","offsetx","imgOffsetY","offsety","imgCropWidth","cropwidth","imgCropHeight","imageWidth","imageHeight","crops","imageCrop","calcHeight","_calc$getCropCoordsFo","getCropCoordsForShape","cropWidth","cropHeight","buildImageUrl","authors","hasAuthorPage","slug","articleNode","scriptLoaded","_step","_iterator","_step2","_iterator2","v2","Video","parentElement","competitionFormNode","onsubmit","checkCanonical","canonical","is404","OfflineImage","hasFetched","_article$images","_article$images2","_article$images3","_article$images4","IonArticle","tagsList","primaryTag","secondaryTags","tags","published","mainImage","videos","getImageObject","defaultWidth","socialImageSrcUrl","socialTeaserImage","calcImageSrcUrl","canonicalUri","proposedArticles","competitionSlug","getCompetitionSlug","competitionPayload","competitionExpired","hasErrorSubmit","hasSubmitted","formData","setCompetition","resizeImages","bodyElements","readNext","lengthArray","videoSources","articleImage","imageCredit","formatImageCredit","formatImageCaption","relatedArticlePresent","relatedArticles","socialTeaserHeadline","socialAbstract","modified","canonicalUrl","ArticleMeta","unknownImage","handleBookmark","articleBookmarked","articleBookmark","renderAuthors","ArticleImage","altText","Tablet","thumbnailURL","mpu4","sectionSlug","authorArticles","ArticleSocialShare","quote","DesktopElse","proposedArticle","data-src","data-widget-id","ArticlePageSkeleton","_objectSpread","fetchArticles","getType","isUndefined","isNull","isPlainObject","isSymbol","__spreadArrays","il","jl","assignProp","carry","newVal","originalObject","propType","propertyIsEnumerable","mergeRecursively","origin","newComer","extensions","newObject","getOwnPropertySymbols","targetVal","newComers","regexs","muxerVideo","muxerAudio","muxerText","upperMediaTypes","translateLegacyCodec","orig","profile","avcLevel","parseCodecs","codecType","codecsFromDefault","audioGroupId","audioType","isAudioCodec","getMimeForCodec","browserSupportsCodec","isTypeSupported","muxerSupportsCodec","DEFAULT_AUDIO_CODEC","DEFAULT_VIDEO_CODEC","DOMParser","cueShim","regionShim","nativeVTTCue","nativeVTTRegion","shim","restore","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","orphans","tabSize","widows","zoom","WebkitLineClamp","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","ID3","getId3Size","isFunction","createXHR","httpHandler","initParams","_createXHR","called","getBody","responseXML","firefoxBugTakenEffect","getXml","isJson","errorFunc","evt","timeoutTimer","failureResponse","loadFunc","useXDR","rawRequest","getAllResponseHeaders","parseHeaders","XDomainRequest","XMLHttpRequest","onprogress","ontimeout","username","password","setRequestHeader","send","forEachArray","_getPrototypeOf","leaderboardsmall","wingbanner","interstitial","_react","_propTypes2","_interopRequireDefault","focusManager","_interopRequireWildcard","_scopeTab2","ariaAppHider","_safeHTMLElement","_safeHTMLElement2","_portalOpenInstances2","newObj","CLASS_NAMES","ariaHiddenInstances","ModalPortal","ReferenceError","_possibleConstructorReturn","setOverlayRef","overlayRef","setContentRef","contentRef","afterClose","_this$props","appElement","ariaHideApp","htmlOpenClassName","bodyOpenClassName","parentSelector","parentDocument","shouldFocusAfterRender","shouldReturnFocusAfterClose","returnFocus","preventScroll","teardownScopedFocus","popWithoutFocus","onAfterClose","deregister","beforeOpen","afterOpen","beforeClose","closeTimer","setupScopedFocus","markForFocusLater","openAnimationFrame","onAfterOpen","overlayEl","closeTimeoutMS","closeWithTimeout","closeWithoutTimeout","focusContent","contentHasFocus","closesAt","isTabKey","shouldCloseOnEsc","isEscKey","requestClose","handleOverlayOnClick","shouldClose","shouldCloseOnOverlayClick","ownerHandlesClose","handleContentOnMouseUp","handleOverlayOnMouseDown","handleContentOnClick","handleContentOnMouseDown","onRequestClose","shouldBeClosed","buildClassName","additional","attributesFromObject","moveFromContentToOverlay","prevState","_props","register","_props2","overlayClassName","defaultStyles","contentStyles","overlayStyles","overlayProps","onMouseDown","contentProps","onKeyDown","contentLabel","aria","testId","contentElement","overlayElement","propTypes","isRequired","oneOfType","instanceOf","arrayOf","tabbable","_tabbable2","tail","getActiveElement","shadowRoot","checkSafari","_tabbable","showLeftBtn","setShowLeftBtn","showRightBtn","setShowRightBtn","categoryListRef","handleScroll","_categoryListRef$curr","scrollWidth","clientWidth","scrollList","_categoryListRef$curr2","_categoryListRef$curr3","currentScrollPosition","scrollAmount","_categoryListRef$curr4","_categoryListRef$curr5","_article$displayTag","displayTag","insertRule","toSheet","block","selectors","parents","depth","at","delimiter","portalOpenInstances","openInstances","resetState","PortalOpenInstances","openInstance","emit","eventType","componentWillMount","getDerivedStateFromProps","componentWillReceiveProps","nextProps","componentWillUpdate","nextState","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","displayName","newApiName","componentDidUpdate","maybeSnapshot","__suppressDeprecationWarning","focusLaterElements","handleFocus","toFocus","modalElement","needToFocus","_arr","after","instances","_arr2","check","_portalOpenInstances","safeIsNaN","areInputsEqual","newInputs","lastInputs","second","resultFn","isEqual","lastThis","lastArgs","calledOnce","newArgs","baseUrl","relativeUrl","nativeURL","protocolLess","removeLocation","newUrl","globalElement","assertNodeList","setElement","useElement","validateElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","return","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","documentNotReadyOrSSRTesting","_warning","_warning2","nodeList","findTabbableDescendants","tabbableNode","hidesContents","zeroSize","displayValue","scrollHeight","isNotOverflowing","focusable","isTabIndexNotNaN","rootNode","getRootNode","isTabIndexNaN","Sticky","sticky","stickyRef","triggerRef","addListeners","scrollContext","scrollContextNode","eventStack","handleUpdate","removeListeners","unsub","pushing","ticking","assignRects","didReachStartingPoint","stickToContextTop","didTouchScreenBottom","stickToScreenBottom","stickToContextBottom","isOversized","contextRect","innerHeight","didTouchScreenTop","didReachContextBottom","stickToScreenTop","frameId","contextNode","triggerRect","stickyRect","bottomOffset","stick","unstick","componentDidMount","isBrowser","componentWillUnmount","computeStyle","styleElement","_this$state","_this$state2","rest","getUnhandledProps","ElementType","getElementType","containerClasses","elementClasses","triggerStyles","handledProps","SidebarArticleCard","getSectionId","getGrandSectionId","sponsoredIndicator","MostReadArticles","fetchMostReadArticles","fetchMoreArticles","mostReadArticles","NotificationsBell","UnreadCount","setUnreadCount","NotificationsLastViewed","getCookie","mr","bellIcon","_defineProperty","handleChange","setStickyRef","updateForm","firstName","lastName","subscribeNewsletter","showForm","isSubmitting","submitting","showThankYou","LinkedIn","Facebook","Instagram","Twitter","Youtube","TikTok","Pinterest","placeholder","Search","onSubmit","onChange","Dimmer","Loader","indeterminate","reinitialize","g","A","C","O","N","S","W","B","D","E","I","J","M","Q","U","V","Z","be","pe","ke","ge","Ae","Ce","we","ve","me","xe","$e","ye","Oe","qe","Be","De","Ee","Ge","He","R","je","ze","Je","Re","Te","Ue","Ve","Xe","Ye","Qe","Pe","Ie","Me","Le","Ke","construct","sham","Proxy","valueOf","enumerableOnly","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","NewTarget","_slicedToArray","_arrayWithHoles","_s","_n","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","minLen","arr2","translate","replaceStrings","getWindowWidth","innerWidth","isCrossOriginFrame","hostname","KEYS","ReactImageLightbox","isClosing","animationDisabled","shouldAnimate","zoomLevel","loadErrorStatus","outerEl","createRef","zoomInBtn","zoomOutBtn","closeIfClickInner","handleImageDoubleClick","handleImageMouseWheel","handleKeyInput","handleOuterMousewheel","handleTouchStart","handleTouchMove","handleTouchEnd","handlePointerEvent","handleCaptionMousewheel","handleWindowResize","handleZoomInButtonClick","handleZoomOutButtonClick","requestMoveNext","requestMovePrev","timeouts","currentAction","eventsSource","pointerList","preventInnerClose","preventInnerCloseTimeout","keyPressed","imageCache","lastKeyDownTime","resizeTimeout","wheelActionTimeout","resetScrollTimeout","scrollX","scrollY","moveStartX","moveStartY","moveStartOffsetX","moveStartOffsetY","swipeStartX","swipeStartY","swipeEndX","swipeEndY","pinchTouchList","pinchDistance","keyCounter","moveRequested","windowContext","getHighestSafeWindowContext","mouseup","touchend","touchcancel","pointerdown","pointermove","pointerup","pointercancel","loadAllImages","getSrcTypes","srcType","sourcesChanged","prevSrcDict","nextSrcDict","didUnmount","tid","_setTimeout","_x","_x2","imageSrc","fitSizes","isImageLoaded","getFitSizes","targetHeight","targetWidth","stretch","boxSize","getLightboxRect","maxHeight","imagePadding","maxWidth","currentImageInfo","getBestImageForType","maxX","minX","maxY","minY","zoomMultiplier","getZoomMultiplier","keyEnding","_clearTimeout","_x3","enableZoom","nextZoomLevel","imageBaseSize","currentZoomMultiplier","nextZoomMultiplier","boxRect","pointerX","pointerY","currentImageOffsetX","currentImageOffsetY","nextImageRealOffsetX","nextImageRealOffsetY","nextOffsetX","nextOffsetY","maxOffsets","getMaxOffsets","isAnimating","keyRepeatLimit","keyRepeatKeyupBonus","actionDelay","deltaY","deltaX","xThreshold","changeZoom","filterPointersBySource","pointer","shouldHandleEvent","isTargetMatchImage","addPointer","parseMouseEvent","multiPointerStart","multiPointerMove","removePointer","multiPointerEnd","parsePointerEvent","eventTouch","parseTouchPointer","touch","handleSwipeStart","handleMoveStart","handleEnd","decideMoveOrSwipe","handlePinchStart","handleMove","handleSwipe","handlePinch","setPreventInnerClose","handleMoveEnd","handleSwipeEnd","handlePinchEnd","newOffsetX","newOffsetY","animationDuration","xDiff","xDiffAbs","yDiffAbs","calculatePinchDistance","oldPointer","_this$calculatePinchC","calculatePinchCenter","forceUpdate","_this$caption$current2","inMemoryImage","Image","imageCrossOrigin","errorEvent","onImageLoadError","onImageLoad","generateLoadDoneCallback","loadImage","closeLightbox","animationOnKeyInput","requestMove","clickOutsideToClose","discourageDownloads","imageTitle","toolbarButtons","reactModalStyle","_onAfterOpen","reactModalProps","transitionStyle","transition","keyEndings","addImage","imageClass","transforms","bestImageInfo","imageStyle","getTransform","imageLoadErrorMessage","onDoubleClick","onWheel","onDragStart","draggable","loadingIcon","modalStyle","border","borderRadius","padding","wrapperClassName","animationDirection","onTouchStart","onTouchMove","onKeyUp","prevLabel","nextLabel","zoomInLabel","zoomOutLabel","closeLabel","mouseEvent","touchPointer","pointerEvent","pointerId","_ref13","_ref13$x","_ref13$y","_ref13$zoom","nextX","windowWidth","scaleFactor","mainSrcThumbnail","prevSrcThumbnail","nextSrcThumbnail","htmlElement","cls","htmlClassList","_cls","docBodyClassList","classString","classListRef","poll","incrementReference","decrementReference","alert","confirm","prompt","urlify","Urlify","addEToUmlauts","szToSs","spaces","nonPrintable","toLower","ImageSizes","hero","featured","primary","slider","normal","references","referenceId","earliestPresentationTime","firstOffset","referenceCount","getUint16","referenceType","referencedSize","subsegmentDuration","startsWithSap","sapType","sapDeltaTime","merge","lists","findIndex","matchingFunction","_ref$baseUrl","_ref$source","_ref$range","_ref$indexRange","indexRange","startRange","endRange","parseEndNumber","endNumber","segmentRange","static","_attributes$timescale","sourceDuration","periodDuration","dynamic","NOW","availabilityStartTime","_attributes$timescale2","_attributes$periodSta","periodStart","_attributes$minimumUp","_attributes$timeShift","timeShiftBufferDepth","periodStartWC","segmentCount","availableStart","availableEnd","parseByDuration","_attributes$timescale4","_segmentRange$type","_attributes$timescale3","_attributes$startNumb","startNumber","toSegments","sectionDuration","segmentsFromBase","_attributes$initializ","initialization","_attributes$indexRang","presentationTime","_attributes$number","sourceURL","segmentTimeInfo","addSidxSegmentsToPlaylist$1","sidxByteRange","sidxEnd","mediaReferences","SUPPORTED_MEDIA_TYPES","getUniqueTimelineStarts","keyFunction","mediaGroupPlaylists","updateMediaSequenceForPlaylist","positionManifestOnTimeline","oldManifest","newManifest","oldPlaylists","newPlaylists","findPlaylistWithName","firstNewSegment","oldMatchingSegmentIndex","updateSequenceNumbers","generateSidxKey","mergeDiscontiguousPlaylists","_acc$name$segments","sidxMatch","addSidxSegmentsToPlaylists","formatVideoPlaylist","_attributes2","videoOnly","mimeType","contentType","vttOnly","flattenMediaGroupPlaylists","mediaGroupObject","labelContents","toM3u8","_mediaGroups","dashPlaylists","_ref8$sidxMapping","_dashPlaylists$0$attr","videoPlaylists","audioPlaylists","vttPlaylists","VIDEO","organizedAudioGroup","formattedPlaylists","roleLabel","formatted","_attributes","formatAudioPlaylist","organizeAudioPlaylists","organizedVttGroup","_m3u8Attributes","m3u8Attributes","formatVttPlaylist","organizeVttPlaylists","playlistTimelineStarts","subs","svcObj","svc","easyReader","getLiveRValue","parseByTimeline","_attributes$minimumUp2","_attributes$media","sIndex","segmentTime","nextS","identifierPattern","constructTemplateUrl","identifierReplacement","templateValues","RepresentationID","Bandwidth","mapSegment","parseTemplateInfo","Time","presentationTimeOffset","segmentsFromList","_attributes$segmentUr","segmentUrls","segmentUrlMap","segmentUrlObject","segmentUrl","mediaRange","SegmentURLToSegmentObject","generateSegments","segmentAttributes","segmentsFn","segmentsInfo","_segmentAttributes","_segmentAttributes$ti","findChildren","getContent","parseDuration","_match$slice","year","month","day","hour","minute","parsers","mediaPresentationDuration","parseDivisionValue","parsedValue","parseFn","keySystemsMap","referenceUrls","baseUrlElements","baseUrlElement","getSegmentInformation","adaptationSet","segmentTemplate","segmentList","segmentBase","segmentTimelineParentNode","segmentInitializationParentNode","segmentInitialization","toRepresentations","periodAttributes","periodBaseUrls","periodSegmentInfo","adaptationSetAttributes","adaptationSetBaseUrls","roleAttributes","accessibility","_value$split","_value$split2","_value$split2$","opt","_opt$split","labelVal","psshNode","adaptationSetSegmentInfo","repBaseUrlElements","repBaseUrls","representationSegmentInfo","inheritBaseUrls","toAdaptationSets","mpdAttributes","mpdBaseUrls","adaptationSets","xml","parseFromString","parsedManifestInfo","_options$manifestUri","_options$NOW","_options$clientOffset","periodNodes","periods","priorPeriod","priorPeriodAttributes","mpdType","getPeriodStart","representationInfo","inheritAttributes","parseUTCTiming","UTCTimingNode","parseUTCTimingScheme","MPEGURL_REGEX","DASH_REGEX","simpleTypeFromSourceType","oc","MIME_TYPE","HTML","XML_APPLICATION","XML_TEXT","XML_XHTML_APPLICATION","XML_SVG_IMAGE","SVG","ac","staticContext","NoResults","itemType","decodeResponseBody","charset","contentTypeHeader","_contentType$split","getCharset","reviver","GqGlamDesktop","deviceWidth","onSlotRenderEnded","isNativeFunction","_wrapNativeSuper","_cache","Wrapper","portalClassName","_react2","_reactDom2","_ModalPortal2","_reactLifecyclesCompat","isReact16","createPortal","createHTMLElement","getCreatePortal","unstable_renderSubtreeIntoContainer","getParentElement","Modal","removePortal","unmountComponentAtNode","portalRef","portal","renderPortal","prevParent","nextParent","background","WebkitOverflowScrolling","outline","lazy","directionSetting","alignSetting","findAlignSetting","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","findDirectionSetting","getCueAsHTML","entities","sax","normalizeLineEndings","DOMHandler","cdata","_locator","_toString","chars","java","hander","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","errorImpl","isCallback","Function","build","buildErrorHandler","documentURI","ins","ignorableWhitespace","charNode","skippedEntity","comm","impl","dt","__DOMHandler","isNativeReflectConstruct","_construct","amp","apos","gt","lt","quot","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","not","shy","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","times","divide","forall","exist","nabla","isin","notin","ni","prod","minus","lowast","radic","infin","ang","cap","cup","there4","sim","cong","asymp","ne","equiv","sup","nsub","sube","supe","oplus","otimes","perp","sdot","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","rho","sigmaf","sigma","tau","upsilon","phi","chi","omega","thetasym","upsih","piv","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","euro","trade","larr","uarr","rarr","darr","harr","crarr","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","interleave","interpolations","classCallCheck","inherits","possibleConstructorReturn","EMPTY_ARRAY","EMPTY_OBJECT","getComponentName","isStyledComponent","styledComponentId","SC_ATTR","REACT_APP_SC_ATTR","IS_BROWSER","DISABLE_SPEEDY","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","StyledComponentsError","SC_COMPONENT_ID","extractComps","maybeCSS","css","existingComponents","componentId","matchIndex","nextComp","cssFromDOM","COMMENT_REGEX","stylisSplitter","cascade","keyframe","compress","semicolon","stylis","parsingRules","returnRulesPlugin","parsedRules","parseRulesPlugin","_componentId","_selector","_selectorRegexp","selfReferenceReplacer","splitByRules","stringifyRules","rules","flatCSS","cssStr","getNonce","addNameForId","resetIdNames","hasNameForId","stringifyNames","sheetForTag","sheet","styleSheets","ownerNode","safeInsertRule","cssRule","cssRules","makeTextMarker","addUpUntilIndex","sizes","totalUpToIndex","wrapAsHtmlTag","additionalAttrs","nonce","SC_VERSION_ATTR","wrapAsElement","getIdsFromMarkersFactory","markers","makeTextNode","targetDocument","makeServerTag","namesArg","markersArg","insertMarker","cssForId","namesClone","cloneNames","markersClone","getIds","insertRules","removeRules","marker","sealed","styleTag","toHTML","makeTag","tagEl","forceServer","getImportRuleTag","makeStyleTag","extractImport","usedImportRuleTag","importRules","cssRulesSize","mayHaveImport","newMarker","makeBrowserTag","insertIndex","injectedRules","removalIndex","deleteRule","deleteRules","makeSpeedyTag","SPLIT_REGEX","MAX_SIZE","sheetRunningId","StyleSheet","importRuleTag","firstTag","tagMap","deferred","rehydratedNames","ignoreRehydratedNames","capacity","clones","rehydrate","els","extracted","isStreamed","nodesSize","elNames","elNamesSize","extractedSize","_extracted$i","newTag","sealAllTags","lastEl","getTagForId","hasId","deferredInject","inject","toReactElements","Keyframes","getName","uppercasePattern","msPattern","hyphenateStyleName","isFalsish","objToCssArray","prevKey","executionContext","ruleSet","murmurhash","getAlphabeticChar","generateAlphabeticName","isStaticRules","hasFunctionObjectKey","_TYPE_STATICS","hasher","ComponentStyle","isStatic","generateAndInjectStyles","lastClassName","generateName","determineTheme","fallbackTheme","isDefaultTheme","theme","escapeRegex","dashesAtEnds","isTag","REACT_STATICS","childContextTypes","contextTypes","KNOWN_STATICS","caller","callee","TYPE_STATICS","$$typeof","defineProperty$1","_Object$getOwnPropert","objectPrototype","arrayPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","ThemeContext","ThemeConsumer","Consumer","StyleSheetContext","ThemeProvider","getContext","renderInner","outerTheme","Provider","getTheme","ServerStyleSheet","masterSheet","seal","collectStyles","StyleSheetManager","getStyleTags","getStyleElement","interleaveWithNodeStream","readableStream","StyleSheetConsumer","identifiers","StyledComponent","renderOuter","forwardedComponent","componentStyle","_props$forwardedCompo","foldedComponentIds","generatedClassName","elementToBeCreated","as","isTargetTag","propsForElement","computedProps","buildExecutionContext","attrDef","resolvedAttrDef","attrDefWasFn","_props$forwardedCompo2","warnTooManyClasses","createStyledComponent","isTargetStyledComp","isClass","_options$displayName","generateDisplayName","_options$componentId","_ComponentStyle","_displayName","parentComponentId","nr","generateId","_options$ParentCompon","ParentComponent","_options$attrs","finalAttrs","WrappedStyledComponent","forwardRef","forwardedRef","withComponent","previousComponentId","optionsToCopy","objectWithoutProperties","newComponentId","_foldedDefaultProps","constructWithOptions","componentConstructor","templateFunction","withConfig","domElement","GlobalStyle","createStyles","removeStyles","renderStyles","scCGSHMRCache","keyProp"],"mappings":"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","file":"static/js/pages-Article.9276a896.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/bookmarked-ico.4f99fb37.svg\";","import { stringToBytes, toUint8, bytesMatch, bytesToString, toHexString, padStart, bytesToNumber } from './byte-helpers.js';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js';\nimport { parseOpusHead } from './opus-helpers.js';\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return stringToBytes(path);\n }\n\n if (typeof path === 'number') {\n return path;\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar DESCRIPTORS;\nexport var parseDescriptors = function parseDescriptors(bytes) {\n bytes = toUint8(bytes);\n var results = [];\n var i = 0;\n\n while (bytes.length > i) {\n var tag = bytes[i];\n var size = 0;\n var headerSize = 0; // tag\n\n headerSize++;\n var byte = bytes[headerSize]; // first byte\n\n headerSize++;\n\n while (byte & 0x80) {\n size = (byte & 0x7F) << 7;\n byte = bytes[headerSize];\n headerSize++;\n }\n\n size += byte & 0x7F;\n\n for (var z = 0; z < DESCRIPTORS.length; z++) {\n var _DESCRIPTORS$z = DESCRIPTORS[z],\n id = _DESCRIPTORS$z.id,\n parser = _DESCRIPTORS$z.parser;\n\n if (tag === id) {\n results.push(parser(bytes.subarray(headerSize, headerSize + size)));\n break;\n }\n }\n\n i += size + headerSize;\n }\n\n return results;\n};\nDESCRIPTORS = [{\n id: 0x03,\n parser: function parser(bytes) {\n var desc = {\n tag: 0x03,\n id: bytes[0] << 8 | bytes[1],\n flags: bytes[2],\n size: 3,\n dependsOnEsId: 0,\n ocrEsId: 0,\n descriptors: [],\n url: ''\n }; // depends on es id\n\n if (desc.flags & 0x80) {\n desc.dependsOnEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n } // url\n\n\n if (desc.flags & 0x40) {\n var len = bytes[desc.size];\n desc.url = bytesToString(bytes.subarray(desc.size + 1, desc.size + 1 + len));\n desc.size += len;\n } // ocr es id\n\n\n if (desc.flags & 0x20) {\n desc.ocrEsId = bytes[desc.size] << 8 | bytes[desc.size + 1];\n desc.size += 2;\n }\n\n desc.descriptors = parseDescriptors(bytes.subarray(desc.size)) || [];\n return desc;\n }\n}, {\n id: 0x04,\n parser: function parser(bytes) {\n // DecoderConfigDescriptor\n var desc = {\n tag: 0x04,\n oti: bytes[0],\n streamType: bytes[1],\n bufferSize: bytes[2] << 16 | bytes[3] << 8 | bytes[4],\n maxBitrate: bytes[5] << 24 | bytes[6] << 16 | bytes[7] << 8 | bytes[8],\n avgBitrate: bytes[9] << 24 | bytes[10] << 16 | bytes[11] << 8 | bytes[12],\n descriptors: parseDescriptors(bytes.subarray(13))\n };\n return desc;\n }\n}, {\n id: 0x05,\n parser: function parser(bytes) {\n // DecoderSpecificInfo\n return {\n tag: 0x05,\n bytes: bytes\n };\n }\n}, {\n id: 0x06,\n parser: function parser(bytes) {\n // SLConfigDescriptor\n return {\n tag: 0x06,\n bytes: bytes\n };\n }\n}];\n/**\n * find any number of boxes by name given a path to it in an iso bmff\n * such as mp4.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {Uint8Array[]|string[]|string|Uint8Array} name\n * An array of paths or a single path representing the name\n * of boxes to search through in bytes. Paths may be\n * uint8 (character codes) or strings.\n *\n * @param {boolean} [complete=false]\n * Should we search only for complete boxes on the final path.\n * This is very useful when you do not want to get back partial boxes\n * in the case of streaming files.\n *\n * @return {Uint8Array[]}\n * An array of the end paths that we found.\n */\n\nexport var findBox = function findBox(bytes, paths, complete) {\n if (complete === void 0) {\n complete = false;\n }\n\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n // short-circuit the search for empty paths\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var size = (bytes[i] << 24 | bytes[i + 1] << 16 | bytes[i + 2] << 8 | bytes[i + 3]) >>> 0;\n var type = bytes.subarray(i + 4, i + 8); // invalid box format.\n\n if (size === 0) {\n break;\n }\n\n var end = i + size;\n\n if (end > bytes.length) {\n // this box is bigger than the number of bytes we have\n // and complete is set, we cannot find any more boxes.\n if (complete) {\n break;\n }\n\n end = bytes.length;\n }\n\n var data = bytes.subarray(i + 8, end);\n\n if (bytesMatch(type, paths[0])) {\n if (paths.length === 1) {\n // this is the end of the path and we've found the box we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next box along the path\n results.push.apply(results, findBox(data, paths.slice(1), complete));\n }\n }\n\n i = end;\n } // we've finished searching all of bytes\n\n\n return results;\n};\n/**\n * Search for a single matching box by name in an iso bmff format like\n * mp4. This function is useful for finding codec boxes which\n * can be placed arbitrarily in sample descriptions depending\n * on the version of the file or file type.\n *\n * @param {TypedArray} bytes\n * bytes for the iso bmff to search for boxes in\n *\n * @param {string|Uint8Array} name\n * The name of the box to find.\n *\n * @return {Uint8Array[]}\n * a subarray of bytes representing the name boxed we found.\n */\n\nexport var findNamedBox = function findNamedBox(bytes, name) {\n name = normalizePath(name);\n\n if (!name.length) {\n // short-circuit the search for empty paths\n return bytes.subarray(bytes.length);\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n if (bytesMatch(bytes.subarray(i, i + name.length), name)) {\n var size = (bytes[i - 4] << 24 | bytes[i - 3] << 16 | bytes[i - 2] << 8 | bytes[i - 1]) >>> 0;\n var end = size > 1 ? i + size : bytes.byteLength;\n return bytes.subarray(i + 4, end);\n }\n\n i++;\n } // we've finished searching all of bytes\n\n\n return bytes.subarray(bytes.length);\n};\n\nvar parseSamples = function parseSamples(data, entrySize, parseEntry) {\n if (entrySize === void 0) {\n entrySize = 4;\n }\n\n if (parseEntry === void 0) {\n parseEntry = function parseEntry(d) {\n return bytesToNumber(d);\n };\n }\n\n var entries = [];\n\n if (!data || !data.length) {\n return entries;\n }\n\n var entryCount = bytesToNumber(data.subarray(4, 8));\n\n for (var i = 8; entryCount; i += entrySize, entryCount--) {\n entries.push(parseEntry(data.subarray(i, i + entrySize)));\n }\n\n return entries;\n};\n\nexport var buildFrameTable = function buildFrameTable(stbl, timescale) {\n var keySamples = parseSamples(findBox(stbl, ['stss'])[0]);\n var chunkOffsets = parseSamples(findBox(stbl, ['stco'])[0]);\n var timeToSamples = parseSamples(findBox(stbl, ['stts'])[0], 8, function (entry) {\n return {\n sampleCount: bytesToNumber(entry.subarray(0, 4)),\n sampleDelta: bytesToNumber(entry.subarray(4, 8))\n };\n });\n var samplesToChunks = parseSamples(findBox(stbl, ['stsc'])[0], 12, function (entry) {\n return {\n firstChunk: bytesToNumber(entry.subarray(0, 4)),\n samplesPerChunk: bytesToNumber(entry.subarray(4, 8)),\n sampleDescriptionIndex: bytesToNumber(entry.subarray(8, 12))\n };\n });\n var stsz = findBox(stbl, ['stsz'])[0]; // stsz starts with a 4 byte sampleSize which we don't need\n\n var sampleSizes = parseSamples(stsz && stsz.length && stsz.subarray(4) || null);\n var frames = [];\n\n for (var chunkIndex = 0; chunkIndex < chunkOffsets.length; chunkIndex++) {\n var samplesInChunk = void 0;\n\n for (var i = 0; i < samplesToChunks.length; i++) {\n var sampleToChunk = samplesToChunks[i];\n var isThisOne = chunkIndex + 1 >= sampleToChunk.firstChunk && (i + 1 >= samplesToChunks.length || chunkIndex + 1 < samplesToChunks[i + 1].firstChunk);\n\n if (isThisOne) {\n samplesInChunk = sampleToChunk.samplesPerChunk;\n break;\n }\n }\n\n var chunkOffset = chunkOffsets[chunkIndex];\n\n for (var _i = 0; _i < samplesInChunk; _i++) {\n var frameEnd = sampleSizes[frames.length]; // if we don't have key samples every frame is a keyframe\n\n var keyframe = !keySamples.length;\n\n if (keySamples.length && keySamples.indexOf(frames.length + 1) !== -1) {\n keyframe = true;\n }\n\n var frame = {\n keyframe: keyframe,\n start: chunkOffset,\n end: chunkOffset + frameEnd\n };\n\n for (var k = 0; k < timeToSamples.length; k++) {\n var _timeToSamples$k = timeToSamples[k],\n sampleCount = _timeToSamples$k.sampleCount,\n sampleDelta = _timeToSamples$k.sampleDelta;\n\n if (frames.length <= sampleCount) {\n // ms to ns\n var lastTimestamp = frames.length ? frames[frames.length - 1].timestamp : 0;\n frame.timestamp = lastTimestamp + sampleDelta / timescale * 1000;\n frame.duration = sampleDelta;\n break;\n }\n }\n\n frames.push(frame);\n chunkOffset += frameEnd;\n }\n }\n\n return frames;\n};\nexport var addSampleDescription = function addSampleDescription(track, bytes) {\n var codec = bytesToString(bytes.subarray(0, 4));\n\n if (track.type === 'video') {\n track.info = track.info || {};\n track.info.width = bytes[28] << 8 | bytes[29];\n track.info.height = bytes[30] << 8 | bytes[31];\n } else if (track.type === 'audio') {\n track.info = track.info || {};\n track.info.channels = bytes[20] << 8 | bytes[21];\n track.info.bitDepth = bytes[22] << 8 | bytes[23];\n track.info.sampleRate = bytes[28] << 8 | bytes[29];\n }\n\n if (codec === 'avc1') {\n var avcC = findNamedBox(bytes, 'avcC'); // AVCDecoderConfigurationRecord\n\n codec += \".\" + getAvcCodec(avcC);\n track.info.avcC = avcC; // TODO: do we need to parse all this?\n\n /* {\n configurationVersion: avcC[0],\n profile: avcC[1],\n profileCompatibility: avcC[2],\n level: avcC[3],\n lengthSizeMinusOne: avcC[4] & 0x3\n };\n let spsNalUnitCount = avcC[5] & 0x1F;\n const spsNalUnits = track.info.avc.spsNalUnits = [];\n // past spsNalUnitCount\n let offset = 6;\n while (spsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n spsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }\n let ppsNalUnitCount = avcC[offset];\n const ppsNalUnits = track.info.avc.ppsNalUnits = [];\n // past ppsNalUnitCount\n offset += 1;\n while (ppsNalUnitCount--) {\n const nalLen = avcC[offset] << 8 | avcC[offset + 1];\n ppsNalUnits.push(avcC.subarray(offset + 2, offset + 2 + nalLen));\n offset += nalLen + 2;\n }*/\n // HEVCDecoderConfigurationRecord\n } else if (codec === 'hvc1' || codec === 'hev1') {\n codec += \".\" + getHvcCodec(findNamedBox(bytes, 'hvcC'));\n } else if (codec === 'mp4a' || codec === 'mp4v') {\n var esds = findNamedBox(bytes, 'esds');\n var esDescriptor = parseDescriptors(esds.subarray(4))[0];\n var decoderConfig = esDescriptor && esDescriptor.descriptors.filter(function (_ref) {\n var tag = _ref.tag;\n return tag === 0x04;\n })[0];\n\n if (decoderConfig) {\n // most codecs do not have a further '.'\n // such as 0xa5 for ac-3 and 0xa6 for e-ac-3\n codec += '.' + toHexString(decoderConfig.oti);\n\n if (decoderConfig.oti === 0x40) {\n codec += '.' + (decoderConfig.descriptors[0].bytes[0] >> 3).toString();\n } else if (decoderConfig.oti === 0x20) {\n codec += '.' + decoderConfig.descriptors[0].bytes[4].toString();\n } else if (decoderConfig.oti === 0xdd) {\n codec = 'vorbis';\n }\n } else if (track.type === 'audio') {\n codec += '.40.2';\n } else {\n codec += '.20.9';\n }\n } else if (codec === 'av01') {\n // AV1DecoderConfigurationRecord\n codec += \".\" + getAv1Codec(findNamedBox(bytes, 'av1C'));\n } else if (codec === 'vp09') {\n // VPCodecConfigurationRecord\n var vpcC = findNamedBox(bytes, 'vpcC'); // https://www.webmproject.org/vp9/mp4/\n\n var profile = vpcC[0];\n var level = vpcC[1];\n var bitDepth = vpcC[2] >> 4;\n var chromaSubsampling = (vpcC[2] & 0x0F) >> 1;\n var videoFullRangeFlag = (vpcC[2] & 0x0F) >> 3;\n var colourPrimaries = vpcC[3];\n var transferCharacteristics = vpcC[4];\n var matrixCoefficients = vpcC[5];\n codec += \".\" + padStart(profile, 2, '0');\n codec += \".\" + padStart(level, 2, '0');\n codec += \".\" + padStart(bitDepth, 2, '0');\n codec += \".\" + padStart(chromaSubsampling, 2, '0');\n codec += \".\" + padStart(colourPrimaries, 2, '0');\n codec += \".\" + padStart(transferCharacteristics, 2, '0');\n codec += \".\" + padStart(matrixCoefficients, 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag, 2, '0');\n } else if (codec === 'theo') {\n codec = 'theora';\n } else if (codec === 'spex') {\n codec = 'speex';\n } else if (codec === '.mp3') {\n codec = 'mp4a.40.34';\n } else if (codec === 'msVo') {\n codec = 'vorbis';\n } else if (codec === 'Opus') {\n codec = 'opus';\n var dOps = findNamedBox(bytes, 'dOps');\n track.info.opus = parseOpusHead(dOps); // TODO: should this go into the webm code??\n // Firefox requires a codecDelay for opus playback\n // see https://bugzilla.mozilla.org/show_bug.cgi?id=1276238\n\n track.info.codecDelay = 6500000;\n } else {\n codec = codec.toLowerCase();\n }\n /* eslint-enable */\n // flac, ac-3, ec-3, opus\n\n\n track.codec = codec;\n};\nexport var parseTracks = function parseTracks(bytes, frameTable) {\n if (frameTable === void 0) {\n frameTable = true;\n }\n\n bytes = toUint8(bytes);\n var traks = findBox(bytes, ['moov', 'trak'], true);\n var tracks = [];\n traks.forEach(function (trak) {\n var track = {\n bytes: trak\n };\n var mdia = findBox(trak, ['mdia'])[0];\n var hdlr = findBox(mdia, ['hdlr'])[0];\n var trakType = bytesToString(hdlr.subarray(8, 12));\n\n if (trakType === 'soun') {\n track.type = 'audio';\n } else if (trakType === 'vide') {\n track.type = 'video';\n } else {\n track.type = trakType;\n }\n\n var tkhd = findBox(trak, ['tkhd'])[0];\n\n if (tkhd) {\n var view = new DataView(tkhd.buffer, tkhd.byteOffset, tkhd.byteLength);\n var tkhdVersion = view.getUint8(0);\n track.number = tkhdVersion === 0 ? view.getUint32(12) : view.getUint32(20);\n }\n\n var mdhd = findBox(mdia, ['mdhd'])[0];\n\n if (mdhd) {\n // mdhd is a FullBox, meaning it will have its own version as the first byte\n var version = mdhd[0];\n var index = version === 0 ? 12 : 20;\n track.timescale = (mdhd[index] << 24 | mdhd[index + 1] << 16 | mdhd[index + 2] << 8 | mdhd[index + 3]) >>> 0;\n }\n\n var stbl = findBox(mdia, ['minf', 'stbl'])[0];\n var stsd = findBox(stbl, ['stsd'])[0];\n var descriptionCount = bytesToNumber(stsd.subarray(4, 8));\n var offset = 8; // add codec and codec info\n\n while (descriptionCount--) {\n var len = bytesToNumber(stsd.subarray(offset, offset + 4));\n var sampleDescriptor = stsd.subarray(offset + 4, offset + 4 + len);\n addSampleDescription(track, sampleDescriptor);\n offset += 4 + len;\n }\n\n if (frameTable) {\n track.frameTable = buildFrameTable(stbl, track.timescale);\n } // codec has no sub parameters\n\n\n tracks.push(track);\n });\n return tracks;\n};\nexport var parseMediaInfo = function parseMediaInfo(bytes) {\n var mvhd = findBox(bytes, ['moov', 'mvhd'], true)[0];\n\n if (!mvhd || !mvhd.length) {\n return;\n }\n\n var info = {}; // ms to ns\n // mvhd v1 has 8 byte duration and other fields too\n\n if (mvhd[0] === 1) {\n info.timestampScale = bytesToNumber(mvhd.subarray(20, 24));\n info.duration = bytesToNumber(mvhd.subarray(24, 32));\n } else {\n info.timestampScale = bytesToNumber(mvhd.subarray(12, 16));\n info.duration = bytesToNumber(mvhd.subarray(16, 20));\n }\n\n info.bytes = mvhd;\n return info;\n};","export var OPUS_HEAD = new Uint8Array([// O, p, u, s\n0x4f, 0x70, 0x75, 0x73, // H, e, a, d\n0x48, 0x65, 0x61, 0x64]); // https://wiki.xiph.org/OggOpus\n// https://vfrmaniac.fushizen.eu/contents/opus_in_isobmff.html\n// https://opus-codec.org/docs/opusfile_api-0.7/structOpusHead.html\n\nexport var parseOpusHead = function parseOpusHead(bytes) {\n var view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n var version = view.getUint8(0); // version 0, from mp4, does not use littleEndian.\n\n var littleEndian = version !== 0;\n var config = {\n version: version,\n channels: view.getUint8(1),\n preSkip: view.getUint16(2, littleEndian),\n sampleRate: view.getUint32(4, littleEndian),\n outputGain: view.getUint16(8, littleEndian),\n channelMappingFamily: view.getUint8(10)\n };\n\n if (config.channelMappingFamily > 0 && bytes.length > 10) {\n config.streamCount = view.getUint8(11);\n config.twoChannelStreamCount = view.getUint8(12);\n config.channelMapping = [];\n\n for (var c = 0; c < config.channels; c++) {\n config.channelMapping.push(view.getUint8(13 + c));\n }\n }\n\n return config;\n};\nexport var setOpusHead = function setOpusHead(config) {\n var size = config.channelMappingFamily <= 0 ? 11 : 12 + config.channels;\n var view = new DataView(new ArrayBuffer(size));\n var littleEndian = config.version !== 0;\n view.setUint8(0, config.version);\n view.setUint8(1, config.channels);\n view.setUint16(2, config.preSkip, littleEndian);\n view.setUint32(4, config.sampleRate, littleEndian);\n view.setUint16(8, config.outputGain, littleEndian);\n view.setUint8(10, config.channelMappingFamily);\n\n if (config.channelMappingFamily > 0) {\n view.setUint8(11, config.streamCount);\n config.channelMapping.foreach(function (cm, i) {\n view.setUint8(12 + i, cm);\n });\n }\n\n return new Uint8Array(view.buffer);\n};","import { toUint8, bytesToNumber, bytesMatch, bytesToString, numberToBytes, padStart } from './byte-helpers';\nimport { getAvcCodec, getHvcCodec, getAv1Codec } from './codec-helpers.js'; // relevant specs for this parser:\n// https://matroska-org.github.io/libebml/specs.html\n// https://www.matroska.org/technical/elements.html\n// https://www.webmproject.org/docs/container/\n\nexport var EBML_TAGS = {\n EBML: toUint8([0x1A, 0x45, 0xDF, 0xA3]),\n DocType: toUint8([0x42, 0x82]),\n Segment: toUint8([0x18, 0x53, 0x80, 0x67]),\n SegmentInfo: toUint8([0x15, 0x49, 0xA9, 0x66]),\n Tracks: toUint8([0x16, 0x54, 0xAE, 0x6B]),\n Track: toUint8([0xAE]),\n TrackNumber: toUint8([0xd7]),\n DefaultDuration: toUint8([0x23, 0xe3, 0x83]),\n TrackEntry: toUint8([0xAE]),\n TrackType: toUint8([0x83]),\n FlagDefault: toUint8([0x88]),\n CodecID: toUint8([0x86]),\n CodecPrivate: toUint8([0x63, 0xA2]),\n VideoTrack: toUint8([0xe0]),\n AudioTrack: toUint8([0xe1]),\n // Not used yet, but will be used for live webm/mkv\n // see https://www.matroska.org/technical/basics.html#block-structure\n // see https://www.matroska.org/technical/basics.html#simpleblock-structure\n Cluster: toUint8([0x1F, 0x43, 0xB6, 0x75]),\n Timestamp: toUint8([0xE7]),\n TimestampScale: toUint8([0x2A, 0xD7, 0xB1]),\n BlockGroup: toUint8([0xA0]),\n BlockDuration: toUint8([0x9B]),\n Block: toUint8([0xA1]),\n SimpleBlock: toUint8([0xA3])\n};\n/**\n * This is a simple table to determine the length\n * of things in ebml. The length is one based (starts at 1,\n * rather than zero) and for every zero bit before a one bit\n * we add one to length. We also need this table because in some\n * case we have to xor all the length bits from another value.\n */\n\nvar LENGTH_TABLE = [128, 64, 32, 16, 8, 4, 2, 1];\n\nvar getLength = function getLength(byte) {\n var len = 1;\n\n for (var i = 0; i < LENGTH_TABLE.length; i++) {\n if (byte & LENGTH_TABLE[i]) {\n break;\n }\n\n len++;\n }\n\n return len;\n}; // length in ebml is stored in the first 4 to 8 bits\n// of the first byte. 4 for the id length and 8 for the\n// data size length. Length is measured by converting the number to binary\n// then 1 + the number of zeros before a 1 is encountered starting\n// from the left.\n\n\nvar getvint = function getvint(bytes, offset, removeLength, signed) {\n if (removeLength === void 0) {\n removeLength = true;\n }\n\n if (signed === void 0) {\n signed = false;\n }\n\n var length = getLength(bytes[offset]);\n var valueBytes = bytes.subarray(offset, offset + length); // NOTE that we do **not** subarray here because we need to copy these bytes\n // as they will be modified below to remove the dataSizeLen bits and we do not\n // want to modify the original data. normally we could just call slice on\n // uint8array but ie 11 does not support that...\n\n if (removeLength) {\n valueBytes = Array.prototype.slice.call(bytes, offset, offset + length);\n valueBytes[0] ^= LENGTH_TABLE[length - 1];\n }\n\n return {\n length: length,\n value: bytesToNumber(valueBytes, {\n signed: signed\n }),\n bytes: valueBytes\n };\n};\n\nvar normalizePath = function normalizePath(path) {\n if (typeof path === 'string') {\n return path.match(/.{1,2}/g).map(function (p) {\n return normalizePath(p);\n });\n }\n\n if (typeof path === 'number') {\n return numberToBytes(path);\n }\n\n return path;\n};\n\nvar normalizePaths = function normalizePaths(paths) {\n if (!Array.isArray(paths)) {\n return [normalizePath(paths)];\n }\n\n return paths.map(function (p) {\n return normalizePath(p);\n });\n};\n\nvar getInfinityDataSize = function getInfinityDataSize(id, bytes, offset) {\n if (offset >= bytes.length) {\n return bytes.length;\n }\n\n var innerid = getvint(bytes, offset, false);\n\n if (bytesMatch(id.bytes, innerid.bytes)) {\n return offset;\n }\n\n var dataHeader = getvint(bytes, offset + innerid.length);\n return getInfinityDataSize(id, bytes, offset + dataHeader.length + dataHeader.value + innerid.length);\n};\n/**\n * Notes on the EBLM format.\n *\n * EBLM uses \"vints\" tags. Every vint tag contains\n * two parts\n *\n * 1. The length from the first byte. You get this by\n * converting the byte to binary and counting the zeros\n * before a 1. Then you add 1 to that. Examples\n * 00011111 = length 4 because there are 3 zeros before a 1.\n * 00100000 = length 3 because there are 2 zeros before a 1.\n * 00000011 = length 7 because there are 6 zeros before a 1.\n *\n * 2. The bits used for length are removed from the first byte\n * Then all the bytes are merged into a value. NOTE: this\n * is not the case for id ebml tags as there id includes\n * length bits.\n *\n */\n\n\nexport var findEbml = function findEbml(bytes, paths) {\n paths = normalizePaths(paths);\n bytes = toUint8(bytes);\n var results = [];\n\n if (!paths.length) {\n return results;\n }\n\n var i = 0;\n\n while (i < bytes.length) {\n var id = getvint(bytes, i, false);\n var dataHeader = getvint(bytes, i + id.length);\n var dataStart = i + id.length + dataHeader.length; // dataSize is unknown or this is a live stream\n\n if (dataHeader.value === 0x7f) {\n dataHeader.value = getInfinityDataSize(id, bytes, dataStart);\n\n if (dataHeader.value !== bytes.length) {\n dataHeader.value -= dataStart;\n }\n }\n\n var dataEnd = dataStart + dataHeader.value > bytes.length ? bytes.length : dataStart + dataHeader.value;\n var data = bytes.subarray(dataStart, dataEnd);\n\n if (bytesMatch(paths[0], id.bytes)) {\n if (paths.length === 1) {\n // this is the end of the paths and we've found the tag we were\n // looking for\n results.push(data);\n } else {\n // recursively search for the next tag inside of the data\n // of this one\n results = results.concat(findEbml(data, paths.slice(1)));\n }\n }\n\n var totalLength = id.length + dataHeader.length + data.length; // move past this tag entirely, we are not looking for it\n\n i += totalLength;\n }\n\n return results;\n}; // see https://www.matroska.org/technical/basics.html#block-structure\n\nexport var decodeBlock = function decodeBlock(block, type, timestampScale, clusterTimestamp) {\n var duration;\n\n if (type === 'group') {\n duration = findEbml(block, [EBML_TAGS.BlockDuration])[0];\n\n if (duration) {\n duration = bytesToNumber(duration);\n duration = 1 / timestampScale * duration * timestampScale / 1000;\n }\n\n block = findEbml(block, [EBML_TAGS.Block])[0];\n type = 'block'; // treat data as a block after this point\n }\n\n var dv = new DataView(block.buffer, block.byteOffset, block.byteLength);\n var trackNumber = getvint(block, 0);\n var timestamp = dv.getInt16(trackNumber.length, false);\n var flags = block[trackNumber.length + 2];\n var data = block.subarray(trackNumber.length + 3); // pts/dts in seconds\n\n var ptsdts = 1 / timestampScale * (clusterTimestamp + timestamp) * timestampScale / 1000; // return the frame\n\n var parsed = {\n duration: duration,\n trackNumber: trackNumber.value,\n keyframe: type === 'simple' && flags >> 7 === 1,\n invisible: (flags & 0x08) >> 3 === 1,\n lacing: (flags & 0x06) >> 1,\n discardable: type === 'simple' && (flags & 0x01) === 1,\n frames: [],\n pts: ptsdts,\n dts: ptsdts,\n timestamp: timestamp\n };\n\n if (!parsed.lacing) {\n parsed.frames.push(data);\n return parsed;\n }\n\n var numberOfFrames = data[0] + 1;\n var frameSizes = [];\n var offset = 1; // Fixed\n\n if (parsed.lacing === 2) {\n var sizeOfFrame = (data.length - offset) / numberOfFrames;\n\n for (var i = 0; i < numberOfFrames; i++) {\n frameSizes.push(sizeOfFrame);\n }\n } // xiph\n\n\n if (parsed.lacing === 1) {\n for (var _i = 0; _i < numberOfFrames - 1; _i++) {\n var size = 0;\n\n do {\n size += data[offset];\n offset++;\n } while (data[offset - 1] === 0xFF);\n\n frameSizes.push(size);\n }\n } // ebml\n\n\n if (parsed.lacing === 3) {\n // first vint is unsinged\n // after that vints are singed and\n // based on a compounding size\n var _size = 0;\n\n for (var _i2 = 0; _i2 < numberOfFrames - 1; _i2++) {\n var vint = _i2 === 0 ? getvint(data, offset) : getvint(data, offset, true, true);\n _size += vint.value;\n frameSizes.push(_size);\n offset += vint.length;\n }\n }\n\n frameSizes.forEach(function (size) {\n parsed.frames.push(data.subarray(offset, offset + size));\n offset += size;\n });\n return parsed;\n}; // VP9 Codec Feature Metadata (CodecPrivate)\n// https://www.webmproject.org/docs/container/\n\nvar parseVp9Private = function parseVp9Private(bytes) {\n var i = 0;\n var params = {};\n\n while (i < bytes.length) {\n var id = bytes[i] & 0x7f;\n var len = bytes[i + 1];\n var val = void 0;\n\n if (len === 1) {\n val = bytes[i + 2];\n } else {\n val = bytes.subarray(i + 2, i + 2 + len);\n }\n\n if (id === 1) {\n params.profile = val;\n } else if (id === 2) {\n params.level = val;\n } else if (id === 3) {\n params.bitDepth = val;\n } else if (id === 4) {\n params.chromaSubsampling = val;\n } else {\n params[id] = val;\n }\n\n i += 2 + len;\n }\n\n return params;\n};\n\nexport var parseTracks = function parseTracks(bytes) {\n bytes = toUint8(bytes);\n var decodedTracks = [];\n var tracks = findEbml(bytes, [EBML_TAGS.Segment, EBML_TAGS.Tracks, EBML_TAGS.Track]);\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Tracks, EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n tracks = findEbml(bytes, [EBML_TAGS.Track]);\n }\n\n if (!tracks.length) {\n return decodedTracks;\n }\n\n tracks.forEach(function (track) {\n var trackType = findEbml(track, EBML_TAGS.TrackType)[0];\n\n if (!trackType || !trackType.length) {\n return;\n } // 1 is video, 2 is audio, 17 is subtitle\n // other values are unimportant in this context\n\n\n if (trackType[0] === 1) {\n trackType = 'video';\n } else if (trackType[0] === 2) {\n trackType = 'audio';\n } else if (trackType[0] === 17) {\n trackType = 'subtitle';\n } else {\n return;\n } // todo parse language\n\n\n var decodedTrack = {\n rawCodec: bytesToString(findEbml(track, [EBML_TAGS.CodecID])[0]),\n type: trackType,\n codecPrivate: findEbml(track, [EBML_TAGS.CodecPrivate])[0],\n number: bytesToNumber(findEbml(track, [EBML_TAGS.TrackNumber])[0]),\n defaultDuration: bytesToNumber(findEbml(track, [EBML_TAGS.DefaultDuration])[0]),\n default: findEbml(track, [EBML_TAGS.FlagDefault])[0],\n rawData: track\n };\n var codec = '';\n\n if (/V_MPEG4\\/ISO\\/AVC/.test(decodedTrack.rawCodec)) {\n codec = \"avc1.\" + getAvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEGH\\/ISO\\/HEVC/.test(decodedTrack.rawCodec)) {\n codec = \"hev1.\" + getHvcCodec(decodedTrack.codecPrivate);\n } else if (/V_MPEG4\\/ISO\\/ASP/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4v.20.' + decodedTrack.codecPrivate[4].toString();\n } else {\n codec = 'mp4v.20.9';\n }\n } else if (/^V_THEORA/.test(decodedTrack.rawCodec)) {\n codec = 'theora';\n } else if (/^V_VP8/.test(decodedTrack.rawCodec)) {\n codec = 'vp8';\n } else if (/^V_VP9/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n var _parseVp9Private = parseVp9Private(decodedTrack.codecPrivate),\n profile = _parseVp9Private.profile,\n level = _parseVp9Private.level,\n bitDepth = _parseVp9Private.bitDepth,\n chromaSubsampling = _parseVp9Private.chromaSubsampling;\n\n codec = 'vp09.';\n codec += padStart(profile, 2, '0') + \".\";\n codec += padStart(level, 2, '0') + \".\";\n codec += padStart(bitDepth, 2, '0') + \".\";\n codec += \"\" + padStart(chromaSubsampling, 2, '0'); // Video -> Colour -> Ebml name\n\n var matrixCoefficients = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB1]])[0] || [];\n var videoFullRangeFlag = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xB9]])[0] || [];\n var transferCharacteristics = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBA]])[0] || [];\n var colourPrimaries = findEbml(track, [0xE0, [0x55, 0xB0], [0x55, 0xBB]])[0] || []; // if we find any optional codec parameter specify them all.\n\n if (matrixCoefficients.length || videoFullRangeFlag.length || transferCharacteristics.length || colourPrimaries.length) {\n codec += \".\" + padStart(colourPrimaries[0], 2, '0');\n codec += \".\" + padStart(transferCharacteristics[0], 2, '0');\n codec += \".\" + padStart(matrixCoefficients[0], 2, '0');\n codec += \".\" + padStart(videoFullRangeFlag[0], 2, '0');\n }\n } else {\n codec = 'vp9';\n }\n } else if (/^V_AV1/.test(decodedTrack.rawCodec)) {\n codec = \"av01.\" + getAv1Codec(decodedTrack.codecPrivate);\n } else if (/A_ALAC/.test(decodedTrack.rawCodec)) {\n codec = 'alac';\n } else if (/A_MPEG\\/L2/.test(decodedTrack.rawCodec)) {\n codec = 'mp2';\n } else if (/A_MPEG\\/L3/.test(decodedTrack.rawCodec)) {\n codec = 'mp3';\n } else if (/^A_AAC/.test(decodedTrack.rawCodec)) {\n if (decodedTrack.codecPrivate) {\n codec = 'mp4a.40.' + (decodedTrack.codecPrivate[0] >>> 3).toString();\n } else {\n codec = 'mp4a.40.2';\n }\n } else if (/^A_AC3/.test(decodedTrack.rawCodec)) {\n codec = 'ac-3';\n } else if (/^A_PCM/.test(decodedTrack.rawCodec)) {\n codec = 'pcm';\n } else if (/^A_MS\\/ACM/.test(decodedTrack.rawCodec)) {\n codec = 'speex';\n } else if (/^A_EAC3/.test(decodedTrack.rawCodec)) {\n codec = 'ec-3';\n } else if (/^A_VORBIS/.test(decodedTrack.rawCodec)) {\n codec = 'vorbis';\n } else if (/^A_FLAC/.test(decodedTrack.rawCodec)) {\n codec = 'flac';\n } else if (/^A_OPUS/.test(decodedTrack.rawCodec)) {\n codec = 'opus';\n }\n\n decodedTrack.codec = codec;\n decodedTracks.push(decodedTrack);\n });\n return decodedTracks.sort(function (a, b) {\n return a.number - b.number;\n });\n};\nexport var parseData = function parseData(data, tracks) {\n var allBlocks = [];\n var segment = findEbml(data, [EBML_TAGS.Segment])[0];\n var timestampScale = findEbml(segment, [EBML_TAGS.SegmentInfo, EBML_TAGS.TimestampScale])[0]; // in nanoseconds, defaults to 1ms\n\n if (timestampScale && timestampScale.length) {\n timestampScale = bytesToNumber(timestampScale);\n } else {\n timestampScale = 1000000;\n }\n\n var clusters = findEbml(segment, [EBML_TAGS.Cluster]);\n\n if (!tracks) {\n tracks = parseTracks(segment);\n }\n\n clusters.forEach(function (cluster, ci) {\n var simpleBlocks = findEbml(cluster, [EBML_TAGS.SimpleBlock]).map(function (b) {\n return {\n type: 'simple',\n data: b\n };\n });\n var blockGroups = findEbml(cluster, [EBML_TAGS.BlockGroup]).map(function (b) {\n return {\n type: 'group',\n data: b\n };\n });\n var timestamp = findEbml(cluster, [EBML_TAGS.Timestamp])[0] || 0;\n\n if (timestamp && timestamp.length) {\n timestamp = bytesToNumber(timestamp);\n } // get all blocks then sort them into the correct order\n\n\n var blocks = simpleBlocks.concat(blockGroups).sort(function (a, b) {\n return a.data.byteOffset - b.data.byteOffset;\n });\n blocks.forEach(function (block, bi) {\n var decoded = decodeBlock(block.data, block.type, timestampScale, timestamp);\n allBlocks.push(decoded);\n });\n });\n return {\n tracks: tracks,\n blocks: allBlocks\n };\n};","import { bytesMatch, toUint8 } from './byte-helpers.js';\nexport var NAL_TYPE_ONE = toUint8([0x00, 0x00, 0x00, 0x01]);\nexport var NAL_TYPE_TWO = toUint8([0x00, 0x00, 0x01]);\nexport var EMULATION_PREVENTION = toUint8([0x00, 0x00, 0x03]);\n/**\n * Expunge any \"Emulation Prevention\" bytes from a \"Raw Byte\n * Sequence Payload\"\n *\n * @param data {Uint8Array} the bytes of a RBSP from a NAL\n * unit\n * @return {Uint8Array} the RBSP without any Emulation\n * Prevention Bytes\n */\n\nexport var discardEmulationPreventionBytes = function discardEmulationPreventionBytes(bytes) {\n var positions = [];\n var i = 1; // Find all `Emulation Prevention Bytes`\n\n while (i < bytes.length - 2) {\n if (bytesMatch(bytes.subarray(i, i + 3), EMULATION_PREVENTION)) {\n positions.push(i + 2);\n i++;\n }\n\n i++;\n } // If no Emulation Prevention Bytes were found just return the original\n // array\n\n\n if (positions.length === 0) {\n return bytes;\n } // Create a new array to hold the NAL unit data\n\n\n var newLength = bytes.length - positions.length;\n var newData = new Uint8Array(newLength);\n var sourceIndex = 0;\n\n for (i = 0; i < newLength; sourceIndex++, i++) {\n if (sourceIndex === positions[0]) {\n // Skip this byte\n sourceIndex++; // Remove this position index\n\n positions.shift();\n }\n\n newData[i] = bytes[sourceIndex];\n }\n\n return newData;\n};\nexport var findNal = function findNal(bytes, dataType, types, nalLimit) {\n if (nalLimit === void 0) {\n nalLimit = Infinity;\n }\n\n bytes = toUint8(bytes);\n types = [].concat(types);\n var i = 0;\n var nalStart;\n var nalsFound = 0; // keep searching until:\n // we reach the end of bytes\n // we reach the maximum number of nals they want to seach\n // NOTE: that we disregard nalLimit when we have found the start\n // of the nal we want so that we can find the end of the nal we want.\n\n while (i < bytes.length && (nalsFound < nalLimit || nalStart)) {\n var nalOffset = void 0;\n\n if (bytesMatch(bytes.subarray(i), NAL_TYPE_ONE)) {\n nalOffset = 4;\n } else if (bytesMatch(bytes.subarray(i), NAL_TYPE_TWO)) {\n nalOffset = 3;\n } // we are unsynced,\n // find the next nal unit\n\n\n if (!nalOffset) {\n i++;\n continue;\n }\n\n nalsFound++;\n\n if (nalStart) {\n return discardEmulationPreventionBytes(bytes.subarray(nalStart, i));\n }\n\n var nalType = void 0;\n\n if (dataType === 'h264') {\n nalType = bytes[i + nalOffset] & 0x1f;\n } else if (dataType === 'h265') {\n nalType = bytes[i + nalOffset] >> 1 & 0x3f;\n }\n\n if (types.indexOf(nalType) !== -1) {\n nalStart = i + nalOffset;\n } // nal header is 1 length for h264, and 2 for h265\n\n\n i += nalOffset + (dataType === 'h264' ? 1 : 2);\n }\n\n return bytes.subarray(0, 0);\n};\nexport var findH264Nal = function findH264Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h264', type, nalLimit);\n};\nexport var findH265Nal = function findH265Nal(bytes, type, nalLimit) {\n return findNal(bytes, 'h265', type, nalLimit);\n};","import { toUint8, bytesMatch } from './byte-helpers.js';\nimport { findBox } from './mp4-helpers.js';\nimport { findEbml, EBML_TAGS } from './ebml-helpers.js';\nimport { getId3Offset } from './id3-helpers.js';\nimport { findH264Nal, findH265Nal } from './nal-helpers.js';\nvar CONSTANTS = {\n // \"webm\" string literal in hex\n 'webm': toUint8([0x77, 0x65, 0x62, 0x6d]),\n // \"matroska\" string literal in hex\n 'matroska': toUint8([0x6d, 0x61, 0x74, 0x72, 0x6f, 0x73, 0x6b, 0x61]),\n // \"fLaC\" string literal in hex\n 'flac': toUint8([0x66, 0x4c, 0x61, 0x43]),\n // \"OggS\" string literal in hex\n 'ogg': toUint8([0x4f, 0x67, 0x67, 0x53]),\n // ac-3 sync byte, also works for ec-3 as that is simply a codec\n // of ac-3\n 'ac3': toUint8([0x0b, 0x77]),\n // \"RIFF\" string literal in hex used for wav and avi\n 'riff': toUint8([0x52, 0x49, 0x46, 0x46]),\n // \"AVI\" string literal in hex\n 'avi': toUint8([0x41, 0x56, 0x49]),\n // \"WAVE\" string literal in hex\n 'wav': toUint8([0x57, 0x41, 0x56, 0x45]),\n // \"ftyp3g\" string literal in hex\n '3gp': toUint8([0x66, 0x74, 0x79, 0x70, 0x33, 0x67]),\n // \"ftyp\" string literal in hex\n 'mp4': toUint8([0x66, 0x74, 0x79, 0x70]),\n // \"styp\" string literal in hex\n 'fmp4': toUint8([0x73, 0x74, 0x79, 0x70]),\n // \"ftypqt\" string literal in hex\n 'mov': toUint8([0x66, 0x74, 0x79, 0x70, 0x71, 0x74]),\n // moov string literal in hex\n 'moov': toUint8([0x6D, 0x6F, 0x6F, 0x76]),\n // moof string literal in hex\n 'moof': toUint8([0x6D, 0x6F, 0x6F, 0x66])\n};\nvar _isLikely = {\n aac: function aac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x10], {\n offset: offset,\n mask: [0xFF, 0x16]\n });\n },\n mp3: function mp3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, [0xFF, 0x02], {\n offset: offset,\n mask: [0xFF, 0x06]\n });\n },\n webm: function webm(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is webm\n\n return bytesMatch(docType, CONSTANTS.webm);\n },\n mkv: function mkv(bytes) {\n var docType = findEbml(bytes, [EBML_TAGS.EBML, EBML_TAGS.DocType])[0]; // check if DocType EBML tag is matroska\n\n return bytesMatch(docType, CONSTANTS.matroska);\n },\n mp4: function mp4(bytes) {\n // if this file is another base media file format, it is not mp4\n if (_isLikely['3gp'](bytes) || _isLikely.mov(bytes)) {\n return false;\n } // if this file starts with a ftyp or styp box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.mp4, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.fmp4, {\n offset: 4\n })) {\n return true;\n } // if this file starts with a moof/moov box its mp4\n\n\n if (bytesMatch(bytes, CONSTANTS.moof, {\n offset: 4\n }) || bytesMatch(bytes, CONSTANTS.moov, {\n offset: 4\n })) {\n return true;\n }\n },\n mov: function mov(bytes) {\n return bytesMatch(bytes, CONSTANTS.mov, {\n offset: 4\n });\n },\n '3gp': function gp(bytes) {\n return bytesMatch(bytes, CONSTANTS['3gp'], {\n offset: 4\n });\n },\n ac3: function ac3(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.ac3, {\n offset: offset\n });\n },\n ts: function ts(bytes) {\n if (bytes.length < 189 && bytes.length >= 1) {\n return bytes[0] === 0x47;\n }\n\n var i = 0; // check the first 376 bytes for two matching sync bytes\n\n while (i + 188 < bytes.length && i < 188) {\n if (bytes[i] === 0x47 && bytes[i + 188] === 0x47) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n flac: function flac(bytes) {\n var offset = getId3Offset(bytes);\n return bytesMatch(bytes, CONSTANTS.flac, {\n offset: offset\n });\n },\n ogg: function ogg(bytes) {\n return bytesMatch(bytes, CONSTANTS.ogg);\n },\n avi: function avi(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.avi, {\n offset: 8\n });\n },\n wav: function wav(bytes) {\n return bytesMatch(bytes, CONSTANTS.riff) && bytesMatch(bytes, CONSTANTS.wav, {\n offset: 8\n });\n },\n 'h264': function h264(bytes) {\n // find seq_parameter_set_rbsp\n return findH264Nal(bytes, 7, 3).length;\n },\n 'h265': function h265(bytes) {\n // find video_parameter_set_rbsp or seq_parameter_set_rbsp\n return findH265Nal(bytes, [32, 33], 3).length;\n }\n}; // get all the isLikely functions\n// but make sure 'ts' is above h264 and h265\n// but below everything else as it is the least specific\n\nvar isLikelyTypes = Object.keys(_isLikely) // remove ts, h264, h265\n.filter(function (t) {\n return t !== 'ts' && t !== 'h264' && t !== 'h265';\n}) // add it back to the bottom\n.concat(['ts', 'h264', 'h265']); // make sure we are dealing with uint8 data.\n\nisLikelyTypes.forEach(function (type) {\n var isLikelyFn = _isLikely[type];\n\n _isLikely[type] = function (bytes) {\n return isLikelyFn(toUint8(bytes));\n };\n}); // export after wrapping\n\nexport var isLikely = _isLikely; // A useful list of file signatures can be found here\n// https://en.wikipedia.org/wiki/List_of_file_signatures\n\nexport var detectContainerForBytes = function detectContainerForBytes(bytes) {\n bytes = toUint8(bytes);\n\n for (var i = 0; i < isLikelyTypes.length; i++) {\n var type = isLikelyTypes[i];\n\n if (isLikely[type](bytes)) {\n return type;\n }\n }\n\n return '';\n}; // fmp4 is not a container\n\nexport var isLikelyFmp4MediaSegment = function isLikelyFmp4MediaSegment(bytes) {\n return findBox(bytes, ['moof']).length > 0;\n};","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nvar scrollSetting = {\n \"\": true,\n \"up\": true\n};\n\nfunction findScrollSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var scroll = scrollSetting[value.toLowerCase()];\n return scroll ? value.toLowerCase() : false;\n}\n\nfunction isValidPercentValue(value) {\n return typeof value === \"number\" && (value >= 0 && value <= 100);\n}\n\n// VTTRegion shim http://dev.w3.org/html5/webvtt/#vttregion-interface\nfunction VTTRegion() {\n var _width = 100;\n var _lines = 3;\n var _regionAnchorX = 0;\n var _regionAnchorY = 100;\n var _viewportAnchorX = 0;\n var _viewportAnchorY = 100;\n var _scroll = \"\";\n\n Object.defineProperties(this, {\n \"width\": {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"Width must be between 0 and 100.\");\n }\n _width = value;\n }\n },\n \"lines\": {\n enumerable: true,\n get: function() {\n return _lines;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"Lines must be set to a number.\");\n }\n _lines = value;\n }\n },\n \"regionAnchorY\": {\n enumerable: true,\n get: function() {\n return _regionAnchorY;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"RegionAnchorX must be between 0 and 100.\");\n }\n _regionAnchorY = value;\n }\n },\n \"regionAnchorX\": {\n enumerable: true,\n get: function() {\n return _regionAnchorX;\n },\n set: function(value) {\n if(!isValidPercentValue(value)) {\n throw new Error(\"RegionAnchorY must be between 0 and 100.\");\n }\n _regionAnchorX = value;\n }\n },\n \"viewportAnchorY\": {\n enumerable: true,\n get: function() {\n return _viewportAnchorY;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"ViewportAnchorY must be between 0 and 100.\");\n }\n _viewportAnchorY = value;\n }\n },\n \"viewportAnchorX\": {\n enumerable: true,\n get: function() {\n return _viewportAnchorX;\n },\n set: function(value) {\n if (!isValidPercentValue(value)) {\n throw new Error(\"ViewportAnchorX must be between 0 and 100.\");\n }\n _viewportAnchorX = value;\n }\n },\n \"scroll\": {\n enumerable: true,\n get: function() {\n return _scroll;\n },\n set: function(value) {\n var setting = findScrollSetting(value);\n // Have to check for false as an empty string is a legal value.\n if (setting === false) {\n console.warn(\"Scroll: an invalid or illegal string was specified.\");\n } else {\n _scroll = setting;\n }\n }\n }\n });\n}\n\nmodule.exports = VTTRegion;\n","import window from 'global/window';\n\nvar atob = function atob(s) {\n return window.atob ? window.atob(s) : Buffer.from(s, 'base64').toString('binary');\n};\n\nexport default function decodeB64ToUint8Array(b64Text) {\n var decodedString = atob(b64Text);\n var array = new Uint8Array(decodedString.length);\n\n for (var i = 0; i < decodedString.length; i++) {\n array[i] = decodedString.charCodeAt(i);\n }\n\n return array;\n}","/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\nvar document = require('global/document');\n\nvar _objCreate = Object.create || (function() {\n function F() {}\n return function(o) {\n if (arguments.length !== 1) {\n throw new Error('Object.create shim only accepts one parameter.');\n }\n F.prototype = o;\n return new F();\n };\n})();\n\n// Creates a new ParserError object from an errorData object. The errorData\n// object should have default code and message properties. The default message\n// property can be overriden by passing in a message parameter.\n// See ParsingError.Errors below for acceptable errors.\nfunction ParsingError(errorData, message) {\n this.name = \"ParsingError\";\n this.code = errorData.code;\n this.message = message || errorData.message;\n}\nParsingError.prototype = _objCreate(Error.prototype);\nParsingError.prototype.constructor = ParsingError;\n\n// ParsingError metadata for acceptable ParsingErrors.\nParsingError.Errors = {\n BadSignature: {\n code: 0,\n message: \"Malformed WebVTT signature.\"\n },\n BadTimeStamp: {\n code: 1,\n message: \"Malformed time stamp.\"\n }\n};\n\n// Try to parse input as a time stamp.\nfunction parseTimeStamp(input) {\n\n function computeSeconds(h, m, s, f) {\n return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;\n }\n\n var m = input.match(/^(\\d+):(\\d{1,2})(:\\d{1,2})?\\.(\\d{3})/);\n if (!m) {\n return null;\n }\n\n if (m[3]) {\n // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]\n return computeSeconds(m[1], m[2], m[3].replace(\":\", \"\"), m[4]);\n } else if (m[1] > 59) {\n // Timestamp takes the form of [hours]:[minutes].[milliseconds]\n // First position is hours as it's over 59.\n return computeSeconds(m[1], m[2], 0, m[4]);\n } else {\n // Timestamp takes the form of [minutes]:[seconds].[milliseconds]\n return computeSeconds(0, m[1], m[2], m[4]);\n }\n}\n\n// A settings object holds key/value pairs and will ignore anything but the first\n// assignment to a specific key.\nfunction Settings() {\n this.values = _objCreate(null);\n}\n\nSettings.prototype = {\n // Only accept the first assignment to any key.\n set: function(k, v) {\n if (!this.get(k) && v !== \"\") {\n this.values[k] = v;\n }\n },\n // Return the value for a key, or a default value.\n // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\n // a number of possible default values as properties where 'defaultKey' is\n // the key of the property that will be chosen; otherwise it's assumed to be\n // a single value.\n get: function(k, dflt, defaultKey) {\n if (defaultKey) {\n return this.has(k) ? this.values[k] : dflt[defaultKey];\n }\n return this.has(k) ? this.values[k] : dflt;\n },\n // Check whether we have a value for a key.\n has: function(k) {\n return k in this.values;\n },\n // Accept a setting if its one of the given alternatives.\n alt: function(k, v, a) {\n for (var n = 0; n < a.length; ++n) {\n if (v === a[n]) {\n this.set(k, v);\n break;\n }\n }\n },\n // Accept a setting if its a valid (signed) integer.\n integer: function(k, v) {\n if (/^-?\\d+$/.test(v)) { // integer\n this.set(k, parseInt(v, 10));\n }\n },\n // Accept a setting if its a valid percentage.\n percent: function(k, v) {\n var m;\n if ((m = v.match(/^([\\d]{1,3})(\\.[\\d]*)?%$/))) {\n v = parseFloat(v);\n if (v >= 0 && v <= 100) {\n this.set(k, v);\n return true;\n }\n }\n return false;\n }\n};\n\n// Helper function to parse input into groups separated by 'groupDelim', and\n// interprete each group as a key/value pair separated by 'keyValueDelim'.\nfunction parseOptions(input, callback, keyValueDelim, groupDelim) {\n var groups = groupDelim ? input.split(groupDelim) : [input];\n for (var i in groups) {\n if (typeof groups[i] !== \"string\") {\n continue;\n }\n var kv = groups[i].split(keyValueDelim);\n if (kv.length !== 2) {\n continue;\n }\n var k = kv[0].trim();\n var v = kv[1].trim();\n callback(k, v);\n }\n}\n\nfunction parseCue(input, cue, regionList) {\n // Remember the original input if we need to throw an error.\n var oInput = input;\n // 4.1 WebVTT timestamp\n function consumeTimeStamp() {\n var ts = parseTimeStamp(input);\n if (ts === null) {\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed timestamp: \" + oInput);\n }\n // Remove time stamp from input.\n input = input.replace(/^[^\\sa-zA-Z-]+/, \"\");\n return ts;\n }\n\n // 4.4.2 WebVTT cue settings\n function consumeCueSettings(input, cue) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"region\":\n // Find the last region we parsed with the same region id.\n for (var i = regionList.length - 1; i >= 0; i--) {\n if (regionList[i].id === v) {\n settings.set(k, regionList[i].region);\n break;\n }\n }\n break;\n case \"vertical\":\n settings.alt(k, v, [\"rl\", \"lr\"]);\n break;\n case \"line\":\n var vals = v.split(\",\"),\n vals0 = vals[0];\n settings.integer(k, vals0);\n settings.percent(k, vals0) ? settings.set(\"snapToLines\", false) : null;\n settings.alt(k, vals0, [\"auto\"]);\n if (vals.length === 2) {\n settings.alt(\"lineAlign\", vals[1], [\"start\", \"center\", \"end\"]);\n }\n break;\n case \"position\":\n vals = v.split(\",\");\n settings.percent(k, vals[0]);\n if (vals.length === 2) {\n settings.alt(\"positionAlign\", vals[1], [\"start\", \"center\", \"end\"]);\n }\n break;\n case \"size\":\n settings.percent(k, v);\n break;\n case \"align\":\n settings.alt(k, v, [\"start\", \"center\", \"end\", \"left\", \"right\"]);\n break;\n }\n }, /:/, /\\s/);\n\n // Apply default values for any missing fields.\n cue.region = settings.get(\"region\", null);\n cue.vertical = settings.get(\"vertical\", \"\");\n try {\n cue.line = settings.get(\"line\", \"auto\");\n } catch (e) {}\n cue.lineAlign = settings.get(\"lineAlign\", \"start\");\n cue.snapToLines = settings.get(\"snapToLines\", true);\n cue.size = settings.get(\"size\", 100);\n // Safari still uses the old middle value and won't accept center\n try {\n cue.align = settings.get(\"align\", \"center\");\n } catch (e) {\n cue.align = settings.get(\"align\", \"middle\");\n }\n try {\n cue.position = settings.get(\"position\", \"auto\");\n } catch (e) {\n cue.position = settings.get(\"position\", {\n start: 0,\n left: 0,\n center: 50,\n middle: 50,\n end: 100,\n right: 100\n }, cue.align);\n }\n\n\n cue.positionAlign = settings.get(\"positionAlign\", {\n start: \"start\",\n left: \"start\",\n center: \"center\",\n middle: \"center\",\n end: \"end\",\n right: \"end\"\n }, cue.align);\n }\n\n function skipWhitespace() {\n input = input.replace(/^\\s+/, \"\");\n }\n\n // 4.1 WebVTT cue timings.\n skipWhitespace();\n cue.startTime = consumeTimeStamp(); // (1) collect cue start time\n skipWhitespace();\n if (input.substr(0, 3) !== \"-->\") { // (3) next characters must match \"-->\"\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\n \"Malformed time stamp (time stamps must be separated by '-->'): \" +\n oInput);\n }\n input = input.substr(3);\n skipWhitespace();\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\n\n // 4.1 WebVTT cue settings list.\n skipWhitespace();\n consumeCueSettings(input, cue);\n}\n\n// When evaluating this file as part of a Webpack bundle for server\n// side rendering, `document` is an empty object.\nvar TEXTAREA_ELEMENT = document.createElement && document.createElement(\"textarea\");\n\nvar TAG_NAME = {\n c: \"span\",\n i: \"i\",\n b: \"b\",\n u: \"u\",\n ruby: \"ruby\",\n rt: \"rt\",\n v: \"span\",\n lang: \"span\"\n};\n\n// 5.1 default text color\n// 5.2 default text background color is equivalent to text color with bg_ prefix\nvar DEFAULT_COLOR_CLASS = {\n white: 'rgba(255,255,255,1)',\n lime: 'rgba(0,255,0,1)',\n cyan: 'rgba(0,255,255,1)',\n red: 'rgba(255,0,0,1)',\n yellow: 'rgba(255,255,0,1)',\n magenta: 'rgba(255,0,255,1)',\n blue: 'rgba(0,0,255,1)',\n black: 'rgba(0,0,0,1)'\n};\n\nvar TAG_ANNOTATION = {\n v: \"title\",\n lang: \"lang\"\n};\n\nvar NEEDS_PARENT = {\n rt: \"ruby\"\n};\n\n// Parse content into a document fragment.\nfunction parseContent(window, input) {\n function nextToken() {\n // Check for end-of-string.\n if (!input) {\n return null;\n }\n\n // Consume 'n' characters from the input.\n function consume(result) {\n input = input.substr(result.length);\n return result;\n }\n\n var m = input.match(/^([^<]*)(<[^>]*>?)?/);\n // If there is some text before the next tag, return it, otherwise return\n // the tag.\n return consume(m[1] ? m[1] : m[2]);\n }\n\n function unescape(s) {\n TEXTAREA_ELEMENT.innerHTML = s;\n s = TEXTAREA_ELEMENT.textContent;\n TEXTAREA_ELEMENT.textContent = \"\";\n return s;\n }\n\n function shouldAdd(current, element) {\n return !NEEDS_PARENT[element.localName] ||\n NEEDS_PARENT[element.localName] === current.localName;\n }\n\n // Create an element for this tag.\n function createElement(type, annotation) {\n var tagName = TAG_NAME[type];\n if (!tagName) {\n return null;\n }\n var element = window.document.createElement(tagName);\n var name = TAG_ANNOTATION[type];\n if (name && annotation) {\n element[name] = annotation.trim();\n }\n return element;\n }\n\n var rootDiv = window.document.createElement(\"div\"),\n current = rootDiv,\n t,\n tagStack = [];\n\n while ((t = nextToken()) !== null) {\n if (t[0] === '<') {\n if (t[1] === \"/\") {\n // If the closing tag matches, move back up to the parent node.\n if (tagStack.length &&\n tagStack[tagStack.length - 1] === t.substr(2).replace(\">\", \"\")) {\n tagStack.pop();\n current = current.parentNode;\n }\n // Otherwise just ignore the end tag.\n continue;\n }\n var ts = parseTimeStamp(t.substr(1, t.length - 2));\n var node;\n if (ts) {\n // Timestamps are lead nodes as well.\n node = window.document.createProcessingInstruction(\"timestamp\", ts);\n current.appendChild(node);\n continue;\n }\n var m = t.match(/^<([^.\\s/0-9>]+)(\\.[^\\s\\\\>]+)?([^>\\\\]+)?(\\\\?)>?$/);\n // If we can't parse the tag, skip to the next tag.\n if (!m) {\n continue;\n }\n // Try to construct an element, and ignore the tag if we couldn't.\n node = createElement(m[1], m[3]);\n if (!node) {\n continue;\n }\n // Determine if the tag should be added based on the context of where it\n // is placed in the cuetext.\n if (!shouldAdd(current, node)) {\n continue;\n }\n // Set the class list (as a list of classes, separated by space).\n if (m[2]) {\n var classes = m[2].split('.');\n\n classes.forEach(function(cl) {\n var bgColor = /^bg_/.test(cl);\n // slice out `bg_` if it's a background color\n var colorName = bgColor ? cl.slice(3) : cl;\n\n if (DEFAULT_COLOR_CLASS.hasOwnProperty(colorName)) {\n var propName = bgColor ? 'background-color' : 'color';\n var propValue = DEFAULT_COLOR_CLASS[colorName];\n\n node.style[propName] = propValue;\n }\n });\n\n node.className = classes.join(' ');\n }\n // Append the node to the current node, and enter the scope of the new\n // node.\n tagStack.push(m[1]);\n current.appendChild(node);\n current = node;\n continue;\n }\n\n // Text nodes are leaf nodes.\n current.appendChild(window.document.createTextNode(unescape(t)));\n }\n\n return rootDiv;\n}\n\n// This is a list of all the Unicode characters that have a strong\n// right-to-left category. What this means is that these characters are\n// written right-to-left for sure. It was generated by pulling all the strong\n// right-to-left characters out of the Unicode data table. That table can\n// found at: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\nvar strongRTLRanges = [[0x5be, 0x5be], [0x5c0, 0x5c0], [0x5c3, 0x5c3], [0x5c6, 0x5c6],\n [0x5d0, 0x5ea], [0x5f0, 0x5f4], [0x608, 0x608], [0x60b, 0x60b], [0x60d, 0x60d],\n [0x61b, 0x61b], [0x61e, 0x64a], [0x66d, 0x66f], [0x671, 0x6d5], [0x6e5, 0x6e6],\n [0x6ee, 0x6ef], [0x6fa, 0x70d], [0x70f, 0x710], [0x712, 0x72f], [0x74d, 0x7a5],\n [0x7b1, 0x7b1], [0x7c0, 0x7ea], [0x7f4, 0x7f5], [0x7fa, 0x7fa], [0x800, 0x815],\n [0x81a, 0x81a], [0x824, 0x824], [0x828, 0x828], [0x830, 0x83e], [0x840, 0x858],\n [0x85e, 0x85e], [0x8a0, 0x8a0], [0x8a2, 0x8ac], [0x200f, 0x200f],\n [0xfb1d, 0xfb1d], [0xfb1f, 0xfb28], [0xfb2a, 0xfb36], [0xfb38, 0xfb3c],\n [0xfb3e, 0xfb3e], [0xfb40, 0xfb41], [0xfb43, 0xfb44], [0xfb46, 0xfbc1],\n [0xfbd3, 0xfd3d], [0xfd50, 0xfd8f], [0xfd92, 0xfdc7], [0xfdf0, 0xfdfc],\n [0xfe70, 0xfe74], [0xfe76, 0xfefc], [0x10800, 0x10805], [0x10808, 0x10808],\n [0x1080a, 0x10835], [0x10837, 0x10838], [0x1083c, 0x1083c], [0x1083f, 0x10855],\n [0x10857, 0x1085f], [0x10900, 0x1091b], [0x10920, 0x10939], [0x1093f, 0x1093f],\n [0x10980, 0x109b7], [0x109be, 0x109bf], [0x10a00, 0x10a00], [0x10a10, 0x10a13],\n [0x10a15, 0x10a17], [0x10a19, 0x10a33], [0x10a40, 0x10a47], [0x10a50, 0x10a58],\n [0x10a60, 0x10a7f], [0x10b00, 0x10b35], [0x10b40, 0x10b55], [0x10b58, 0x10b72],\n [0x10b78, 0x10b7f], [0x10c00, 0x10c48], [0x1ee00, 0x1ee03], [0x1ee05, 0x1ee1f],\n [0x1ee21, 0x1ee22], [0x1ee24, 0x1ee24], [0x1ee27, 0x1ee27], [0x1ee29, 0x1ee32],\n [0x1ee34, 0x1ee37], [0x1ee39, 0x1ee39], [0x1ee3b, 0x1ee3b], [0x1ee42, 0x1ee42],\n [0x1ee47, 0x1ee47], [0x1ee49, 0x1ee49], [0x1ee4b, 0x1ee4b], [0x1ee4d, 0x1ee4f],\n [0x1ee51, 0x1ee52], [0x1ee54, 0x1ee54], [0x1ee57, 0x1ee57], [0x1ee59, 0x1ee59],\n [0x1ee5b, 0x1ee5b], [0x1ee5d, 0x1ee5d], [0x1ee5f, 0x1ee5f], [0x1ee61, 0x1ee62],\n [0x1ee64, 0x1ee64], [0x1ee67, 0x1ee6a], [0x1ee6c, 0x1ee72], [0x1ee74, 0x1ee77],\n [0x1ee79, 0x1ee7c], [0x1ee7e, 0x1ee7e], [0x1ee80, 0x1ee89], [0x1ee8b, 0x1ee9b],\n [0x1eea1, 0x1eea3], [0x1eea5, 0x1eea9], [0x1eeab, 0x1eebb], [0x10fffd, 0x10fffd]];\n\nfunction isStrongRTLChar(charCode) {\n for (var i = 0; i < strongRTLRanges.length; i++) {\n var currentRange = strongRTLRanges[i];\n if (charCode >= currentRange[0] && charCode <= currentRange[1]) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction determineBidi(cueDiv) {\n var nodeStack = [],\n text = \"\",\n charCode;\n\n if (!cueDiv || !cueDiv.childNodes) {\n return \"ltr\";\n }\n\n function pushNodes(nodeStack, node) {\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\n nodeStack.push(node.childNodes[i]);\n }\n }\n\n function nextTextNode(nodeStack) {\n if (!nodeStack || !nodeStack.length) {\n return null;\n }\n\n var node = nodeStack.pop(),\n text = node.textContent || node.innerText;\n if (text) {\n // TODO: This should match all unicode type B characters (paragraph\n // separator characters). See issue #115.\n var m = text.match(/^.*(\\n|\\r)/);\n if (m) {\n nodeStack.length = 0;\n return m[0];\n }\n return text;\n }\n if (node.tagName === \"ruby\") {\n return nextTextNode(nodeStack);\n }\n if (node.childNodes) {\n pushNodes(nodeStack, node);\n return nextTextNode(nodeStack);\n }\n }\n\n pushNodes(nodeStack, cueDiv);\n while ((text = nextTextNode(nodeStack))) {\n for (var i = 0; i < text.length; i++) {\n charCode = text.charCodeAt(i);\n if (isStrongRTLChar(charCode)) {\n return \"rtl\";\n }\n }\n }\n return \"ltr\";\n}\n\nfunction computeLinePos(cue) {\n if (typeof cue.line === \"number\" &&\n (cue.snapToLines || (cue.line >= 0 && cue.line <= 100))) {\n return cue.line;\n }\n if (!cue.track || !cue.track.textTrackList ||\n !cue.track.textTrackList.mediaElement) {\n return -1;\n }\n var track = cue.track,\n trackList = track.textTrackList,\n count = 0;\n for (var i = 0; i < trackList.length && trackList[i] !== track; i++) {\n if (trackList[i].mode === \"showing\") {\n count++;\n }\n }\n return ++count * -1;\n}\n\nfunction StyleBox() {\n}\n\n// Apply styles to a div. If there is no div passed then it defaults to the\n// div on 'this'.\nStyleBox.prototype.applyStyles = function(styles, div) {\n div = div || this.div;\n for (var prop in styles) {\n if (styles.hasOwnProperty(prop)) {\n div.style[prop] = styles[prop];\n }\n }\n};\n\nStyleBox.prototype.formatStyle = function(val, unit) {\n return val === 0 ? 0 : val + unit;\n};\n\n// Constructs the computed display state of the cue (a div). Places the div\n// into the overlay which should be a block level element (usually a div).\nfunction CueStyleBox(window, cue, styleOptions) {\n StyleBox.call(this);\n this.cue = cue;\n\n // Parse our cue's text into a DOM tree rooted at 'cueDiv'. This div will\n // have inline positioning and will function as the cue background box.\n this.cueDiv = parseContent(window, cue.text);\n var styles = {\n color: \"rgba(255, 255, 255, 1)\",\n backgroundColor: \"rgba(0, 0, 0, 0.8)\",\n position: \"relative\",\n left: 0,\n right: 0,\n top: 0,\n bottom: 0,\n display: \"inline\",\n writingMode: cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\",\n unicodeBidi: \"plaintext\"\n };\n\n this.applyStyles(styles, this.cueDiv);\n\n // Create an absolutely positioned div that will be used to position the cue\n // div. Note, all WebVTT cue-setting alignments are equivalent to the CSS\n // mirrors of them except middle instead of center on Safari.\n this.div = window.document.createElement(\"div\");\n styles = {\n direction: determineBidi(this.cueDiv),\n writingMode: cue.vertical === \"\" ? \"horizontal-tb\"\n : cue.vertical === \"lr\" ? \"vertical-lr\"\n : \"vertical-rl\",\n unicodeBidi: \"plaintext\",\n textAlign: cue.align === \"middle\" ? \"center\" : cue.align,\n font: styleOptions.font,\n whiteSpace: \"pre-line\",\n position: \"absolute\"\n };\n\n this.applyStyles(styles);\n this.div.appendChild(this.cueDiv);\n\n // Calculate the distance from the reference edge of the viewport to the text\n // position of the cue box. The reference edge will be resolved later when\n // the box orientation styles are applied.\n var textPos = 0;\n switch (cue.positionAlign) {\n case \"start\":\n textPos = cue.position;\n break;\n case \"center\":\n textPos = cue.position - (cue.size / 2);\n break;\n case \"end\":\n textPos = cue.position - cue.size;\n break;\n }\n\n // Horizontal box orientation; textPos is the distance from the left edge of the\n // area to the left edge of the box and cue.size is the distance extending to\n // the right from there.\n if (cue.vertical === \"\") {\n this.applyStyles({\n left: this.formatStyle(textPos, \"%\"),\n width: this.formatStyle(cue.size, \"%\")\n });\n // Vertical box orientation; textPos is the distance from the top edge of the\n // area to the top edge of the box and cue.size is the height extending\n // downwards from there.\n } else {\n this.applyStyles({\n top: this.formatStyle(textPos, \"%\"),\n height: this.formatStyle(cue.size, \"%\")\n });\n }\n\n this.move = function(box) {\n this.applyStyles({\n top: this.formatStyle(box.top, \"px\"),\n bottom: this.formatStyle(box.bottom, \"px\"),\n left: this.formatStyle(box.left, \"px\"),\n right: this.formatStyle(box.right, \"px\"),\n height: this.formatStyle(box.height, \"px\"),\n width: this.formatStyle(box.width, \"px\")\n });\n };\n}\nCueStyleBox.prototype = _objCreate(StyleBox.prototype);\nCueStyleBox.prototype.constructor = CueStyleBox;\n\n// Represents the co-ordinates of an Element in a way that we can easily\n// compute things with such as if it overlaps or intersects with another Element.\n// Can initialize it with either a StyleBox or another BoxPosition.\nfunction BoxPosition(obj) {\n // Either a BoxPosition was passed in and we need to copy it, or a StyleBox\n // was passed in and we need to copy the results of 'getBoundingClientRect'\n // as the object returned is readonly. All co-ordinate values are in reference\n // to the viewport origin (top left).\n var lh, height, width, top;\n if (obj.div) {\n height = obj.div.offsetHeight;\n width = obj.div.offsetWidth;\n top = obj.div.offsetTop;\n\n var rects = (rects = obj.div.childNodes) && (rects = rects[0]) &&\n rects.getClientRects && rects.getClientRects();\n obj = obj.div.getBoundingClientRect();\n // In certain cases the outter div will be slightly larger then the sum of\n // the inner div's lines. This could be due to bold text, etc, on some platforms.\n // In this case we should get the average line height and use that. This will\n // result in the desired behaviour.\n lh = rects ? Math.max((rects[0] && rects[0].height) || 0, obj.height / rects.length)\n : 0;\n\n }\n this.left = obj.left;\n this.right = obj.right;\n this.top = obj.top || top;\n this.height = obj.height || height;\n this.bottom = obj.bottom || (top + (obj.height || height));\n this.width = obj.width || width;\n this.lineHeight = lh !== undefined ? lh : obj.lineHeight;\n}\n\n// Move the box along a particular axis. Optionally pass in an amount to move\n// the box. If no amount is passed then the default is the line height of the\n// box.\nBoxPosition.prototype.move = function(axis, toMove) {\n toMove = toMove !== undefined ? toMove : this.lineHeight;\n switch (axis) {\n case \"+x\":\n this.left += toMove;\n this.right += toMove;\n break;\n case \"-x\":\n this.left -= toMove;\n this.right -= toMove;\n break;\n case \"+y\":\n this.top += toMove;\n this.bottom += toMove;\n break;\n case \"-y\":\n this.top -= toMove;\n this.bottom -= toMove;\n break;\n }\n};\n\n// Check if this box overlaps another box, b2.\nBoxPosition.prototype.overlaps = function(b2) {\n return this.left < b2.right &&\n this.right > b2.left &&\n this.top < b2.bottom &&\n this.bottom > b2.top;\n};\n\n// Check if this box overlaps any other boxes in boxes.\nBoxPosition.prototype.overlapsAny = function(boxes) {\n for (var i = 0; i < boxes.length; i++) {\n if (this.overlaps(boxes[i])) {\n return true;\n }\n }\n return false;\n};\n\n// Check if this box is within another box.\nBoxPosition.prototype.within = function(container) {\n return this.top >= container.top &&\n this.bottom <= container.bottom &&\n this.left >= container.left &&\n this.right <= container.right;\n};\n\n// Check if this box is entirely within the container or it is overlapping\n// on the edge opposite of the axis direction passed. For example, if \"+x\" is\n// passed and the box is overlapping on the left edge of the container, then\n// return true.\nBoxPosition.prototype.overlapsOppositeAxis = function(container, axis) {\n switch (axis) {\n case \"+x\":\n return this.left < container.left;\n case \"-x\":\n return this.right > container.right;\n case \"+y\":\n return this.top < container.top;\n case \"-y\":\n return this.bottom > container.bottom;\n }\n};\n\n// Find the percentage of the area that this box is overlapping with another\n// box.\nBoxPosition.prototype.intersectPercentage = function(b2) {\n var x = Math.max(0, Math.min(this.right, b2.right) - Math.max(this.left, b2.left)),\n y = Math.max(0, Math.min(this.bottom, b2.bottom) - Math.max(this.top, b2.top)),\n intersectArea = x * y;\n return intersectArea / (this.height * this.width);\n};\n\n// Convert the positions from this box to CSS compatible positions using\n// the reference container's positions. This has to be done because this\n// box's positions are in reference to the viewport origin, whereas, CSS\n// values are in referecne to their respective edges.\nBoxPosition.prototype.toCSSCompatValues = function(reference) {\n return {\n top: this.top - reference.top,\n bottom: reference.bottom - this.bottom,\n left: this.left - reference.left,\n right: reference.right - this.right,\n height: this.height,\n width: this.width\n };\n};\n\n// Get an object that represents the box's position without anything extra.\n// Can pass a StyleBox, HTMLElement, or another BoxPositon.\nBoxPosition.getSimpleBoxPosition = function(obj) {\n var height = obj.div ? obj.div.offsetHeight : obj.tagName ? obj.offsetHeight : 0;\n var width = obj.div ? obj.div.offsetWidth : obj.tagName ? obj.offsetWidth : 0;\n var top = obj.div ? obj.div.offsetTop : obj.tagName ? obj.offsetTop : 0;\n\n obj = obj.div ? obj.div.getBoundingClientRect() :\n obj.tagName ? obj.getBoundingClientRect() : obj;\n var ret = {\n left: obj.left,\n right: obj.right,\n top: obj.top || top,\n height: obj.height || height,\n bottom: obj.bottom || (top + (obj.height || height)),\n width: obj.width || width\n };\n return ret;\n};\n\n// Move a StyleBox to its specified, or next best, position. The containerBox\n// is the box that contains the StyleBox, such as a div. boxPositions are\n// a list of other boxes that the styleBox can't overlap with.\nfunction moveBoxToLinePosition(window, styleBox, containerBox, boxPositions) {\n\n // Find the best position for a cue box, b, on the video. The axis parameter\n // is a list of axis, the order of which, it will move the box along. For example:\n // Passing [\"+x\", \"-x\"] will move the box first along the x axis in the positive\n // direction. If it doesn't find a good position for it there it will then move\n // it along the x axis in the negative direction.\n function findBestPosition(b, axis) {\n var bestPosition,\n specifiedPosition = new BoxPosition(b),\n percentage = 1; // Highest possible so the first thing we get is better.\n\n for (var i = 0; i < axis.length; i++) {\n while (b.overlapsOppositeAxis(containerBox, axis[i]) ||\n (b.within(containerBox) && b.overlapsAny(boxPositions))) {\n b.move(axis[i]);\n }\n // We found a spot where we aren't overlapping anything. This is our\n // best position.\n if (b.within(containerBox)) {\n return b;\n }\n var p = b.intersectPercentage(containerBox);\n // If we're outside the container box less then we were on our last try\n // then remember this position as the best position.\n if (percentage > p) {\n bestPosition = new BoxPosition(b);\n percentage = p;\n }\n // Reset the box position to the specified position.\n b = new BoxPosition(specifiedPosition);\n }\n return bestPosition || specifiedPosition;\n }\n\n var boxPosition = new BoxPosition(styleBox),\n cue = styleBox.cue,\n linePos = computeLinePos(cue),\n axis = [];\n\n // If we have a line number to align the cue to.\n if (cue.snapToLines) {\n var size;\n switch (cue.vertical) {\n case \"\":\n axis = [ \"+y\", \"-y\" ];\n size = \"height\";\n break;\n case \"rl\":\n axis = [ \"+x\", \"-x\" ];\n size = \"width\";\n break;\n case \"lr\":\n axis = [ \"-x\", \"+x\" ];\n size = \"width\";\n break;\n }\n\n var step = boxPosition.lineHeight,\n position = step * Math.round(linePos),\n maxPosition = containerBox[size] + step,\n initialAxis = axis[0];\n\n // If the specified intial position is greater then the max position then\n // clamp the box to the amount of steps it would take for the box to\n // reach the max position.\n if (Math.abs(position) > maxPosition) {\n position = position < 0 ? -1 : 1;\n position *= Math.ceil(maxPosition / step) * step;\n }\n\n // If computed line position returns negative then line numbers are\n // relative to the bottom of the video instead of the top. Therefore, we\n // need to increase our initial position by the length or width of the\n // video, depending on the writing direction, and reverse our axis directions.\n if (linePos < 0) {\n position += cue.vertical === \"\" ? containerBox.height : containerBox.width;\n axis = axis.reverse();\n }\n\n // Move the box to the specified position. This may not be its best\n // position.\n boxPosition.move(initialAxis, position);\n\n } else {\n // If we have a percentage line value for the cue.\n var calculatedPercentage = (boxPosition.lineHeight / containerBox.height) * 100;\n\n switch (cue.lineAlign) {\n case \"center\":\n linePos -= (calculatedPercentage / 2);\n break;\n case \"end\":\n linePos -= calculatedPercentage;\n break;\n }\n\n // Apply initial line position to the cue box.\n switch (cue.vertical) {\n case \"\":\n styleBox.applyStyles({\n top: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"rl\":\n styleBox.applyStyles({\n left: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n case \"lr\":\n styleBox.applyStyles({\n right: styleBox.formatStyle(linePos, \"%\")\n });\n break;\n }\n\n axis = [ \"+y\", \"-x\", \"+x\", \"-y\" ];\n\n // Get the box position again after we've applied the specified positioning\n // to it.\n boxPosition = new BoxPosition(styleBox);\n }\n\n var bestPosition = findBestPosition(boxPosition, axis);\n styleBox.move(bestPosition.toCSSCompatValues(containerBox));\n}\n\nfunction WebVTT() {\n // Nothing\n}\n\n// Helper to allow strings to be decoded instead of the default binary utf8 data.\nWebVTT.StringDecoder = function() {\n return {\n decode: function(data) {\n if (!data) {\n return \"\";\n }\n if (typeof data !== \"string\") {\n throw new Error(\"Error - expected string data.\");\n }\n return decodeURIComponent(encodeURIComponent(data));\n }\n };\n};\n\nWebVTT.convertCueToDOMTree = function(window, cuetext) {\n if (!window || !cuetext) {\n return null;\n }\n return parseContent(window, cuetext);\n};\n\nvar FONT_SIZE_PERCENT = 0.05;\nvar FONT_STYLE = \"sans-serif\";\nvar CUE_BACKGROUND_PADDING = \"1.5%\";\n\n// Runs the processing model over the cues and regions passed to it.\n// @param overlay A block level element (usually a div) that the computed cues\n// and regions will be placed into.\nWebVTT.processCues = function(window, cues, overlay) {\n if (!window || !cues || !overlay) {\n return null;\n }\n\n // Remove all previous children.\n while (overlay.firstChild) {\n overlay.removeChild(overlay.firstChild);\n }\n\n var paddedOverlay = window.document.createElement(\"div\");\n paddedOverlay.style.position = \"absolute\";\n paddedOverlay.style.left = \"0\";\n paddedOverlay.style.right = \"0\";\n paddedOverlay.style.top = \"0\";\n paddedOverlay.style.bottom = \"0\";\n paddedOverlay.style.margin = CUE_BACKGROUND_PADDING;\n overlay.appendChild(paddedOverlay);\n\n // Determine if we need to compute the display states of the cues. This could\n // be the case if a cue's state has been changed since the last computation or\n // if it has not been computed yet.\n function shouldCompute(cues) {\n for (var i = 0; i < cues.length; i++) {\n if (cues[i].hasBeenReset || !cues[i].displayState) {\n return true;\n }\n }\n return false;\n }\n\n // We don't need to recompute the cues' display states. Just reuse them.\n if (!shouldCompute(cues)) {\n for (var i = 0; i < cues.length; i++) {\n paddedOverlay.appendChild(cues[i].displayState);\n }\n return;\n }\n\n var boxPositions = [],\n containerBox = BoxPosition.getSimpleBoxPosition(paddedOverlay),\n fontSize = Math.round(containerBox.height * FONT_SIZE_PERCENT * 100) / 100;\n var styleOptions = {\n font: fontSize + \"px \" + FONT_STYLE\n };\n\n (function() {\n var styleBox, cue;\n\n for (var i = 0; i < cues.length; i++) {\n cue = cues[i];\n\n // Compute the intial position and styles of the cue div.\n styleBox = new CueStyleBox(window, cue, styleOptions);\n paddedOverlay.appendChild(styleBox.div);\n\n // Move the cue div to it's correct line position.\n moveBoxToLinePosition(window, styleBox, containerBox, boxPositions);\n\n // Remember the computed div so that we don't have to recompute it later\n // if we don't have too.\n cue.displayState = styleBox.div;\n\n boxPositions.push(BoxPosition.getSimpleBoxPosition(styleBox));\n }\n })();\n};\n\nWebVTT.Parser = function(window, vttjs, decoder) {\n if (!decoder) {\n decoder = vttjs;\n vttjs = {};\n }\n if (!vttjs) {\n vttjs = {};\n }\n\n this.window = window;\n this.vttjs = vttjs;\n this.state = \"INITIAL\";\n this.buffer = \"\";\n this.decoder = decoder || new TextDecoder(\"utf8\");\n this.regionList = [];\n};\n\nWebVTT.Parser.prototype = {\n // If the error is a ParsingError then report it to the consumer if\n // possible. If it's not a ParsingError then throw it like normal.\n reportOrThrowError: function(e) {\n if (e instanceof ParsingError) {\n this.onparsingerror && this.onparsingerror(e);\n } else {\n throw e;\n }\n },\n parse: function (data) {\n var self = this;\n\n // If there is no data then we won't decode it, but will just try to parse\n // whatever is in buffer already. This may occur in circumstances, for\n // example when flush() is called.\n if (data) {\n // Try to decode the data that we received.\n self.buffer += self.decoder.decode(data, {stream: true});\n }\n\n function collectNextLine() {\n var buffer = self.buffer;\n var pos = 0;\n while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\n ++pos;\n }\n var line = buffer.substr(0, pos);\n // Advance the buffer early in case we fail below.\n if (buffer[pos] === '\\r') {\n ++pos;\n }\n if (buffer[pos] === '\\n') {\n ++pos;\n }\n self.buffer = buffer.substr(pos);\n return line;\n }\n\n // 3.4 WebVTT region and WebVTT region settings syntax\n function parseRegion(input) {\n var settings = new Settings();\n\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"id\":\n settings.set(k, v);\n break;\n case \"width\":\n settings.percent(k, v);\n break;\n case \"lines\":\n settings.integer(k, v);\n break;\n case \"regionanchor\":\n case \"viewportanchor\":\n var xy = v.split(',');\n if (xy.length !== 2) {\n break;\n }\n // We have to make sure both x and y parse, so use a temporary\n // settings object here.\n var anchor = new Settings();\n anchor.percent(\"x\", xy[0]);\n anchor.percent(\"y\", xy[1]);\n if (!anchor.has(\"x\") || !anchor.has(\"y\")) {\n break;\n }\n settings.set(k + \"X\", anchor.get(\"x\"));\n settings.set(k + \"Y\", anchor.get(\"y\"));\n break;\n case \"scroll\":\n settings.alt(k, v, [\"up\"]);\n break;\n }\n }, /=/, /\\s/);\n\n // Create the region, using default values for any values that were not\n // specified.\n if (settings.has(\"id\")) {\n var region = new (self.vttjs.VTTRegion || self.window.VTTRegion)();\n region.width = settings.get(\"width\", 100);\n region.lines = settings.get(\"lines\", 3);\n region.regionAnchorX = settings.get(\"regionanchorX\", 0);\n region.regionAnchorY = settings.get(\"regionanchorY\", 100);\n region.viewportAnchorX = settings.get(\"viewportanchorX\", 0);\n region.viewportAnchorY = settings.get(\"viewportanchorY\", 100);\n region.scroll = settings.get(\"scroll\", \"\");\n // Register the region.\n self.onregion && self.onregion(region);\n // Remember the VTTRegion for later in case we parse any VTTCues that\n // reference it.\n self.regionList.push({\n id: settings.get(\"id\"),\n region: region\n });\n }\n }\n\n // draft-pantos-http-live-streaming-20\n // https://tools.ietf.org/html/draft-pantos-http-live-streaming-20#section-3.5\n // 3.5 WebVTT\n function parseTimestampMap(input) {\n var settings = new Settings();\n\n parseOptions(input, function(k, v) {\n switch(k) {\n case \"MPEGT\":\n settings.integer(k + 'S', v);\n break;\n case \"LOCA\":\n settings.set(k + 'L', parseTimeStamp(v));\n break;\n }\n }, /[^\\d]:/, /,/);\n\n self.ontimestampmap && self.ontimestampmap({\n \"MPEGTS\": settings.get(\"MPEGTS\"),\n \"LOCAL\": settings.get(\"LOCAL\")\n });\n }\n\n // 3.2 WebVTT metadata header syntax\n function parseHeader(input) {\n if (input.match(/X-TIMESTAMP-MAP/)) {\n // This line contains HLS X-TIMESTAMP-MAP metadata\n parseOptions(input, function(k, v) {\n switch(k) {\n case \"X-TIMESTAMP-MAP\":\n parseTimestampMap(v);\n break;\n }\n }, /=/);\n } else {\n parseOptions(input, function (k, v) {\n switch (k) {\n case \"Region\":\n // 3.3 WebVTT region metadata header syntax\n parseRegion(v);\n break;\n }\n }, /:/);\n }\n\n }\n\n // 5.1 WebVTT file parsing.\n try {\n var line;\n if (self.state === \"INITIAL\") {\n // We can't start parsing until we have the first line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n line = collectNextLine();\n\n var m = line.match(/^WEBVTT([ \\t].*)?$/);\n if (!m || !m[0]) {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n\n self.state = \"HEADER\";\n }\n\n var alreadyCollectedLine = false;\n while (self.buffer) {\n // We can't parse a line until we have the full line.\n if (!/\\r\\n|\\n/.test(self.buffer)) {\n return this;\n }\n\n if (!alreadyCollectedLine) {\n line = collectNextLine();\n } else {\n alreadyCollectedLine = false;\n }\n\n switch (self.state) {\n case \"HEADER\":\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\n if (/:/.test(line)) {\n parseHeader(line);\n } else if (!line) {\n // An empty line terminates the header and starts the body (cues).\n self.state = \"ID\";\n }\n continue;\n case \"NOTE\":\n // Ignore NOTE blocks.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n case \"ID\":\n // Check for the start of NOTE blocks.\n if (/^NOTE($|[ \\t])/.test(line)) {\n self.state = \"NOTE\";\n break;\n }\n // 19-29 - Allow any number of line terminators, then initialize new cue values.\n if (!line) {\n continue;\n }\n self.cue = new (self.vttjs.VTTCue || self.window.VTTCue)(0, 0, \"\");\n // Safari still uses the old middle value and won't accept center\n try {\n self.cue.align = \"center\";\n } catch (e) {\n self.cue.align = \"middle\";\n }\n self.state = \"CUE\";\n // 30-39 - Check if self line contains an optional identifier or timing data.\n if (line.indexOf(\"-->\") === -1) {\n self.cue.id = line;\n continue;\n }\n // Process line as start of a cue.\n /*falls through*/\n case \"CUE\":\n // 40 - Collect cue timings and settings.\n try {\n parseCue(line, self.cue, self.regionList);\n } catch (e) {\n self.reportOrThrowError(e);\n // In case of an error ignore rest of the cue.\n self.cue = null;\n self.state = \"BADCUE\";\n continue;\n }\n self.state = \"CUETEXT\";\n continue;\n case \"CUETEXT\":\n var hasSubstring = line.indexOf(\"-->\") !== -1;\n // 34 - If we have an empty line then report the cue.\n // 35 - If we have the special substring '-->' then report the cue,\n // but do not collect the line as we need to process the current\n // one as a new cue.\n if (!line || hasSubstring && (alreadyCollectedLine = true)) {\n // We are done parsing self cue.\n self.oncue && self.oncue(self.cue);\n self.cue = null;\n self.state = \"ID\";\n continue;\n }\n if (self.cue.text) {\n self.cue.text += \"\\n\";\n }\n self.cue.text += line.replace(/\\u2028/g, '\\n').replace(/u2029/g, '\\n');\n continue;\n case \"BADCUE\": // BADCUE\n // 54-62 - Collect and discard the remaining cue.\n if (!line) {\n self.state = \"ID\";\n }\n continue;\n }\n }\n } catch (e) {\n self.reportOrThrowError(e);\n\n // If we are currently parsing a cue, report what we have.\n if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\n self.oncue(self.cue);\n }\n self.cue = null;\n // Enter BADWEBVTT state if header was not parsed correctly otherwise\n // another exception occurred so enter BADCUE state.\n self.state = self.state === \"INITIAL\" ? \"BADWEBVTT\" : \"BADCUE\";\n }\n return this;\n },\n flush: function () {\n var self = this;\n try {\n // Finish decoding the stream.\n self.buffer += self.decoder.decode();\n // Synthesize the end of the current cue or region.\n if (self.cue || self.state === \"HEADER\") {\n self.buffer += \"\\n\\n\";\n self.parse();\n }\n // If we've flushed, parsed, and we're still on the INITIAL state then\n // that means we don't have enough of the stream to parse the first\n // line.\n if (self.state === \"INITIAL\") {\n throw new ParsingError(ParsingError.Errors.BadSignature);\n }\n } catch(e) {\n self.reportOrThrowError(e);\n }\n self.onflush && self.onflush();\n return this;\n }\n};\n\nmodule.exports = WebVTT;\n","// see https://tools.ietf.org/html/rfc1808\n\n(function (root) {\n var URL_REGEX =\n /^(?=((?:[a-zA-Z0-9+\\-.]+:)?))\\1(?=((?:\\/\\/[^\\/?#]*)?))\\2(?=((?:(?:[^?#\\/]*\\/)*[^;?#\\/]*)?))\\3((?:;[^?#]*)?)(\\?[^#]*)?(#[^]*)?$/;\n var FIRST_SEGMENT_REGEX = /^(?=([^\\/?#]*))\\1([^]*)$/;\n var SLASH_DOT_REGEX = /(?:\\/|^)\\.(?=\\/)/g;\n var SLASH_DOT_DOT_REGEX = /(?:\\/|^)\\.\\.\\/(?!\\.\\.\\/)[^\\/]*(?=\\/)/g;\n\n var URLToolkit = {\n // If opts.alwaysNormalize is true then the path will always be normalized even when it starts with / or //\n // E.g\n // With opts.alwaysNormalize = false (default, spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/f/../g\n // With opts.alwaysNormalize = true (not spec compliant)\n // http://a.com/b/cd + /e/f/../g => http://a.com/e/g\n buildAbsoluteURL: function (baseURL, relativeURL, opts) {\n opts = opts || {};\n // remove any remaining space and CRLF\n baseURL = baseURL.trim();\n relativeURL = relativeURL.trim();\n if (!relativeURL) {\n // 2a) If the embedded URL is entirely empty, it inherits the\n // entire base URL (i.e., is set equal to the base URL)\n // and we are done.\n if (!opts.alwaysNormalize) {\n return baseURL;\n }\n var basePartsForNormalise = URLToolkit.parseURL(baseURL);\n if (!basePartsForNormalise) {\n throw new Error('Error trying to parse base URL.');\n }\n basePartsForNormalise.path = URLToolkit.normalizePath(\n basePartsForNormalise.path\n );\n return URLToolkit.buildURLFromParts(basePartsForNormalise);\n }\n var relativeParts = URLToolkit.parseURL(relativeURL);\n if (!relativeParts) {\n throw new Error('Error trying to parse relative URL.');\n }\n if (relativeParts.scheme) {\n // 2b) If the embedded URL starts with a scheme name, it is\n // interpreted as an absolute URL and we are done.\n if (!opts.alwaysNormalize) {\n return relativeURL;\n }\n relativeParts.path = URLToolkit.normalizePath(relativeParts.path);\n return URLToolkit.buildURLFromParts(relativeParts);\n }\n var baseParts = URLToolkit.parseURL(baseURL);\n if (!baseParts) {\n throw new Error('Error trying to parse base URL.');\n }\n if (!baseParts.netLoc && baseParts.path && baseParts.path[0] !== '/') {\n // If netLoc missing and path doesn't start with '/', assume everthing before the first '/' is the netLoc\n // This causes 'example.com/a' to be handled as '//example.com/a' instead of '/example.com/a'\n var pathParts = FIRST_SEGMENT_REGEX.exec(baseParts.path);\n baseParts.netLoc = pathParts[1];\n baseParts.path = pathParts[2];\n }\n if (baseParts.netLoc && !baseParts.path) {\n baseParts.path = '/';\n }\n var builtParts = {\n // 2c) Otherwise, the embedded URL inherits the scheme of\n // the base URL.\n scheme: baseParts.scheme,\n netLoc: relativeParts.netLoc,\n path: null,\n params: relativeParts.params,\n query: relativeParts.query,\n fragment: relativeParts.fragment,\n };\n if (!relativeParts.netLoc) {\n // 3) If the embedded URL's is non-empty, we skip to\n // Step 7. Otherwise, the embedded URL inherits the \n // (if any) of the base URL.\n builtParts.netLoc = baseParts.netLoc;\n // 4) If the embedded URL path is preceded by a slash \"/\", the\n // path is not relative and we skip to Step 7.\n if (relativeParts.path[0] !== '/') {\n if (!relativeParts.path) {\n // 5) If the embedded URL path is empty (and not preceded by a\n // slash), then the embedded URL inherits the base URL path\n builtParts.path = baseParts.path;\n // 5a) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and\n if (!relativeParts.params) {\n builtParts.params = baseParts.params;\n // 5b) if the embedded URL's is non-empty, we skip to\n // step 7; otherwise, it inherits the of the base\n // URL (if any) and we skip to step 7.\n if (!relativeParts.query) {\n builtParts.query = baseParts.query;\n }\n }\n } else {\n // 6) The last segment of the base URL's path (anything\n // following the rightmost slash \"/\", or the entire path if no\n // slash is present) is removed and the embedded URL's path is\n // appended in its place.\n var baseURLPath = baseParts.path;\n var newPath =\n baseURLPath.substring(0, baseURLPath.lastIndexOf('/') + 1) +\n relativeParts.path;\n builtParts.path = URLToolkit.normalizePath(newPath);\n }\n }\n }\n if (builtParts.path === null) {\n builtParts.path = opts.alwaysNormalize\n ? URLToolkit.normalizePath(relativeParts.path)\n : relativeParts.path;\n }\n return URLToolkit.buildURLFromParts(builtParts);\n },\n parseURL: function (url) {\n var parts = URL_REGEX.exec(url);\n if (!parts) {\n return null;\n }\n return {\n scheme: parts[1] || '',\n netLoc: parts[2] || '',\n path: parts[3] || '',\n params: parts[4] || '',\n query: parts[5] || '',\n fragment: parts[6] || '',\n };\n },\n normalizePath: function (path) {\n // The following operations are\n // then applied, in order, to the new path:\n // 6a) All occurrences of \"./\", where \".\" is a complete path\n // segment, are removed.\n // 6b) If the path ends with \".\" as a complete path segment,\n // that \".\" is removed.\n path = path.split('').reverse().join('').replace(SLASH_DOT_REGEX, '');\n // 6c) All occurrences of \"/../\", where is a\n // complete path segment not equal to \"..\", are removed.\n // Removal of these path segments is performed iteratively,\n // removing the leftmost matching pattern on each iteration,\n // until no matching pattern remains.\n // 6d) If the path ends with \"/..\", where is a\n // complete path segment not equal to \"..\", that\n // \"/..\" is removed.\n while (\n path.length !== (path = path.replace(SLASH_DOT_DOT_REGEX, '')).length\n ) {}\n return path.split('').reverse().join('');\n },\n buildURLFromParts: function (parts) {\n return (\n parts.scheme +\n parts.netLoc +\n parts.path +\n parts.params +\n parts.query +\n parts.fragment\n );\n },\n };\n\n if (typeof exports === 'object' && typeof module === 'object')\n module.exports = URLToolkit;\n else if (typeof define === 'function' && define.amd)\n define([], function () {\n return URLToolkit;\n });\n else if (typeof exports === 'object') exports['URLToolkit'] = URLToolkit;\n else root['URLToolkit'] = URLToolkit;\n})(this);\n","/**\n * @file stream.js\n */\n\n/**\n * A lightweight readable stream implemention that handles event dispatching.\n *\n * @class Stream\n */\nvar Stream = /*#__PURE__*/function () {\n function Stream() {\n this.listeners = {};\n }\n /**\n * Add a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener the callback to be invoked when an event of\n * the specified type occurs\n */\n\n\n var _proto = Stream.prototype;\n\n _proto.on = function on(type, listener) {\n if (!this.listeners[type]) {\n this.listeners[type] = [];\n }\n\n this.listeners[type].push(listener);\n }\n /**\n * Remove a listener for a specified event type.\n *\n * @param {string} type the event name\n * @param {Function} listener a function previously registered for this\n * type of event through `on`\n * @return {boolean} if we could turn it off or not\n */\n ;\n\n _proto.off = function off(type, listener) {\n if (!this.listeners[type]) {\n return false;\n }\n\n var index = this.listeners[type].indexOf(listener); // TODO: which is better?\n // In Video.js we slice listener functions\n // on trigger so that it does not mess up the order\n // while we loop through.\n //\n // Here we slice on off so that the loop in trigger\n // can continue using it's old reference to loop without\n // messing up the order.\n\n this.listeners[type] = this.listeners[type].slice(0);\n this.listeners[type].splice(index, 1);\n return index > -1;\n }\n /**\n * Trigger an event of the specified type on this stream. Any additional\n * arguments to this function are passed as parameters to event listeners.\n *\n * @param {string} type the event name\n */\n ;\n\n _proto.trigger = function trigger(type) {\n var callbacks = this.listeners[type];\n\n if (!callbacks) {\n return;\n } // Slicing the arguments on every invocation of this method\n // can add a significant amount of overhead. Avoid the\n // intermediate object creation for the common case of a\n // single callback argument\n\n\n if (arguments.length === 2) {\n var length = callbacks.length;\n\n for (var i = 0; i < length; ++i) {\n callbacks[i].call(this, arguments[1]);\n }\n } else {\n var args = Array.prototype.slice.call(arguments, 1);\n var _length = callbacks.length;\n\n for (var _i = 0; _i < _length; ++_i) {\n callbacks[_i].apply(this, args);\n }\n }\n }\n /**\n * Destroys the stream and cleans up.\n */\n ;\n\n _proto.dispose = function dispose() {\n this.listeners = {};\n }\n /**\n * Forwards all `data` events on this stream to the destination stream. The\n * destination stream should provide a method `push` to receive the data\n * events as they arrive.\n *\n * @param {Stream} destination the stream that will receive all `data` events\n * @see http://nodejs.org/api/stream.html#stream_readable_pipe_destination_options\n */\n ;\n\n _proto.pipe = function pipe(destination) {\n this.on('data', function (data) {\n destination.push(data);\n });\n };\n\n return Stream;\n}();\n\nexport { Stream as default };","/*! @name m3u8-parser @version 4.8.0 @license Apache-2.0 */\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport Stream from '@videojs/vhs-utils/es/stream.js';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport decodeB64ToUint8Array from '@videojs/vhs-utils/es/decode-b64-to-uint8-array.js';\n\n/**\n * A stream that buffers string input and generates a `data` event for each\n * line.\n *\n * @class LineStream\n * @extends Stream\n */\n\nvar LineStream = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(LineStream, _Stream);\n\n function LineStream() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.buffer = '';\n return _this;\n }\n /**\n * Add new data to be parsed.\n *\n * @param {string} data the text to process\n */\n\n\n var _proto = LineStream.prototype;\n\n _proto.push = function push(data) {\n var nextNewline;\n this.buffer += data;\n nextNewline = this.buffer.indexOf('\\n');\n\n for (; nextNewline > -1; nextNewline = this.buffer.indexOf('\\n')) {\n this.trigger('data', this.buffer.substring(0, nextNewline));\n this.buffer = this.buffer.substring(nextNewline + 1);\n }\n };\n\n return LineStream;\n}(Stream);\n\nvar TAB = String.fromCharCode(0x09);\n\nvar parseByterange = function parseByterange(byterangeString) {\n // optionally match and capture 0+ digits before `@`\n // optionally match and capture 0+ digits after `@`\n var match = /([0-9.]*)?@?([0-9.]*)?/.exec(byterangeString || '');\n var result = {};\n\n if (match[1]) {\n result.length = parseInt(match[1], 10);\n }\n\n if (match[2]) {\n result.offset = parseInt(match[2], 10);\n }\n\n return result;\n};\n/**\n * \"forgiving\" attribute list psuedo-grammar:\n * attributes -> keyvalue (',' keyvalue)*\n * keyvalue -> key '=' value\n * key -> [^=]*\n * value -> '\"' [^\"]* '\"' | [^,]*\n */\n\n\nvar attributeSeparator = function attributeSeparator() {\n var key = '[^=]*';\n var value = '\"[^\"]*\"|[^,]*';\n var keyvalue = '(?:' + key + ')=(?:' + value + ')';\n return new RegExp('(?:^|,)(' + keyvalue + ')');\n};\n/**\n * Parse attributes from a line given the separator\n *\n * @param {string} attributes the attribute line to parse\n */\n\n\nvar parseAttributes = function parseAttributes(attributes) {\n // split the string using attributes as the separator\n var attrs = attributes.split(attributeSeparator());\n var result = {};\n var i = attrs.length;\n var attr;\n\n while (i--) {\n // filter out unmatched portions of the string\n if (attrs[i] === '') {\n continue;\n } // split the key and value\n\n\n attr = /([^=]*)=(.*)/.exec(attrs[i]).slice(1); // trim whitespace and remove optional quotes around the value\n\n attr[0] = attr[0].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^\\s+|\\s+$/g, '');\n attr[1] = attr[1].replace(/^['\"](.*)['\"]$/g, '$1');\n result[attr[0]] = attr[1];\n }\n\n return result;\n};\n/**\n * A line-level M3U8 parser event stream. It expects to receive input one\n * line at a time and performs a context-free parse of its contents. A stream\n * interpretation of a manifest can be useful if the manifest is expected to\n * be too large to fit comfortably into memory or the entirety of the input\n * is not immediately available. Otherwise, it's probably much easier to work\n * with a regular `Parser` object.\n *\n * Produces `data` events with an object that captures the parser's\n * interpretation of the input. That object has a property `tag` that is one\n * of `uri`, `comment`, or `tag`. URIs only have a single additional\n * property, `line`, which captures the entirety of the input without\n * interpretation. Comments similarly have a single additional property\n * `text` which is the input without the leading `#`.\n *\n * Tags always have a property `tagType` which is the lower-cased version of\n * the M3U8 directive without the `#EXT` or `#EXT-X-` prefix. For instance,\n * `#EXT-X-MEDIA-SEQUENCE` becomes `media-sequence` when parsed. Unrecognized\n * tags are given the tag type `unknown` and a single additional property\n * `data` with the remainder of the input.\n *\n * @class ParseStream\n * @extends Stream\n */\n\n\nvar ParseStream = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(ParseStream, _Stream);\n\n function ParseStream() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.customParsers = [];\n _this.tagMappers = [];\n return _this;\n }\n /**\n * Parses an additional line of input.\n *\n * @param {string} line a single line of an M3U8 file to parse\n */\n\n\n var _proto = ParseStream.prototype;\n\n _proto.push = function push(line) {\n var _this2 = this;\n\n var match;\n var event; // strip whitespace\n\n line = line.trim();\n\n if (line.length === 0) {\n // ignore empty lines\n return;\n } // URIs\n\n\n if (line[0] !== '#') {\n this.trigger('data', {\n type: 'uri',\n uri: line\n });\n return;\n } // map tags\n\n\n var newLines = this.tagMappers.reduce(function (acc, mapper) {\n var mappedLine = mapper(line); // skip if unchanged\n\n if (mappedLine === line) {\n return acc;\n }\n\n return acc.concat([mappedLine]);\n }, [line]);\n newLines.forEach(function (newLine) {\n for (var i = 0; i < _this2.customParsers.length; i++) {\n if (_this2.customParsers[i].call(_this2, newLine)) {\n return;\n }\n } // Comments\n\n\n if (newLine.indexOf('#EXT') !== 0) {\n _this2.trigger('data', {\n type: 'comment',\n text: newLine.slice(1)\n });\n\n return;\n } // strip off any carriage returns here so the regex matching\n // doesn't have to account for them.\n\n\n newLine = newLine.replace('\\r', ''); // Tags\n\n match = /^#EXTM3U/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'm3u'\n });\n\n return;\n }\n\n match = /^#EXTINF:?([0-9\\.]*)?,?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'inf'\n };\n\n if (match[1]) {\n event.duration = parseFloat(match[1]);\n }\n\n if (match[2]) {\n event.title = match[2];\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'targetduration'\n };\n\n if (match[1]) {\n event.duration = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-VERSION:?([0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'version'\n };\n\n if (match[1]) {\n event.version = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MEDIA-SEQUENCE:?(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY-SEQUENCE:?(\\-?[0-9.]*)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'discontinuity-sequence'\n };\n\n if (match[1]) {\n event.number = parseInt(match[1], 10);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'playlist-type'\n };\n\n if (match[1]) {\n event.playlistType = match[1];\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-BYTERANGE:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = _extends(parseByterange(match[1]), {\n type: 'tag',\n tagType: 'byterange'\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'allow-cache'\n };\n\n if (match[1]) {\n event.allowed = !/NO/.test(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MAP:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'map'\n };\n\n if (match[1]) {\n var attributes = parseAttributes(match[1]);\n\n if (attributes.URI) {\n event.uri = attributes.URI;\n }\n\n if (attributes.BYTERANGE) {\n event.byterange = parseByterange(attributes.BYTERANGE);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-STREAM-INF:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'stream-inf'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.RESOLUTION) {\n var split = event.attributes.RESOLUTION.split('x');\n var resolution = {};\n\n if (split[0]) {\n resolution.width = parseInt(split[0], 10);\n }\n\n if (split[1]) {\n resolution.height = parseInt(split[1], 10);\n }\n\n event.attributes.RESOLUTION = resolution;\n }\n\n if (event.attributes.BANDWIDTH) {\n event.attributes.BANDWIDTH = parseInt(event.attributes.BANDWIDTH, 10);\n }\n\n if (event.attributes['FRAME-RATE']) {\n event.attributes['FRAME-RATE'] = parseFloat(event.attributes['FRAME-RATE']);\n }\n\n if (event.attributes['PROGRAM-ID']) {\n event.attributes['PROGRAM-ID'] = parseInt(event.attributes['PROGRAM-ID'], 10);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-MEDIA:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'media'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-ENDLIST/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'endlist'\n });\n\n return;\n }\n\n match = /^#EXT-X-DISCONTINUITY/.exec(newLine);\n\n if (match) {\n _this2.trigger('data', {\n type: 'tag',\n tagType: 'discontinuity'\n });\n\n return;\n }\n\n match = /^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'program-date-time'\n };\n\n if (match[1]) {\n event.dateTimeString = match[1];\n event.dateTimeObject = new Date(match[1]);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-KEY:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'key'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]); // parse the IV string into a Uint32Array\n\n if (event.attributes.IV) {\n if (event.attributes.IV.substring(0, 2).toLowerCase() === '0x') {\n event.attributes.IV = event.attributes.IV.substring(2);\n }\n\n event.attributes.IV = event.attributes.IV.match(/.{8}/g);\n event.attributes.IV[0] = parseInt(event.attributes.IV[0], 16);\n event.attributes.IV[1] = parseInt(event.attributes.IV[1], 16);\n event.attributes.IV[2] = parseInt(event.attributes.IV[2], 16);\n event.attributes.IV[3] = parseInt(event.attributes.IV[3], 16);\n event.attributes.IV = new Uint32Array(event.attributes.IV);\n }\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-START:?(.*)$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'start'\n };\n\n if (match[1]) {\n event.attributes = parseAttributes(match[1]);\n event.attributes['TIME-OFFSET'] = parseFloat(event.attributes['TIME-OFFSET']);\n event.attributes.PRECISE = /YES/.test(event.attributes.PRECISE);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out-cont'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-OUT:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-out'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-CUE-IN:?(.*)?$/.exec(newLine);\n\n if (match) {\n event = {\n type: 'tag',\n tagType: 'cue-in'\n };\n\n if (match[1]) {\n event.data = match[1];\n } else {\n event.data = '';\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-SKIP:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'skip'\n };\n event.attributes = parseAttributes(match[1]);\n\n if (event.attributes.hasOwnProperty('SKIPPED-SEGMENTS')) {\n event.attributes['SKIPPED-SEGMENTS'] = parseInt(event.attributes['SKIPPED-SEGMENTS'], 10);\n }\n\n if (event.attributes.hasOwnProperty('RECENTLY-REMOVED-DATERANGES')) {\n event.attributes['RECENTLY-REMOVED-DATERANGES'] = event.attributes['RECENTLY-REMOVED-DATERANGES'].split(TAB);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PART:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'part'\n };\n event.attributes = parseAttributes(match[1]);\n ['DURATION'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['INDEPENDENT', 'GAP'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/.test(event.attributes[key]);\n }\n });\n\n if (event.attributes.hasOwnProperty('BYTERANGE')) {\n event.attributes.byterange = parseByterange(event.attributes.BYTERANGE);\n }\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-SERVER-CONTROL:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'server-control'\n };\n event.attributes = parseAttributes(match[1]);\n ['CAN-SKIP-UNTIL', 'PART-HOLD-BACK', 'HOLD-BACK'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n ['CAN-SKIP-DATERANGES', 'CAN-BLOCK-RELOAD'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = /YES/.test(event.attributes[key]);\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PART-INF:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'part-inf'\n };\n event.attributes = parseAttributes(match[1]);\n ['PART-TARGET'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseFloat(event.attributes[key]);\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-PRELOAD-HINT:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'preload-hint'\n };\n event.attributes = parseAttributes(match[1]);\n ['BYTERANGE-START', 'BYTERANGE-LENGTH'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseInt(event.attributes[key], 10);\n var subkey = key === 'BYTERANGE-LENGTH' ? 'length' : 'offset';\n event.attributes.byterange = event.attributes.byterange || {};\n event.attributes.byterange[subkey] = event.attributes[key]; // only keep the parsed byterange object.\n\n delete event.attributes[key];\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n }\n\n match = /^#EXT-X-RENDITION-REPORT:(.*)$/.exec(newLine);\n\n if (match && match[1]) {\n event = {\n type: 'tag',\n tagType: 'rendition-report'\n };\n event.attributes = parseAttributes(match[1]);\n ['LAST-MSN', 'LAST-PART'].forEach(function (key) {\n if (event.attributes.hasOwnProperty(key)) {\n event.attributes[key] = parseInt(event.attributes[key], 10);\n }\n });\n\n _this2.trigger('data', event);\n\n return;\n } // unknown tag type\n\n\n _this2.trigger('data', {\n type: 'tag',\n data: newLine.slice(4)\n });\n });\n }\n /**\n * Add a parser for custom headers\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.customType the custom type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n ;\n\n _proto.addParser = function addParser(_ref) {\n var _this3 = this;\n\n var expression = _ref.expression,\n customType = _ref.customType,\n dataParser = _ref.dataParser,\n segment = _ref.segment;\n\n if (typeof dataParser !== 'function') {\n dataParser = function dataParser(line) {\n return line;\n };\n }\n\n this.customParsers.push(function (line) {\n var match = expression.exec(line);\n\n if (match) {\n _this3.trigger('data', {\n type: 'custom',\n data: dataParser(line),\n customType: customType,\n segment: segment\n });\n\n return true;\n }\n });\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n ;\n\n _proto.addTagMapper = function addTagMapper(_ref2) {\n var expression = _ref2.expression,\n map = _ref2.map;\n\n var mapFn = function mapFn(line) {\n if (expression.test(line)) {\n return map(line);\n }\n\n return line;\n };\n\n this.tagMappers.push(mapFn);\n };\n\n return ParseStream;\n}(Stream);\n\nvar camelCase = function camelCase(str) {\n return str.toLowerCase().replace(/-(\\w)/g, function (a) {\n return a[1].toUpperCase();\n });\n};\n\nvar camelCaseKeys = function camelCaseKeys(attributes) {\n var result = {};\n Object.keys(attributes).forEach(function (key) {\n result[camelCase(key)] = attributes[key];\n });\n return result;\n}; // set SERVER-CONTROL hold back based upon targetDuration and partTargetDuration\n// we need this helper because defaults are based upon targetDuration and\n// partTargetDuration being set, but they may not be if SERVER-CONTROL appears before\n// target durations are set.\n\n\nvar setHoldBack = function setHoldBack(manifest) {\n var serverControl = manifest.serverControl,\n targetDuration = manifest.targetDuration,\n partTargetDuration = manifest.partTargetDuration;\n\n if (!serverControl) {\n return;\n }\n\n var tag = '#EXT-X-SERVER-CONTROL';\n var hb = 'holdBack';\n var phb = 'partHoldBack';\n var minTargetDuration = targetDuration && targetDuration * 3;\n var minPartDuration = partTargetDuration && partTargetDuration * 2;\n\n if (targetDuration && !serverControl.hasOwnProperty(hb)) {\n serverControl[hb] = minTargetDuration;\n this.trigger('info', {\n message: tag + \" defaulting HOLD-BACK to targetDuration * 3 (\" + minTargetDuration + \").\"\n });\n }\n\n if (minTargetDuration && serverControl[hb] < minTargetDuration) {\n this.trigger('warn', {\n message: tag + \" clamping HOLD-BACK (\" + serverControl[hb] + \") to targetDuration * 3 (\" + minTargetDuration + \")\"\n });\n serverControl[hb] = minTargetDuration;\n } // default no part hold back to part target duration * 3\n\n\n if (partTargetDuration && !serverControl.hasOwnProperty(phb)) {\n serverControl[phb] = partTargetDuration * 3;\n this.trigger('info', {\n message: tag + \" defaulting PART-HOLD-BACK to partTargetDuration * 3 (\" + serverControl[phb] + \").\"\n });\n } // if part hold back is too small default it to part target duration * 2\n\n\n if (partTargetDuration && serverControl[phb] < minPartDuration) {\n this.trigger('warn', {\n message: tag + \" clamping PART-HOLD-BACK (\" + serverControl[phb] + \") to partTargetDuration * 2 (\" + minPartDuration + \").\"\n });\n serverControl[phb] = minPartDuration;\n }\n};\n/**\n * A parser for M3U8 files. The current interpretation of the input is\n * exposed as a property `manifest` on parser objects. It's just two lines to\n * create and parse a manifest once you have the contents available as a string:\n *\n * ```js\n * var parser = new m3u8.Parser();\n * parser.push(xhr.responseText);\n * ```\n *\n * New input can later be applied to update the manifest object by calling\n * `push` again.\n *\n * The parser attempts to create a usable manifest object even if the\n * underlying input is somewhat nonsensical. It emits `info` and `warning`\n * events during the parse if it encounters input that seems invalid or\n * requires some property of the manifest object to be defaulted.\n *\n * @class Parser\n * @extends Stream\n */\n\n\nvar Parser = /*#__PURE__*/function (_Stream) {\n _inheritsLoose(Parser, _Stream);\n\n function Parser() {\n var _this;\n\n _this = _Stream.call(this) || this;\n _this.lineStream = new LineStream();\n _this.parseStream = new ParseStream();\n\n _this.lineStream.pipe(_this.parseStream);\n /* eslint-disable consistent-this */\n\n\n var self = _assertThisInitialized(_this);\n /* eslint-enable consistent-this */\n\n\n var uris = [];\n var currentUri = {}; // if specified, the active EXT-X-MAP definition\n\n var currentMap; // if specified, the active decryption key\n\n var _key;\n\n var hasParts = false;\n\n var noop = function noop() {};\n\n var defaultMediaGroups = {\n 'AUDIO': {},\n 'VIDEO': {},\n 'CLOSED-CAPTIONS': {},\n 'SUBTITLES': {}\n }; // This is the Widevine UUID from DASH IF IOP. The same exact string is\n // used in MPDs with Widevine encrypted streams.\n\n var widevineUuid = 'urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed'; // group segments into numbered timelines delineated by discontinuities\n\n var currentTimeline = 0; // the manifest is empty until the parse stream begins delivering data\n\n _this.manifest = {\n allowCache: true,\n discontinuityStarts: [],\n segments: []\n }; // keep track of the last seen segment's byte range end, as segments are not required\n // to provide the offset, in which case it defaults to the next byte after the\n // previous segment\n\n var lastByterangeEnd = 0; // keep track of the last seen part's byte range end.\n\n var lastPartByterangeEnd = 0;\n\n _this.on('end', function () {\n // only add preloadSegment if we don't yet have a uri for it.\n // and we actually have parts/preloadHints\n if (currentUri.uri || !currentUri.parts && !currentUri.preloadHints) {\n return;\n }\n\n if (!currentUri.map && currentMap) {\n currentUri.map = currentMap;\n }\n\n if (!currentUri.key && _key) {\n currentUri.key = _key;\n }\n\n if (!currentUri.timeline && typeof currentTimeline === 'number') {\n currentUri.timeline = currentTimeline;\n }\n\n _this.manifest.preloadSegment = currentUri;\n }); // update the manifest with the m3u8 entry from the parse stream\n\n\n _this.parseStream.on('data', function (entry) {\n var mediaGroup;\n var rendition;\n ({\n tag: function tag() {\n // switch based on the tag type\n (({\n version: function version() {\n if (entry.version) {\n this.manifest.version = entry.version;\n }\n },\n 'allow-cache': function allowCache() {\n this.manifest.allowCache = entry.allowed;\n\n if (!('allowed' in entry)) {\n this.trigger('info', {\n message: 'defaulting allowCache to YES'\n });\n this.manifest.allowCache = true;\n }\n },\n byterange: function byterange() {\n var byterange = {};\n\n if ('length' in entry) {\n currentUri.byterange = byterange;\n byterange.length = entry.length;\n\n if (!('offset' in entry)) {\n /*\n * From the latest spec (as of this writing):\n * https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-4.3.2.2\n *\n * Same text since EXT-X-BYTERANGE's introduction in draft 7:\n * https://tools.ietf.org/html/draft-pantos-http-live-streaming-07#section-3.3.1)\n *\n * \"If o [offset] is not present, the sub-range begins at the next byte\n * following the sub-range of the previous media segment.\"\n */\n entry.offset = lastByterangeEnd;\n }\n }\n\n if ('offset' in entry) {\n currentUri.byterange = byterange;\n byterange.offset = entry.offset;\n }\n\n lastByterangeEnd = byterange.offset + byterange.length;\n },\n endlist: function endlist() {\n this.manifest.endList = true;\n },\n inf: function inf() {\n if (!('mediaSequence' in this.manifest)) {\n this.manifest.mediaSequence = 0;\n this.trigger('info', {\n message: 'defaulting media sequence to zero'\n });\n }\n\n if (!('discontinuitySequence' in this.manifest)) {\n this.manifest.discontinuitySequence = 0;\n this.trigger('info', {\n message: 'defaulting discontinuity sequence to zero'\n });\n }\n\n if (entry.duration > 0) {\n currentUri.duration = entry.duration;\n }\n\n if (entry.duration === 0) {\n currentUri.duration = 0.01;\n this.trigger('info', {\n message: 'updating zero segment duration to a small value'\n });\n }\n\n this.manifest.segments = uris;\n },\n key: function key() {\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring key declaration without attribute list'\n });\n return;\n } // clear the active encryption key\n\n\n if (entry.attributes.METHOD === 'NONE') {\n _key = null;\n return;\n }\n\n if (!entry.attributes.URI) {\n this.trigger('warn', {\n message: 'ignoring key declaration without URI'\n });\n return;\n }\n\n if (entry.attributes.KEYFORMAT === 'com.apple.streamingkeydelivery') {\n this.manifest.contentProtection = this.manifest.contentProtection || {}; // TODO: add full support for this.\n\n this.manifest.contentProtection['com.apple.fps.1_0'] = {\n attributes: entry.attributes\n };\n return;\n }\n\n if (entry.attributes.KEYFORMAT === 'com.microsoft.playready') {\n this.manifest.contentProtection = this.manifest.contentProtection || {}; // TODO: add full support for this.\n\n this.manifest.contentProtection['com.microsoft.playready'] = {\n uri: entry.attributes.URI\n };\n return;\n } // check if the content is encrypted for Widevine\n // Widevine/HLS spec: https://storage.googleapis.com/wvdocs/Widevine_DRM_HLS.pdf\n\n\n if (entry.attributes.KEYFORMAT === widevineUuid) {\n var VALID_METHODS = ['SAMPLE-AES', 'SAMPLE-AES-CTR', 'SAMPLE-AES-CENC'];\n\n if (VALID_METHODS.indexOf(entry.attributes.METHOD) === -1) {\n this.trigger('warn', {\n message: 'invalid key method provided for Widevine'\n });\n return;\n }\n\n if (entry.attributes.METHOD === 'SAMPLE-AES-CENC') {\n this.trigger('warn', {\n message: 'SAMPLE-AES-CENC is deprecated, please use SAMPLE-AES-CTR instead'\n });\n }\n\n if (entry.attributes.URI.substring(0, 23) !== 'data:text/plain;base64,') {\n this.trigger('warn', {\n message: 'invalid key URI provided for Widevine'\n });\n return;\n }\n\n if (!(entry.attributes.KEYID && entry.attributes.KEYID.substring(0, 2) === '0x')) {\n this.trigger('warn', {\n message: 'invalid key ID provided for Widevine'\n });\n return;\n } // if Widevine key attributes are valid, store them as `contentProtection`\n // on the manifest to emulate Widevine tag structure in a DASH mpd\n\n\n this.manifest.contentProtection = this.manifest.contentProtection || {};\n this.manifest.contentProtection['com.widevine.alpha'] = {\n attributes: {\n schemeIdUri: entry.attributes.KEYFORMAT,\n // remove '0x' from the key id string\n keyId: entry.attributes.KEYID.substring(2)\n },\n // decode the base64-encoded PSSH box\n pssh: decodeB64ToUint8Array(entry.attributes.URI.split(',')[1])\n };\n return;\n }\n\n if (!entry.attributes.METHOD) {\n this.trigger('warn', {\n message: 'defaulting key method to AES-128'\n });\n } // setup an encryption key for upcoming segments\n\n\n _key = {\n method: entry.attributes.METHOD || 'AES-128',\n uri: entry.attributes.URI\n };\n\n if (typeof entry.attributes.IV !== 'undefined') {\n _key.iv = entry.attributes.IV;\n }\n },\n 'media-sequence': function mediaSequence() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid media sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.mediaSequence = entry.number;\n },\n 'discontinuity-sequence': function discontinuitySequence() {\n if (!isFinite(entry.number)) {\n this.trigger('warn', {\n message: 'ignoring invalid discontinuity sequence: ' + entry.number\n });\n return;\n }\n\n this.manifest.discontinuitySequence = entry.number;\n currentTimeline = entry.number;\n },\n 'playlist-type': function playlistType() {\n if (!/VOD|EVENT/.test(entry.playlistType)) {\n this.trigger('warn', {\n message: 'ignoring unknown playlist type: ' + entry.playlist\n });\n return;\n }\n\n this.manifest.playlistType = entry.playlistType;\n },\n map: function map() {\n currentMap = {};\n\n if (entry.uri) {\n currentMap.uri = entry.uri;\n }\n\n if (entry.byterange) {\n currentMap.byterange = entry.byterange;\n }\n\n if (_key) {\n currentMap.key = _key;\n }\n },\n 'stream-inf': function streamInf() {\n this.manifest.playlists = uris;\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!entry.attributes) {\n this.trigger('warn', {\n message: 'ignoring empty stream-inf attributes'\n });\n return;\n }\n\n if (!currentUri.attributes) {\n currentUri.attributes = {};\n }\n\n _extends(currentUri.attributes, entry.attributes);\n },\n media: function media() {\n this.manifest.mediaGroups = this.manifest.mediaGroups || defaultMediaGroups;\n\n if (!(entry.attributes && entry.attributes.TYPE && entry.attributes['GROUP-ID'] && entry.attributes.NAME)) {\n this.trigger('warn', {\n message: 'ignoring incomplete or missing media group'\n });\n return;\n } // find the media group, creating defaults as necessary\n\n\n var mediaGroupType = this.manifest.mediaGroups[entry.attributes.TYPE];\n mediaGroupType[entry.attributes['GROUP-ID']] = mediaGroupType[entry.attributes['GROUP-ID']] || {};\n mediaGroup = mediaGroupType[entry.attributes['GROUP-ID']]; // collect the rendition metadata\n\n rendition = {\n default: /yes/i.test(entry.attributes.DEFAULT)\n };\n\n if (rendition.default) {\n rendition.autoselect = true;\n } else {\n rendition.autoselect = /yes/i.test(entry.attributes.AUTOSELECT);\n }\n\n if (entry.attributes.LANGUAGE) {\n rendition.language = entry.attributes.LANGUAGE;\n }\n\n if (entry.attributes.URI) {\n rendition.uri = entry.attributes.URI;\n }\n\n if (entry.attributes['INSTREAM-ID']) {\n rendition.instreamId = entry.attributes['INSTREAM-ID'];\n }\n\n if (entry.attributes.CHARACTERISTICS) {\n rendition.characteristics = entry.attributes.CHARACTERISTICS;\n }\n\n if (entry.attributes.FORCED) {\n rendition.forced = /yes/i.test(entry.attributes.FORCED);\n } // insert the new rendition\n\n\n mediaGroup[entry.attributes.NAME] = rendition;\n },\n discontinuity: function discontinuity() {\n currentTimeline += 1;\n currentUri.discontinuity = true;\n this.manifest.discontinuityStarts.push(uris.length);\n },\n 'program-date-time': function programDateTime() {\n if (typeof this.manifest.dateTimeString === 'undefined') {\n // PROGRAM-DATE-TIME is a media-segment tag, but for backwards\n // compatibility, we add the first occurence of the PROGRAM-DATE-TIME tag\n // to the manifest object\n // TODO: Consider removing this in future major version\n this.manifest.dateTimeString = entry.dateTimeString;\n this.manifest.dateTimeObject = entry.dateTimeObject;\n }\n\n currentUri.dateTimeString = entry.dateTimeString;\n currentUri.dateTimeObject = entry.dateTimeObject;\n },\n targetduration: function targetduration() {\n if (!isFinite(entry.duration) || entry.duration < 0) {\n this.trigger('warn', {\n message: 'ignoring invalid target duration: ' + entry.duration\n });\n return;\n }\n\n this.manifest.targetDuration = entry.duration;\n setHoldBack.call(this, this.manifest);\n },\n start: function start() {\n if (!entry.attributes || isNaN(entry.attributes['TIME-OFFSET'])) {\n this.trigger('warn', {\n message: 'ignoring start declaration without appropriate attribute list'\n });\n return;\n }\n\n this.manifest.start = {\n timeOffset: entry.attributes['TIME-OFFSET'],\n precise: entry.attributes.PRECISE\n };\n },\n 'cue-out': function cueOut() {\n currentUri.cueOut = entry.data;\n },\n 'cue-out-cont': function cueOutCont() {\n currentUri.cueOutCont = entry.data;\n },\n 'cue-in': function cueIn() {\n currentUri.cueIn = entry.data;\n },\n 'skip': function skip() {\n this.manifest.skip = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-SKIP', entry.attributes, ['SKIPPED-SEGMENTS']);\n },\n 'part': function part() {\n var _this2 = this;\n\n hasParts = true; // parts are always specifed before a segment\n\n var segmentIndex = this.manifest.segments.length;\n var part = camelCaseKeys(entry.attributes);\n currentUri.parts = currentUri.parts || [];\n currentUri.parts.push(part);\n\n if (part.byterange) {\n if (!part.byterange.hasOwnProperty('offset')) {\n part.byterange.offset = lastPartByterangeEnd;\n }\n\n lastPartByterangeEnd = part.byterange.offset + part.byterange.length;\n }\n\n var partIndex = currentUri.parts.length - 1;\n this.warnOnMissingAttributes_(\"#EXT-X-PART #\" + partIndex + \" for segment #\" + segmentIndex, entry.attributes, ['URI', 'DURATION']);\n\n if (this.manifest.renditionReports) {\n this.manifest.renditionReports.forEach(function (r, i) {\n if (!r.hasOwnProperty('lastPart')) {\n _this2.trigger('warn', {\n message: \"#EXT-X-RENDITION-REPORT #\" + i + \" lacks required attribute(s): LAST-PART\"\n });\n }\n });\n }\n },\n 'server-control': function serverControl() {\n var attrs = this.manifest.serverControl = camelCaseKeys(entry.attributes);\n\n if (!attrs.hasOwnProperty('canBlockReload')) {\n attrs.canBlockReload = false;\n this.trigger('info', {\n message: '#EXT-X-SERVER-CONTROL defaulting CAN-BLOCK-RELOAD to false'\n });\n }\n\n setHoldBack.call(this, this.manifest);\n\n if (attrs.canSkipDateranges && !attrs.hasOwnProperty('canSkipUntil')) {\n this.trigger('warn', {\n message: '#EXT-X-SERVER-CONTROL lacks required attribute CAN-SKIP-UNTIL which is required when CAN-SKIP-DATERANGES is set'\n });\n }\n },\n 'preload-hint': function preloadHint() {\n // parts are always specifed before a segment\n var segmentIndex = this.manifest.segments.length;\n var hint = camelCaseKeys(entry.attributes);\n var isPart = hint.type && hint.type === 'PART';\n currentUri.preloadHints = currentUri.preloadHints || [];\n currentUri.preloadHints.push(hint);\n\n if (hint.byterange) {\n if (!hint.byterange.hasOwnProperty('offset')) {\n // use last part byterange end or zero if not a part.\n hint.byterange.offset = isPart ? lastPartByterangeEnd : 0;\n\n if (isPart) {\n lastPartByterangeEnd = hint.byterange.offset + hint.byterange.length;\n }\n }\n }\n\n var index = currentUri.preloadHints.length - 1;\n this.warnOnMissingAttributes_(\"#EXT-X-PRELOAD-HINT #\" + index + \" for segment #\" + segmentIndex, entry.attributes, ['TYPE', 'URI']);\n\n if (!hint.type) {\n return;\n } // search through all preload hints except for the current one for\n // a duplicate type.\n\n\n for (var i = 0; i < currentUri.preloadHints.length - 1; i++) {\n var otherHint = currentUri.preloadHints[i];\n\n if (!otherHint.type) {\n continue;\n }\n\n if (otherHint.type === hint.type) {\n this.trigger('warn', {\n message: \"#EXT-X-PRELOAD-HINT #\" + index + \" for segment #\" + segmentIndex + \" has the same TYPE \" + hint.type + \" as preload hint #\" + i\n });\n }\n }\n },\n 'rendition-report': function renditionReport() {\n var report = camelCaseKeys(entry.attributes);\n this.manifest.renditionReports = this.manifest.renditionReports || [];\n this.manifest.renditionReports.push(report);\n var index = this.manifest.renditionReports.length - 1;\n var required = ['LAST-MSN', 'URI'];\n\n if (hasParts) {\n required.push('LAST-PART');\n }\n\n this.warnOnMissingAttributes_(\"#EXT-X-RENDITION-REPORT #\" + index, entry.attributes, required);\n },\n 'part-inf': function partInf() {\n this.manifest.partInf = camelCaseKeys(entry.attributes);\n this.warnOnMissingAttributes_('#EXT-X-PART-INF', entry.attributes, ['PART-TARGET']);\n\n if (this.manifest.partInf.partTarget) {\n this.manifest.partTargetDuration = this.manifest.partInf.partTarget;\n }\n\n setHoldBack.call(this, this.manifest);\n }\n })[entry.tagType] || noop).call(self);\n },\n uri: function uri() {\n currentUri.uri = entry.uri;\n uris.push(currentUri); // if no explicit duration was declared, use the target duration\n\n if (this.manifest.targetDuration && !('duration' in currentUri)) {\n this.trigger('warn', {\n message: 'defaulting segment duration to the target duration'\n });\n currentUri.duration = this.manifest.targetDuration;\n } // annotate with encryption information, if necessary\n\n\n if (_key) {\n currentUri.key = _key;\n }\n\n currentUri.timeline = currentTimeline; // annotate with initialization segment information, if necessary\n\n if (currentMap) {\n currentUri.map = currentMap;\n } // reset the last byterange end as it needs to be 0 between parts\n\n\n lastPartByterangeEnd = 0; // prepare for the next URI\n\n currentUri = {};\n },\n comment: function comment() {// comments are not important for playback\n },\n custom: function custom() {\n // if this is segment-level data attach the output to the segment\n if (entry.segment) {\n currentUri.custom = currentUri.custom || {};\n currentUri.custom[entry.customType] = entry.data; // if this is manifest-level data attach to the top level manifest object\n } else {\n this.manifest.custom = this.manifest.custom || {};\n this.manifest.custom[entry.customType] = entry.data;\n }\n }\n })[entry.type].call(self);\n });\n\n return _this;\n }\n\n var _proto = Parser.prototype;\n\n _proto.warnOnMissingAttributes_ = function warnOnMissingAttributes_(identifier, attributes, required) {\n var missing = [];\n required.forEach(function (key) {\n if (!attributes.hasOwnProperty(key)) {\n missing.push(key);\n }\n });\n\n if (missing.length) {\n this.trigger('warn', {\n message: identifier + \" lacks required attribute(s): \" + missing.join(', ')\n });\n }\n }\n /**\n * Parse the input string and update the manifest object.\n *\n * @param {string} chunk a potentially incomplete portion of the manifest\n */\n ;\n\n _proto.push = function push(chunk) {\n this.lineStream.push(chunk);\n }\n /**\n * Flush any remaining input. This can be handy if the last line of an M3U8\n * manifest did not contain a trailing newline but the file has been\n * completely received.\n */\n ;\n\n _proto.end = function end() {\n // flush any buffered input\n this.lineStream.push('\\n');\n this.trigger('end');\n }\n /**\n * Add an additional parser for non-standard tags\n *\n * @param {Object} options a map of options for the added parser\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {string} options.type the type to register to the output\n * @param {Function} [options.dataParser] function to parse the line into an object\n * @param {boolean} [options.segment] should tag data be attached to the segment object\n */\n ;\n\n _proto.addParser = function addParser(options) {\n this.parseStream.addParser(options);\n }\n /**\n * Add a custom header mapper\n *\n * @param {Object} options\n * @param {RegExp} options.expression a regular expression to match the custom header\n * @param {Function} options.map function to translate tag into a different tag\n */\n ;\n\n _proto.addTagMapper = function addTagMapper(options) {\n this.parseStream.addTagMapper(options);\n };\n\n return Parser;\n}(Stream);\n\nexport { LineStream, ParseStream, Parser };\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canUseDOM = exports.SafeNodeList = exports.SafeHTMLCollection = undefined;\n\nvar _exenv = require(\"exenv\");\n\nvar _exenv2 = _interopRequireDefault(_exenv);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EE = _exenv2.default;\n\nvar SafeHTMLElement = EE.canUseDOM ? window.HTMLElement : {};\n\nvar SafeHTMLCollection = exports.SafeHTMLCollection = EE.canUseDOM ? window.HTMLCollection : {};\n\nvar SafeNodeList = exports.SafeNodeList = EE.canUseDOM ? window.NodeList : {};\n\nvar canUseDOM = exports.canUseDOM = EE.canUseDOM;\n\nexports.default = SafeHTMLElement;","/*\n * Dexie.js - a minimalistic wrapper for IndexedDB\n * ===============================================\n *\n * By David Fahlander, david.fahlander@gmail.com\n *\n * Version 3.2.3, Mon Jan 23 2023\n *\n * https://dexie.org\n *\n * Apache License Version 2.0, January 2004, http://www.apache.org/licenses/\n */\n \n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nfunction __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nvar _global = typeof globalThis !== 'undefined' ? globalThis :\n typeof self !== 'undefined' ? self :\n typeof window !== 'undefined' ? window :\n global;\n\nvar keys = Object.keys;\nvar isArray = Array.isArray;\nif (typeof Promise !== 'undefined' && !_global.Promise) {\n _global.Promise = Promise;\n}\nfunction extend(obj, extension) {\n if (typeof extension !== 'object')\n return obj;\n keys(extension).forEach(function (key) {\n obj[key] = extension[key];\n });\n return obj;\n}\nvar getProto = Object.getPrototypeOf;\nvar _hasOwn = {}.hasOwnProperty;\nfunction hasOwn(obj, prop) {\n return _hasOwn.call(obj, prop);\n}\nfunction props(proto, extension) {\n if (typeof extension === 'function')\n extension = extension(getProto(proto));\n (typeof Reflect === \"undefined\" ? keys : Reflect.ownKeys)(extension).forEach(function (key) {\n setProp(proto, key, extension[key]);\n });\n}\nvar defineProperty = Object.defineProperty;\nfunction setProp(obj, prop, functionOrGetSet, options) {\n defineProperty(obj, prop, extend(functionOrGetSet && hasOwn(functionOrGetSet, \"get\") && typeof functionOrGetSet.get === 'function' ?\n { get: functionOrGetSet.get, set: functionOrGetSet.set, configurable: true } :\n { value: functionOrGetSet, configurable: true, writable: true }, options));\n}\nfunction derive(Child) {\n return {\n from: function (Parent) {\n Child.prototype = Object.create(Parent.prototype);\n setProp(Child.prototype, \"constructor\", Child);\n return {\n extend: props.bind(null, Child.prototype)\n };\n }\n };\n}\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nfunction getPropertyDescriptor(obj, prop) {\n var pd = getOwnPropertyDescriptor(obj, prop);\n var proto;\n return pd || (proto = getProto(obj)) && getPropertyDescriptor(proto, prop);\n}\nvar _slice = [].slice;\nfunction slice(args, start, end) {\n return _slice.call(args, start, end);\n}\nfunction override(origFunc, overridedFactory) {\n return overridedFactory(origFunc);\n}\nfunction assert(b) {\n if (!b)\n throw new Error(\"Assertion Failed\");\n}\nfunction asap$1(fn) {\n if (_global.setImmediate)\n setImmediate(fn);\n else\n setTimeout(fn, 0);\n}\nfunction arrayToObject(array, extractor) {\n return array.reduce(function (result, item, i) {\n var nameAndValue = extractor(item, i);\n if (nameAndValue)\n result[nameAndValue[0]] = nameAndValue[1];\n return result;\n }, {});\n}\nfunction tryCatch(fn, onerror, args) {\n try {\n fn.apply(null, args);\n }\n catch (ex) {\n onerror && onerror(ex);\n }\n}\nfunction getByKeyPath(obj, keyPath) {\n if (hasOwn(obj, keyPath))\n return obj[keyPath];\n if (!keyPath)\n return obj;\n if (typeof keyPath !== 'string') {\n var rv = [];\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n var val = getByKeyPath(obj, keyPath[i]);\n rv.push(val);\n }\n return rv;\n }\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var innerObj = obj[keyPath.substr(0, period)];\n return innerObj === undefined ? undefined : getByKeyPath(innerObj, keyPath.substr(period + 1));\n }\n return undefined;\n}\nfunction setByKeyPath(obj, keyPath, value) {\n if (!obj || keyPath === undefined)\n return;\n if ('isFrozen' in Object && Object.isFrozen(obj))\n return;\n if (typeof keyPath !== 'string' && 'length' in keyPath) {\n assert(typeof value !== 'string' && 'length' in value);\n for (var i = 0, l = keyPath.length; i < l; ++i) {\n setByKeyPath(obj, keyPath[i], value[i]);\n }\n }\n else {\n var period = keyPath.indexOf('.');\n if (period !== -1) {\n var currentKeyPath = keyPath.substr(0, period);\n var remainingKeyPath = keyPath.substr(period + 1);\n if (remainingKeyPath === \"\")\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(currentKeyPath)))\n obj.splice(currentKeyPath, 1);\n else\n delete obj[currentKeyPath];\n }\n else\n obj[currentKeyPath] = value;\n else {\n var innerObj = obj[currentKeyPath];\n if (!innerObj || !hasOwn(obj, currentKeyPath))\n innerObj = (obj[currentKeyPath] = {});\n setByKeyPath(innerObj, remainingKeyPath, value);\n }\n }\n else {\n if (value === undefined) {\n if (isArray(obj) && !isNaN(parseInt(keyPath)))\n obj.splice(keyPath, 1);\n else\n delete obj[keyPath];\n }\n else\n obj[keyPath] = value;\n }\n }\n}\nfunction delByKeyPath(obj, keyPath) {\n if (typeof keyPath === 'string')\n setByKeyPath(obj, keyPath, undefined);\n else if ('length' in keyPath)\n [].map.call(keyPath, function (kp) {\n setByKeyPath(obj, kp, undefined);\n });\n}\nfunction shallowClone(obj) {\n var rv = {};\n for (var m in obj) {\n if (hasOwn(obj, m))\n rv[m] = obj[m];\n }\n return rv;\n}\nvar concat = [].concat;\nfunction flatten(a) {\n return concat.apply([], a);\n}\nvar intrinsicTypeNames = \"Boolean,String,Date,RegExp,Blob,File,FileList,FileSystemFileHandle,ArrayBuffer,DataView,Uint8ClampedArray,ImageBitmap,ImageData,Map,Set,CryptoKey\"\n .split(',').concat(flatten([8, 16, 32, 64].map(function (num) { return [\"Int\", \"Uint\", \"Float\"].map(function (t) { return t + num + \"Array\"; }); }))).filter(function (t) { return _global[t]; });\nvar intrinsicTypes = intrinsicTypeNames.map(function (t) { return _global[t]; });\narrayToObject(intrinsicTypeNames, function (x) { return [x, true]; });\nvar circularRefs = null;\nfunction deepClone(any) {\n circularRefs = typeof WeakMap !== 'undefined' && new WeakMap();\n var rv = innerDeepClone(any);\n circularRefs = null;\n return rv;\n}\nfunction innerDeepClone(any) {\n if (!any || typeof any !== 'object')\n return any;\n var rv = circularRefs && circularRefs.get(any);\n if (rv)\n return rv;\n if (isArray(any)) {\n rv = [];\n circularRefs && circularRefs.set(any, rv);\n for (var i = 0, l = any.length; i < l; ++i) {\n rv.push(innerDeepClone(any[i]));\n }\n }\n else if (intrinsicTypes.indexOf(any.constructor) >= 0) {\n rv = any;\n }\n else {\n var proto = getProto(any);\n rv = proto === Object.prototype ? {} : Object.create(proto);\n circularRefs && circularRefs.set(any, rv);\n for (var prop in any) {\n if (hasOwn(any, prop)) {\n rv[prop] = innerDeepClone(any[prop]);\n }\n }\n }\n return rv;\n}\nvar toString = {}.toString;\nfunction toStringTag(o) {\n return toString.call(o).slice(8, -1);\n}\nvar iteratorSymbol = typeof Symbol !== 'undefined' ?\n Symbol.iterator :\n '@@iterator';\nvar getIteratorOf = typeof iteratorSymbol === \"symbol\" ? function (x) {\n var i;\n return x != null && (i = x[iteratorSymbol]) && i.apply(x);\n} : function () { return null; };\nvar NO_CHAR_ARRAY = {};\nfunction getArrayOf(arrayLike) {\n var i, a, x, it;\n if (arguments.length === 1) {\n if (isArray(arrayLike))\n return arrayLike.slice();\n if (this === NO_CHAR_ARRAY && typeof arrayLike === 'string')\n return [arrayLike];\n if ((it = getIteratorOf(arrayLike))) {\n a = [];\n while ((x = it.next()), !x.done)\n a.push(x.value);\n return a;\n }\n if (arrayLike == null)\n return [arrayLike];\n i = arrayLike.length;\n if (typeof i === 'number') {\n a = new Array(i);\n while (i--)\n a[i] = arrayLike[i];\n return a;\n }\n return [arrayLike];\n }\n i = arguments.length;\n a = new Array(i);\n while (i--)\n a[i] = arguments[i];\n return a;\n}\nvar isAsyncFunction = typeof Symbol !== 'undefined'\n ? function (fn) { return fn[Symbol.toStringTag] === 'AsyncFunction'; }\n : function () { return false; };\n\nvar debug = typeof location !== 'undefined' &&\n /^(http|https):\\/\\/(localhost|127\\.0\\.0\\.1)/.test(location.href);\nfunction setDebug(value, filter) {\n debug = value;\n libraryFilter = filter;\n}\nvar libraryFilter = function () { return true; };\nvar NEEDS_THROW_FOR_STACK = !new Error(\"\").stack;\nfunction getErrorWithStack() {\n if (NEEDS_THROW_FOR_STACK)\n try {\n getErrorWithStack.arguments;\n throw new Error();\n }\n catch (e) {\n return e;\n }\n return new Error();\n}\nfunction prettyStack(exception, numIgnoredFrames) {\n var stack = exception.stack;\n if (!stack)\n return \"\";\n numIgnoredFrames = (numIgnoredFrames || 0);\n if (stack.indexOf(exception.name) === 0)\n numIgnoredFrames += (exception.name + exception.message).split('\\n').length;\n return stack.split('\\n')\n .slice(numIgnoredFrames)\n .filter(libraryFilter)\n .map(function (frame) { return \"\\n\" + frame; })\n .join('');\n}\n\nvar dexieErrorNames = [\n 'Modify',\n 'Bulk',\n 'OpenFailed',\n 'VersionChange',\n 'Schema',\n 'Upgrade',\n 'InvalidTable',\n 'MissingAPI',\n 'NoSuchDatabase',\n 'InvalidArgument',\n 'SubTransaction',\n 'Unsupported',\n 'Internal',\n 'DatabaseClosed',\n 'PrematureCommit',\n 'ForeignAwait'\n];\nvar idbDomErrorNames = [\n 'Unknown',\n 'Constraint',\n 'Data',\n 'TransactionInactive',\n 'ReadOnly',\n 'Version',\n 'NotFound',\n 'InvalidState',\n 'InvalidAccess',\n 'Abort',\n 'Timeout',\n 'QuotaExceeded',\n 'Syntax',\n 'DataClone'\n];\nvar errorList = dexieErrorNames.concat(idbDomErrorNames);\nvar defaultTexts = {\n VersionChanged: \"Database version changed by other database connection\",\n DatabaseClosed: \"Database has been closed\",\n Abort: \"Transaction aborted\",\n TransactionInactive: \"Transaction has already completed or failed\",\n MissingAPI: \"IndexedDB API missing. Please visit https://tinyurl.com/y2uuvskb\"\n};\nfunction DexieError(name, msg) {\n this._e = getErrorWithStack();\n this.name = name;\n this.message = msg;\n}\nderive(DexieError).from(Error).extend({\n stack: {\n get: function () {\n return this._stack ||\n (this._stack = this.name + \": \" + this.message + prettyStack(this._e, 2));\n }\n },\n toString: function () { return this.name + \": \" + this.message; }\n});\nfunction getMultiErrorMessage(msg, failures) {\n return msg + \". Errors: \" + Object.keys(failures)\n .map(function (key) { return failures[key].toString(); })\n .filter(function (v, i, s) { return s.indexOf(v) === i; })\n .join('\\n');\n}\nfunction ModifyError(msg, failures, successCount, failedKeys) {\n this._e = getErrorWithStack();\n this.failures = failures;\n this.failedKeys = failedKeys;\n this.successCount = successCount;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(ModifyError).from(DexieError);\nfunction BulkError(msg, failures) {\n this._e = getErrorWithStack();\n this.name = \"BulkError\";\n this.failures = Object.keys(failures).map(function (pos) { return failures[pos]; });\n this.failuresByPos = failures;\n this.message = getMultiErrorMessage(msg, failures);\n}\nderive(BulkError).from(DexieError);\nvar errnames = errorList.reduce(function (obj, name) { return (obj[name] = name + \"Error\", obj); }, {});\nvar BaseException = DexieError;\nvar exceptions = errorList.reduce(function (obj, name) {\n var fullName = name + \"Error\";\n function DexieError(msgOrInner, inner) {\n this._e = getErrorWithStack();\n this.name = fullName;\n if (!msgOrInner) {\n this.message = defaultTexts[name] || fullName;\n this.inner = null;\n }\n else if (typeof msgOrInner === 'string') {\n this.message = \"\" + msgOrInner + (!inner ? '' : '\\n ' + inner);\n this.inner = inner || null;\n }\n else if (typeof msgOrInner === 'object') {\n this.message = msgOrInner.name + \" \" + msgOrInner.message;\n this.inner = msgOrInner;\n }\n }\n derive(DexieError).from(BaseException);\n obj[name] = DexieError;\n return obj;\n}, {});\nexceptions.Syntax = SyntaxError;\nexceptions.Type = TypeError;\nexceptions.Range = RangeError;\nvar exceptionMap = idbDomErrorNames.reduce(function (obj, name) {\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\nfunction mapError(domError, message) {\n if (!domError || domError instanceof DexieError || domError instanceof TypeError || domError instanceof SyntaxError || !domError.name || !exceptionMap[domError.name])\n return domError;\n var rv = new exceptionMap[domError.name](message || domError.message, domError);\n if (\"stack\" in domError) {\n setProp(rv, \"stack\", { get: function () {\n return this.inner.stack;\n } });\n }\n return rv;\n}\nvar fullNameExceptions = errorList.reduce(function (obj, name) {\n if ([\"Syntax\", \"Type\", \"Range\"].indexOf(name) === -1)\n obj[name + \"Error\"] = exceptions[name];\n return obj;\n}, {});\nfullNameExceptions.ModifyError = ModifyError;\nfullNameExceptions.DexieError = DexieError;\nfullNameExceptions.BulkError = BulkError;\n\nfunction nop() { }\nfunction mirror(val) { return val; }\nfunction pureFunctionChain(f1, f2) {\n if (f1 == null || f1 === mirror)\n return f2;\n return function (val) {\n return f2(f1(val));\n };\n}\nfunction callBoth(on1, on2) {\n return function () {\n on1.apply(this, arguments);\n on2.apply(this, arguments);\n };\n}\nfunction hookCreatingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res !== undefined)\n arguments[0] = res;\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res2 !== undefined ? res2 : res;\n };\n}\nfunction hookDeletingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n f1.apply(this, arguments);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = this.onerror = null;\n f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n };\n}\nfunction hookUpdatingChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function (modifications) {\n var res = f1.apply(this, arguments);\n extend(modifications, res);\n var onsuccess = this.onsuccess,\n onerror = this.onerror;\n this.onsuccess = null;\n this.onerror = null;\n var res2 = f2.apply(this, arguments);\n if (onsuccess)\n this.onsuccess = this.onsuccess ? callBoth(onsuccess, this.onsuccess) : onsuccess;\n if (onerror)\n this.onerror = this.onerror ? callBoth(onerror, this.onerror) : onerror;\n return res === undefined ?\n (res2 === undefined ? undefined : res2) :\n (extend(res, res2));\n };\n}\nfunction reverseStoppableEventChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n if (f2.apply(this, arguments) === false)\n return false;\n return f1.apply(this, arguments);\n };\n}\nfunction promisableChain(f1, f2) {\n if (f1 === nop)\n return f2;\n return function () {\n var res = f1.apply(this, arguments);\n if (res && typeof res.then === 'function') {\n var thiz = this, i = arguments.length, args = new Array(i);\n while (i--)\n args[i] = arguments[i];\n return res.then(function () {\n return f2.apply(thiz, args);\n });\n }\n return f2.apply(this, arguments);\n };\n}\n\nvar INTERNAL = {};\nvar LONG_STACKS_CLIP_LIMIT = 100,\nMAX_LONG_STACKS = 20, ZONE_ECHO_LIMIT = 100, _a$1 = typeof Promise === 'undefined' ?\n [] :\n (function () {\n var globalP = Promise.resolve();\n if (typeof crypto === 'undefined' || !crypto.subtle)\n return [globalP, getProto(globalP), globalP];\n var nativeP = crypto.subtle.digest(\"SHA-512\", new Uint8Array([0]));\n return [\n nativeP,\n getProto(nativeP),\n globalP\n ];\n })(), resolvedNativePromise = _a$1[0], nativePromiseProto = _a$1[1], resolvedGlobalPromise = _a$1[2], nativePromiseThen = nativePromiseProto && nativePromiseProto.then;\nvar NativePromise = resolvedNativePromise && resolvedNativePromise.constructor;\nvar patchGlobalPromise = !!resolvedGlobalPromise;\nvar stack_being_generated = false;\nvar schedulePhysicalTick = resolvedGlobalPromise ?\n function () { resolvedGlobalPromise.then(physicalTick); }\n :\n _global.setImmediate ?\n setImmediate.bind(null, physicalTick) :\n _global.MutationObserver ?\n function () {\n var hiddenDiv = document.createElement(\"div\");\n (new MutationObserver(function () {\n physicalTick();\n hiddenDiv = null;\n })).observe(hiddenDiv, { attributes: true });\n hiddenDiv.setAttribute('i', '1');\n } :\n function () { setTimeout(physicalTick, 0); };\nvar asap = function (callback, args) {\n microtickQueue.push([callback, args]);\n if (needsNewPhysicalTick) {\n schedulePhysicalTick();\n needsNewPhysicalTick = false;\n }\n};\nvar isOutsideMicroTick = true,\nneedsNewPhysicalTick = true,\nunhandledErrors = [],\nrejectingErrors = [],\ncurrentFulfiller = null, rejectionMapper = mirror;\nvar globalPSD = {\n id: 'global',\n global: true,\n ref: 0,\n unhandleds: [],\n onunhandled: globalError,\n pgp: false,\n env: {},\n finalize: function () {\n this.unhandleds.forEach(function (uh) {\n try {\n globalError(uh[0], uh[1]);\n }\n catch (e) { }\n });\n }\n};\nvar PSD = globalPSD;\nvar microtickQueue = [];\nvar numScheduledCalls = 0;\nvar tickFinalizers = [];\nfunction DexiePromise(fn) {\n if (typeof this !== 'object')\n throw new TypeError('Promises must be constructed via new');\n this._listeners = [];\n this.onuncatched = nop;\n this._lib = false;\n var psd = (this._PSD = PSD);\n if (debug) {\n this._stackHolder = getErrorWithStack();\n this._prev = null;\n this._numPrev = 0;\n }\n if (typeof fn !== 'function') {\n if (fn !== INTERNAL)\n throw new TypeError('Not a function');\n this._state = arguments[1];\n this._value = arguments[2];\n if (this._state === false)\n handleRejection(this, this._value);\n return;\n }\n this._state = null;\n this._value = null;\n ++psd.ref;\n executePromiseTask(this, fn);\n}\nvar thenProp = {\n get: function () {\n var psd = PSD, microTaskId = totalEchoes;\n function then(onFulfilled, onRejected) {\n var _this = this;\n var possibleAwait = !psd.global && (psd !== PSD || microTaskId !== totalEchoes);\n var cleanup = possibleAwait && !decrementExpectedAwaits();\n var rv = new DexiePromise(function (resolve, reject) {\n propagateToListener(_this, new Listener(nativeAwaitCompatibleWrap(onFulfilled, psd, possibleAwait, cleanup), nativeAwaitCompatibleWrap(onRejected, psd, possibleAwait, cleanup), resolve, reject, psd));\n });\n debug && linkToPreviousPromise(rv, this);\n return rv;\n }\n then.prototype = INTERNAL;\n return then;\n },\n set: function (value) {\n setProp(this, 'then', value && value.prototype === INTERNAL ?\n thenProp :\n {\n get: function () {\n return value;\n },\n set: thenProp.set\n });\n }\n};\nprops(DexiePromise.prototype, {\n then: thenProp,\n _then: function (onFulfilled, onRejected) {\n propagateToListener(this, new Listener(null, null, onFulfilled, onRejected, PSD));\n },\n catch: function (onRejected) {\n if (arguments.length === 1)\n return this.then(null, onRejected);\n var type = arguments[0], handler = arguments[1];\n return typeof type === 'function' ? this.then(null, function (err) {\n return err instanceof type ? handler(err) : PromiseReject(err);\n })\n : this.then(null, function (err) {\n return err && err.name === type ? handler(err) : PromiseReject(err);\n });\n },\n finally: function (onFinally) {\n return this.then(function (value) {\n onFinally();\n return value;\n }, function (err) {\n onFinally();\n return PromiseReject(err);\n });\n },\n stack: {\n get: function () {\n if (this._stack)\n return this._stack;\n try {\n stack_being_generated = true;\n var stacks = getStack(this, [], MAX_LONG_STACKS);\n var stack = stacks.join(\"\\nFrom previous: \");\n if (this._state !== null)\n this._stack = stack;\n return stack;\n }\n finally {\n stack_being_generated = false;\n }\n }\n },\n timeout: function (ms, msg) {\n var _this = this;\n return ms < Infinity ?\n new DexiePromise(function (resolve, reject) {\n var handle = setTimeout(function () { return reject(new exceptions.Timeout(msg)); }, ms);\n _this.then(resolve, reject).finally(clearTimeout.bind(null, handle));\n }) : this;\n }\n});\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag)\n setProp(DexiePromise.prototype, Symbol.toStringTag, 'Dexie.Promise');\nglobalPSD.env = snapShot();\nfunction Listener(onFulfilled, onRejected, resolve, reject, zone) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.resolve = resolve;\n this.reject = reject;\n this.psd = zone;\n}\nprops(DexiePromise, {\n all: function () {\n var values = getArrayOf.apply(null, arguments)\n .map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (values.length === 0)\n resolve([]);\n var remaining = values.length;\n values.forEach(function (a, i) { return DexiePromise.resolve(a).then(function (x) {\n values[i] = x;\n if (!--remaining)\n resolve(values);\n }, reject); });\n });\n },\n resolve: function (value) {\n if (value instanceof DexiePromise)\n return value;\n if (value && typeof value.then === 'function')\n return new DexiePromise(function (resolve, reject) {\n value.then(resolve, reject);\n });\n var rv = new DexiePromise(INTERNAL, true, value);\n linkToPreviousPromise(rv, currentFulfiller);\n return rv;\n },\n reject: PromiseReject,\n race: function () {\n var values = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n values.map(function (value) { return DexiePromise.resolve(value).then(resolve, reject); });\n });\n },\n PSD: {\n get: function () { return PSD; },\n set: function (value) { return PSD = value; }\n },\n totalEchoes: { get: function () { return totalEchoes; } },\n newPSD: newScope,\n usePSD: usePSD,\n scheduler: {\n get: function () { return asap; },\n set: function (value) { asap = value; }\n },\n rejectionMapper: {\n get: function () { return rejectionMapper; },\n set: function (value) { rejectionMapper = value; }\n },\n follow: function (fn, zoneProps) {\n return new DexiePromise(function (resolve, reject) {\n return newScope(function (resolve, reject) {\n var psd = PSD;\n psd.unhandleds = [];\n psd.onunhandled = reject;\n psd.finalize = callBoth(function () {\n var _this = this;\n run_at_end_of_this_or_next_physical_tick(function () {\n _this.unhandleds.length === 0 ? resolve() : reject(_this.unhandleds[0]);\n });\n }, psd.finalize);\n fn();\n }, zoneProps, resolve, reject);\n });\n }\n});\nif (NativePromise) {\n if (NativePromise.allSettled)\n setProp(DexiePromise, \"allSettled\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve) {\n if (possiblePromises.length === 0)\n resolve([]);\n var remaining = possiblePromises.length;\n var results = new Array(remaining);\n possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return results[i] = { status: \"fulfilled\", value: value }; }, function (reason) { return results[i] = { status: \"rejected\", reason: reason }; })\n .then(function () { return --remaining || resolve(results); }); });\n });\n });\n if (NativePromise.any && typeof AggregateError !== 'undefined')\n setProp(DexiePromise, \"any\", function () {\n var possiblePromises = getArrayOf.apply(null, arguments).map(onPossibleParallellAsync);\n return new DexiePromise(function (resolve, reject) {\n if (possiblePromises.length === 0)\n reject(new AggregateError([]));\n var remaining = possiblePromises.length;\n var failures = new Array(remaining);\n possiblePromises.forEach(function (p, i) { return DexiePromise.resolve(p).then(function (value) { return resolve(value); }, function (failure) {\n failures[i] = failure;\n if (!--remaining)\n reject(new AggregateError(failures));\n }); });\n });\n });\n}\nfunction executePromiseTask(promise, fn) {\n try {\n fn(function (value) {\n if (promise._state !== null)\n return;\n if (value === promise)\n throw new TypeError('A promise cannot be resolved with itself.');\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n if (value && typeof value.then === 'function') {\n executePromiseTask(promise, function (resolve, reject) {\n value instanceof DexiePromise ?\n value._then(resolve, reject) :\n value.then(resolve, reject);\n });\n }\n else {\n promise._state = true;\n promise._value = value;\n propagateAllListeners(promise);\n }\n if (shouldExecuteTick)\n endMicroTickScope();\n }, handleRejection.bind(null, promise));\n }\n catch (ex) {\n handleRejection(promise, ex);\n }\n}\nfunction handleRejection(promise, reason) {\n rejectingErrors.push(reason);\n if (promise._state !== null)\n return;\n var shouldExecuteTick = promise._lib && beginMicroTickScope();\n reason = rejectionMapper(reason);\n promise._state = false;\n promise._value = reason;\n debug && reason !== null && typeof reason === 'object' && !reason._promise && tryCatch(function () {\n var origProp = getPropertyDescriptor(reason, \"stack\");\n reason._promise = promise;\n setProp(reason, \"stack\", {\n get: function () {\n return stack_being_generated ?\n origProp && (origProp.get ?\n origProp.get.apply(reason) :\n origProp.value) :\n promise.stack;\n }\n });\n });\n addPossiblyUnhandledError(promise);\n propagateAllListeners(promise);\n if (shouldExecuteTick)\n endMicroTickScope();\n}\nfunction propagateAllListeners(promise) {\n var listeners = promise._listeners;\n promise._listeners = [];\n for (var i = 0, len = listeners.length; i < len; ++i) {\n propagateToListener(promise, listeners[i]);\n }\n var psd = promise._PSD;\n --psd.ref || psd.finalize();\n if (numScheduledCalls === 0) {\n ++numScheduledCalls;\n asap(function () {\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n }, []);\n }\n}\nfunction propagateToListener(promise, listener) {\n if (promise._state === null) {\n promise._listeners.push(listener);\n return;\n }\n var cb = promise._state ? listener.onFulfilled : listener.onRejected;\n if (cb === null) {\n return (promise._state ? listener.resolve : listener.reject)(promise._value);\n }\n ++listener.psd.ref;\n ++numScheduledCalls;\n asap(callListener, [cb, promise, listener]);\n}\nfunction callListener(cb, promise, listener) {\n try {\n currentFulfiller = promise;\n var ret, value = promise._value;\n if (promise._state) {\n ret = cb(value);\n }\n else {\n if (rejectingErrors.length)\n rejectingErrors = [];\n ret = cb(value);\n if (rejectingErrors.indexOf(value) === -1)\n markErrorAsHandled(promise);\n }\n listener.resolve(ret);\n }\n catch (e) {\n listener.reject(e);\n }\n finally {\n currentFulfiller = null;\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n --listener.psd.ref || listener.psd.finalize();\n }\n}\nfunction getStack(promise, stacks, limit) {\n if (stacks.length === limit)\n return stacks;\n var stack = \"\";\n if (promise._state === false) {\n var failure = promise._value, errorName, message;\n if (failure != null) {\n errorName = failure.name || \"Error\";\n message = failure.message || failure;\n stack = prettyStack(failure, 0);\n }\n else {\n errorName = failure;\n message = \"\";\n }\n stacks.push(errorName + (message ? \": \" + message : \"\") + stack);\n }\n if (debug) {\n stack = prettyStack(promise._stackHolder, 2);\n if (stack && stacks.indexOf(stack) === -1)\n stacks.push(stack);\n if (promise._prev)\n getStack(promise._prev, stacks, limit);\n }\n return stacks;\n}\nfunction linkToPreviousPromise(promise, prev) {\n var numPrev = prev ? prev._numPrev + 1 : 0;\n if (numPrev < LONG_STACKS_CLIP_LIMIT) {\n promise._prev = prev;\n promise._numPrev = numPrev;\n }\n}\nfunction physicalTick() {\n beginMicroTickScope() && endMicroTickScope();\n}\nfunction beginMicroTickScope() {\n var wasRootExec = isOutsideMicroTick;\n isOutsideMicroTick = false;\n needsNewPhysicalTick = false;\n return wasRootExec;\n}\nfunction endMicroTickScope() {\n var callbacks, i, l;\n do {\n while (microtickQueue.length > 0) {\n callbacks = microtickQueue;\n microtickQueue = [];\n l = callbacks.length;\n for (i = 0; i < l; ++i) {\n var item = callbacks[i];\n item[0].apply(null, item[1]);\n }\n }\n } while (microtickQueue.length > 0);\n isOutsideMicroTick = true;\n needsNewPhysicalTick = true;\n}\nfunction finalizePhysicalTick() {\n var unhandledErrs = unhandledErrors;\n unhandledErrors = [];\n unhandledErrs.forEach(function (p) {\n p._PSD.onunhandled.call(null, p._value, p);\n });\n var finalizers = tickFinalizers.slice(0);\n var i = finalizers.length;\n while (i)\n finalizers[--i]();\n}\nfunction run_at_end_of_this_or_next_physical_tick(fn) {\n function finalizer() {\n fn();\n tickFinalizers.splice(tickFinalizers.indexOf(finalizer), 1);\n }\n tickFinalizers.push(finalizer);\n ++numScheduledCalls;\n asap(function () {\n if (--numScheduledCalls === 0)\n finalizePhysicalTick();\n }, []);\n}\nfunction addPossiblyUnhandledError(promise) {\n if (!unhandledErrors.some(function (p) { return p._value === promise._value; }))\n unhandledErrors.push(promise);\n}\nfunction markErrorAsHandled(promise) {\n var i = unhandledErrors.length;\n while (i)\n if (unhandledErrors[--i]._value === promise._value) {\n unhandledErrors.splice(i, 1);\n return;\n }\n}\nfunction PromiseReject(reason) {\n return new DexiePromise(INTERNAL, false, reason);\n}\nfunction wrap(fn, errorCatcher) {\n var psd = PSD;\n return function () {\n var wasRootExec = beginMicroTickScope(), outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn.apply(this, arguments);\n }\n catch (e) {\n errorCatcher && errorCatcher(e);\n }\n finally {\n switchToZone(outerScope, false);\n if (wasRootExec)\n endMicroTickScope();\n }\n };\n}\nvar task = { awaits: 0, echoes: 0, id: 0 };\nvar taskCounter = 0;\nvar zoneStack = [];\nvar zoneEchoes = 0;\nvar totalEchoes = 0;\nvar zone_id_counter = 0;\nfunction newScope(fn, props, a1, a2) {\n var parent = PSD, psd = Object.create(parent);\n psd.parent = parent;\n psd.ref = 0;\n psd.global = false;\n psd.id = ++zone_id_counter;\n var globalEnv = globalPSD.env;\n psd.env = patchGlobalPromise ? {\n Promise: DexiePromise,\n PromiseProp: { value: DexiePromise, configurable: true, writable: true },\n all: DexiePromise.all,\n race: DexiePromise.race,\n allSettled: DexiePromise.allSettled,\n any: DexiePromise.any,\n resolve: DexiePromise.resolve,\n reject: DexiePromise.reject,\n nthen: getPatchedPromiseThen(globalEnv.nthen, psd),\n gthen: getPatchedPromiseThen(globalEnv.gthen, psd)\n } : {};\n if (props)\n extend(psd, props);\n ++parent.ref;\n psd.finalize = function () {\n --this.parent.ref || this.parent.finalize();\n };\n var rv = usePSD(psd, fn, a1, a2);\n if (psd.ref === 0)\n psd.finalize();\n return rv;\n}\nfunction incrementExpectedAwaits() {\n if (!task.id)\n task.id = ++taskCounter;\n ++task.awaits;\n task.echoes += ZONE_ECHO_LIMIT;\n return task.id;\n}\nfunction decrementExpectedAwaits() {\n if (!task.awaits)\n return false;\n if (--task.awaits === 0)\n task.id = 0;\n task.echoes = task.awaits * ZONE_ECHO_LIMIT;\n return true;\n}\nif (('' + nativePromiseThen).indexOf('[native code]') === -1) {\n incrementExpectedAwaits = decrementExpectedAwaits = nop;\n}\nfunction onPossibleParallellAsync(possiblePromise) {\n if (task.echoes && possiblePromise && possiblePromise.constructor === NativePromise) {\n incrementExpectedAwaits();\n return possiblePromise.then(function (x) {\n decrementExpectedAwaits();\n return x;\n }, function (e) {\n decrementExpectedAwaits();\n return rejection(e);\n });\n }\n return possiblePromise;\n}\nfunction zoneEnterEcho(targetZone) {\n ++totalEchoes;\n if (!task.echoes || --task.echoes === 0) {\n task.echoes = task.id = 0;\n }\n zoneStack.push(PSD);\n switchToZone(targetZone, true);\n}\nfunction zoneLeaveEcho() {\n var zone = zoneStack[zoneStack.length - 1];\n zoneStack.pop();\n switchToZone(zone, false);\n}\nfunction switchToZone(targetZone, bEnteringZone) {\n var currentZone = PSD;\n if (bEnteringZone ? task.echoes && (!zoneEchoes++ || targetZone !== PSD) : zoneEchoes && (!--zoneEchoes || targetZone !== PSD)) {\n enqueueNativeMicroTask(bEnteringZone ? zoneEnterEcho.bind(null, targetZone) : zoneLeaveEcho);\n }\n if (targetZone === PSD)\n return;\n PSD = targetZone;\n if (currentZone === globalPSD)\n globalPSD.env = snapShot();\n if (patchGlobalPromise) {\n var GlobalPromise_1 = globalPSD.env.Promise;\n var targetEnv = targetZone.env;\n nativePromiseProto.then = targetEnv.nthen;\n GlobalPromise_1.prototype.then = targetEnv.gthen;\n if (currentZone.global || targetZone.global) {\n Object.defineProperty(_global, 'Promise', targetEnv.PromiseProp);\n GlobalPromise_1.all = targetEnv.all;\n GlobalPromise_1.race = targetEnv.race;\n GlobalPromise_1.resolve = targetEnv.resolve;\n GlobalPromise_1.reject = targetEnv.reject;\n if (targetEnv.allSettled)\n GlobalPromise_1.allSettled = targetEnv.allSettled;\n if (targetEnv.any)\n GlobalPromise_1.any = targetEnv.any;\n }\n }\n}\nfunction snapShot() {\n var GlobalPromise = _global.Promise;\n return patchGlobalPromise ? {\n Promise: GlobalPromise,\n PromiseProp: Object.getOwnPropertyDescriptor(_global, \"Promise\"),\n all: GlobalPromise.all,\n race: GlobalPromise.race,\n allSettled: GlobalPromise.allSettled,\n any: GlobalPromise.any,\n resolve: GlobalPromise.resolve,\n reject: GlobalPromise.reject,\n nthen: nativePromiseProto.then,\n gthen: GlobalPromise.prototype.then\n } : {};\n}\nfunction usePSD(psd, fn, a1, a2, a3) {\n var outerScope = PSD;\n try {\n switchToZone(psd, true);\n return fn(a1, a2, a3);\n }\n finally {\n switchToZone(outerScope, false);\n }\n}\nfunction enqueueNativeMicroTask(job) {\n nativePromiseThen.call(resolvedNativePromise, job);\n}\nfunction nativeAwaitCompatibleWrap(fn, zone, possibleAwait, cleanup) {\n return typeof fn !== 'function' ? fn : function () {\n var outerZone = PSD;\n if (possibleAwait)\n incrementExpectedAwaits();\n switchToZone(zone, true);\n try {\n return fn.apply(this, arguments);\n }\n finally {\n switchToZone(outerZone, false);\n if (cleanup)\n enqueueNativeMicroTask(decrementExpectedAwaits);\n }\n };\n}\nfunction getPatchedPromiseThen(origThen, zone) {\n return function (onResolved, onRejected) {\n return origThen.call(this, nativeAwaitCompatibleWrap(onResolved, zone), nativeAwaitCompatibleWrap(onRejected, zone));\n };\n}\nvar UNHANDLEDREJECTION = \"unhandledrejection\";\nfunction globalError(err, promise) {\n var rv;\n try {\n rv = promise.onuncatched(err);\n }\n catch (e) { }\n if (rv !== false)\n try {\n var event, eventData = { promise: promise, reason: err };\n if (_global.document && document.createEvent) {\n event = document.createEvent('Event');\n event.initEvent(UNHANDLEDREJECTION, true, true);\n extend(event, eventData);\n }\n else if (_global.CustomEvent) {\n event = new CustomEvent(UNHANDLEDREJECTION, { detail: eventData });\n extend(event, eventData);\n }\n if (event && _global.dispatchEvent) {\n dispatchEvent(event);\n if (!_global.PromiseRejectionEvent && _global.onunhandledrejection)\n try {\n _global.onunhandledrejection(event);\n }\n catch (_) { }\n }\n if (debug && event && !event.defaultPrevented) {\n console.warn(\"Unhandled rejection: \" + (err.stack || err));\n }\n }\n catch (e) { }\n}\nvar rejection = DexiePromise.reject;\n\nfunction tempTransaction(db, mode, storeNames, fn) {\n if (!db.idbdb || (!db._state.openComplete && (!PSD.letThrough && !db._vip))) {\n if (db._state.openComplete) {\n return rejection(new exceptions.DatabaseClosed(db._state.dbOpenError));\n }\n if (!db._state.isBeingOpened) {\n if (!db._options.autoOpen)\n return rejection(new exceptions.DatabaseClosed());\n db.open().catch(nop);\n }\n return db._state.dbReadyPromise.then(function () { return tempTransaction(db, mode, storeNames, fn); });\n }\n else {\n var trans = db._createTransaction(mode, storeNames, db._dbSchema);\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n }\n catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(function () { return tempTransaction(db, mode, storeNames, fn); });\n }\n return rejection(ex);\n }\n return trans._promise(mode, function (resolve, reject) {\n return newScope(function () {\n PSD.trans = trans;\n return fn(resolve, reject, trans);\n });\n }).then(function (result) {\n return trans._completion.then(function () { return result; });\n });\n }\n}\n\nvar DEXIE_VERSION = '3.2.3';\nvar maxString = String.fromCharCode(65535);\nvar minKey = -Infinity;\nvar INVALID_KEY_ARGUMENT = \"Invalid key provided. Keys must be of type string, number, Date or Array.\";\nvar STRING_EXPECTED = \"String expected.\";\nvar connections = [];\nvar isIEOrEdge = typeof navigator !== 'undefined' && /(MSIE|Trident|Edge)/.test(navigator.userAgent);\nvar hasIEDeleteObjectStoreBug = isIEOrEdge;\nvar hangsOnDeleteLargeKeyRange = isIEOrEdge;\nvar dexieStackFrameFilter = function (frame) { return !/(dexie\\.js|dexie\\.min\\.js)/.test(frame); };\nvar DBNAMES_DB = '__dbnames';\nvar READONLY = 'readonly';\nvar READWRITE = 'readwrite';\n\nfunction combine(filter1, filter2) {\n return filter1 ?\n filter2 ?\n function () { return filter1.apply(this, arguments) && filter2.apply(this, arguments); } :\n filter1 :\n filter2;\n}\n\nvar AnyRange = {\n type: 3 ,\n lower: -Infinity,\n lowerOpen: false,\n upper: [[]],\n upperOpen: false\n};\n\nfunction workaroundForUndefinedPrimKey(keyPath) {\n return typeof keyPath === \"string\" && !/\\./.test(keyPath)\n ? function (obj) {\n if (obj[keyPath] === undefined && (keyPath in obj)) {\n obj = deepClone(obj);\n delete obj[keyPath];\n }\n return obj;\n }\n : function (obj) { return obj; };\n}\n\nvar Table = (function () {\n function Table() {\n }\n Table.prototype._trans = function (mode, fn, writeLocked) {\n var trans = this._tx || PSD.trans;\n var tableName = this.name;\n function checkTableInTransaction(resolve, reject, trans) {\n if (!trans.schema[tableName])\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n return fn(trans.idbtrans, trans);\n }\n var wasRootExec = beginMicroTickScope();\n try {\n return trans && trans.db === this.db ?\n trans === PSD.trans ?\n trans._promise(mode, checkTableInTransaction, writeLocked) :\n newScope(function () { return trans._promise(mode, checkTableInTransaction, writeLocked); }, { trans: trans, transless: PSD.transless || PSD }) :\n tempTransaction(this.db, mode, [this.name], checkTableInTransaction);\n }\n finally {\n if (wasRootExec)\n endMicroTickScope();\n }\n };\n Table.prototype.get = function (keyOrCrit, cb) {\n var _this = this;\n if (keyOrCrit && keyOrCrit.constructor === Object)\n return this.where(keyOrCrit).first(cb);\n return this._trans('readonly', function (trans) {\n return _this.core.get({ trans: trans, key: keyOrCrit })\n .then(function (res) { return _this.hook.reading.fire(res); });\n }).then(cb);\n };\n Table.prototype.where = function (indexOrCrit) {\n if (typeof indexOrCrit === 'string')\n return new this.db.WhereClause(this, indexOrCrit);\n if (isArray(indexOrCrit))\n return new this.db.WhereClause(this, \"[\" + indexOrCrit.join('+') + \"]\");\n var keyPaths = keys(indexOrCrit);\n if (keyPaths.length === 1)\n return this\n .where(keyPaths[0])\n .equals(indexOrCrit[keyPaths[0]]);\n var compoundIndex = this.schema.indexes.concat(this.schema.primKey).filter(function (ix) {\n return ix.compound &&\n keyPaths.every(function (keyPath) { return ix.keyPath.indexOf(keyPath) >= 0; }) &&\n ix.keyPath.every(function (keyPath) { return keyPaths.indexOf(keyPath) >= 0; });\n })[0];\n if (compoundIndex && this.db._maxKey !== maxString)\n return this\n .where(compoundIndex.name)\n .equals(compoundIndex.keyPath.map(function (kp) { return indexOrCrit[kp]; }));\n if (!compoundIndex && debug)\n console.warn(\"The query \" + JSON.stringify(indexOrCrit) + \" on \" + this.name + \" would benefit of a \" +\n (\"compound index [\" + keyPaths.join('+') + \"]\"));\n var idxByName = this.schema.idxByName;\n var idb = this.db._deps.indexedDB;\n function equals(a, b) {\n try {\n return idb.cmp(a, b) === 0;\n }\n catch (e) {\n return false;\n }\n }\n var _a = keyPaths.reduce(function (_a, keyPath) {\n var prevIndex = _a[0], prevFilterFn = _a[1];\n var index = idxByName[keyPath];\n var value = indexOrCrit[keyPath];\n return [\n prevIndex || index,\n prevIndex || !index ?\n combine(prevFilterFn, index && index.multi ?\n function (x) {\n var prop = getByKeyPath(x, keyPath);\n return isArray(prop) && prop.some(function (item) { return equals(value, item); });\n } : function (x) { return equals(value, getByKeyPath(x, keyPath)); })\n : prevFilterFn\n ];\n }, [null, null]), idx = _a[0], filterFunction = _a[1];\n return idx ?\n this.where(idx.name).equals(indexOrCrit[idx.keyPath])\n .filter(filterFunction) :\n compoundIndex ?\n this.filter(filterFunction) :\n this.where(keyPaths).equals('');\n };\n Table.prototype.filter = function (filterFunction) {\n return this.toCollection().and(filterFunction);\n };\n Table.prototype.count = function (thenShortcut) {\n return this.toCollection().count(thenShortcut);\n };\n Table.prototype.offset = function (offset) {\n return this.toCollection().offset(offset);\n };\n Table.prototype.limit = function (numRows) {\n return this.toCollection().limit(numRows);\n };\n Table.prototype.each = function (callback) {\n return this.toCollection().each(callback);\n };\n Table.prototype.toArray = function (thenShortcut) {\n return this.toCollection().toArray(thenShortcut);\n };\n Table.prototype.toCollection = function () {\n return new this.db.Collection(new this.db.WhereClause(this));\n };\n Table.prototype.orderBy = function (index) {\n return new this.db.Collection(new this.db.WhereClause(this, isArray(index) ?\n \"[\" + index.join('+') + \"]\" :\n index));\n };\n Table.prototype.reverse = function () {\n return this.toCollection().reverse();\n };\n Table.prototype.mapToClass = function (constructor) {\n this.schema.mappedClass = constructor;\n var readHook = function (obj) {\n if (!obj)\n return obj;\n var res = Object.create(constructor.prototype);\n for (var m in obj)\n if (hasOwn(obj, m))\n try {\n res[m] = obj[m];\n }\n catch (_) { }\n return res;\n };\n if (this.schema.readHook) {\n this.hook.reading.unsubscribe(this.schema.readHook);\n }\n this.schema.readHook = readHook;\n this.hook(\"reading\", readHook);\n return constructor;\n };\n Table.prototype.defineClass = function () {\n function Class(content) {\n extend(this, content);\n }\n return this.mapToClass(Class);\n };\n Table.prototype.add = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({ trans: trans, type: 'add', keys: key != null ? [key] : null, values: [objToAdd] });\n }).then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n .then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n }\n catch (_) { }\n }\n return lastResult;\n });\n };\n Table.prototype.update = function (keyOrObject, modifications) {\n if (typeof keyOrObject === 'object' && !isArray(keyOrObject)) {\n var key = getByKeyPath(keyOrObject, this.schema.primKey.keyPath);\n if (key === undefined)\n return rejection(new exceptions.InvalidArgument(\"Given object does not contain its primary key\"));\n try {\n if (typeof modifications !== \"function\") {\n keys(modifications).forEach(function (keyPath) {\n setByKeyPath(keyOrObject, keyPath, modifications[keyPath]);\n });\n }\n else {\n modifications(keyOrObject, { value: keyOrObject, primKey: key });\n }\n }\n catch (_a) {\n }\n return this.where(\":id\").equals(key).modify(modifications);\n }\n else {\n return this.where(\":id\").equals(keyOrObject).modify(modifications);\n }\n };\n Table.prototype.put = function (obj, key) {\n var _this = this;\n var _a = this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n var objToAdd = obj;\n if (keyPath && auto) {\n objToAdd = workaroundForUndefinedPrimKey(keyPath)(obj);\n }\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'put', values: [objToAdd], keys: key != null ? [key] : null }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : res.lastResult; })\n .then(function (lastResult) {\n if (keyPath) {\n try {\n setByKeyPath(obj, keyPath, lastResult);\n }\n catch (_) { }\n }\n return lastResult;\n });\n };\n Table.prototype.delete = function (key) {\n var _this = this;\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'delete', keys: [key] }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n };\n Table.prototype.clear = function () {\n var _this = this;\n return this._trans('readwrite', function (trans) { return _this.core.mutate({ trans: trans, type: 'deleteRange', range: AnyRange }); })\n .then(function (res) { return res.numFailures ? DexiePromise.reject(res.failures[0]) : undefined; });\n };\n Table.prototype.bulkGet = function (keys) {\n var _this = this;\n return this._trans('readonly', function (trans) {\n return _this.core.getMany({\n keys: keys,\n trans: trans\n }).then(function (result) { return result.map(function (res) { return _this.hook.reading.fire(res); }); });\n });\n };\n Table.prototype.bulkAdd = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkAdd(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToAdd = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return _this.core.mutate({ trans: trans, type: 'add', keys: keys, values: objectsToAdd, wantResults: wantResults })\n .then(function (_a) {\n var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0)\n return result;\n throw new BulkError(_this.name + \".bulkAdd(): \" + numFailures + \" of \" + numObjects + \" operations failed\", failures);\n });\n });\n };\n Table.prototype.bulkPut = function (objects, keysOrOptions, options) {\n var _this = this;\n var keys = Array.isArray(keysOrOptions) ? keysOrOptions : undefined;\n options = options || (keys ? undefined : keysOrOptions);\n var wantResults = options ? options.allKeys : undefined;\n return this._trans('readwrite', function (trans) {\n var _a = _this.schema.primKey, auto = _a.auto, keyPath = _a.keyPath;\n if (keyPath && keys)\n throw new exceptions.InvalidArgument(\"bulkPut(): keys argument invalid on tables with inbound keys\");\n if (keys && keys.length !== objects.length)\n throw new exceptions.InvalidArgument(\"Arguments objects and keys must have the same length\");\n var numObjects = objects.length;\n var objectsToPut = keyPath && auto ?\n objects.map(workaroundForUndefinedPrimKey(keyPath)) :\n objects;\n return _this.core.mutate({ trans: trans, type: 'put', keys: keys, values: objectsToPut, wantResults: wantResults })\n .then(function (_a) {\n var numFailures = _a.numFailures, results = _a.results, lastResult = _a.lastResult, failures = _a.failures;\n var result = wantResults ? results : lastResult;\n if (numFailures === 0)\n return result;\n throw new BulkError(_this.name + \".bulkPut(): \" + numFailures + \" of \" + numObjects + \" operations failed\", failures);\n });\n });\n };\n Table.prototype.bulkDelete = function (keys) {\n var _this = this;\n var numKeys = keys.length;\n return this._trans('readwrite', function (trans) {\n return _this.core.mutate({ trans: trans, type: 'delete', keys: keys });\n }).then(function (_a) {\n var numFailures = _a.numFailures, lastResult = _a.lastResult, failures = _a.failures;\n if (numFailures === 0)\n return lastResult;\n throw new BulkError(_this.name + \".bulkDelete(): \" + numFailures + \" of \" + numKeys + \" operations failed\", failures);\n });\n };\n return Table;\n}());\n\nfunction Events(ctx) {\n var evs = {};\n var rv = function (eventName, subscriber) {\n if (subscriber) {\n var i = arguments.length, args = new Array(i - 1);\n while (--i)\n args[i - 1] = arguments[i];\n evs[eventName].subscribe.apply(null, args);\n return ctx;\n }\n else if (typeof (eventName) === 'string') {\n return evs[eventName];\n }\n };\n rv.addEventType = add;\n for (var i = 1, l = arguments.length; i < l; ++i) {\n add(arguments[i]);\n }\n return rv;\n function add(eventName, chainFunction, defaultFunction) {\n if (typeof eventName === 'object')\n return addConfiguredEvents(eventName);\n if (!chainFunction)\n chainFunction = reverseStoppableEventChain;\n if (!defaultFunction)\n defaultFunction = nop;\n var context = {\n subscribers: [],\n fire: defaultFunction,\n subscribe: function (cb) {\n if (context.subscribers.indexOf(cb) === -1) {\n context.subscribers.push(cb);\n context.fire = chainFunction(context.fire, cb);\n }\n },\n unsubscribe: function (cb) {\n context.subscribers = context.subscribers.filter(function (fn) { return fn !== cb; });\n context.fire = context.subscribers.reduce(chainFunction, defaultFunction);\n }\n };\n evs[eventName] = rv[eventName] = context;\n return context;\n }\n function addConfiguredEvents(cfg) {\n keys(cfg).forEach(function (eventName) {\n var args = cfg[eventName];\n if (isArray(args)) {\n add(eventName, cfg[eventName][0], cfg[eventName][1]);\n }\n else if (args === 'asap') {\n var context = add(eventName, mirror, function fire() {\n var i = arguments.length, args = new Array(i);\n while (i--)\n args[i] = arguments[i];\n context.subscribers.forEach(function (fn) {\n asap$1(function fireEvent() {\n fn.apply(null, args);\n });\n });\n });\n }\n else\n throw new exceptions.InvalidArgument(\"Invalid event config\");\n });\n }\n}\n\nfunction makeClassConstructor(prototype, constructor) {\n derive(constructor).from({ prototype: prototype });\n return constructor;\n}\n\nfunction createTableConstructor(db) {\n return makeClassConstructor(Table.prototype, function Table(name, tableSchema, trans) {\n this.db = db;\n this._tx = trans;\n this.name = name;\n this.schema = tableSchema;\n this.hook = db._allTables[name] ? db._allTables[name].hook : Events(null, {\n \"creating\": [hookCreatingChain, nop],\n \"reading\": [pureFunctionChain, mirror],\n \"updating\": [hookUpdatingChain, nop],\n \"deleting\": [hookDeletingChain, nop]\n });\n });\n}\n\nfunction isPlainKeyRange(ctx, ignoreLimitFilter) {\n return !(ctx.filter || ctx.algorithm || ctx.or) &&\n (ignoreLimitFilter ? ctx.justLimit : !ctx.replayFilter);\n}\nfunction addFilter(ctx, fn) {\n ctx.filter = combine(ctx.filter, fn);\n}\nfunction addReplayFilter(ctx, factory, isLimitFilter) {\n var curr = ctx.replayFilter;\n ctx.replayFilter = curr ? function () { return combine(curr(), factory()); } : factory;\n ctx.justLimit = isLimitFilter && !curr;\n}\nfunction addMatchFilter(ctx, fn) {\n ctx.isMatch = combine(ctx.isMatch, fn);\n}\nfunction getIndexOrStore(ctx, coreSchema) {\n if (ctx.isPrimKey)\n return coreSchema.primaryKey;\n var index = coreSchema.getIndexByKeyPath(ctx.index);\n if (!index)\n throw new exceptions.Schema(\"KeyPath \" + ctx.index + \" on object store \" + coreSchema.name + \" is not indexed\");\n return index;\n}\nfunction openCursor(ctx, coreTable, trans) {\n var index = getIndexOrStore(ctx, coreTable.schema);\n return coreTable.openCursor({\n trans: trans,\n values: !ctx.keysOnly,\n reverse: ctx.dir === 'prev',\n unique: !!ctx.unique,\n query: {\n index: index,\n range: ctx.range\n }\n });\n}\nfunction iter(ctx, fn, coreTrans, coreTable) {\n var filter = ctx.replayFilter ? combine(ctx.filter, ctx.replayFilter()) : ctx.filter;\n if (!ctx.or) {\n return iterate(openCursor(ctx, coreTable, coreTrans), combine(ctx.algorithm, filter), fn, !ctx.keysOnly && ctx.valueMapper);\n }\n else {\n var set_1 = {};\n var union = function (item, cursor, advance) {\n if (!filter || filter(cursor, advance, function (result) { return cursor.stop(result); }, function (err) { return cursor.fail(err); })) {\n var primaryKey = cursor.primaryKey;\n var key = '' + primaryKey;\n if (key === '[object ArrayBuffer]')\n key = '' + new Uint8Array(primaryKey);\n if (!hasOwn(set_1, key)) {\n set_1[key] = true;\n fn(item, cursor, advance);\n }\n }\n };\n return Promise.all([\n ctx.or._iterate(union, coreTrans),\n iterate(openCursor(ctx, coreTable, coreTrans), ctx.algorithm, union, !ctx.keysOnly && ctx.valueMapper)\n ]);\n }\n}\nfunction iterate(cursorPromise, filter, fn, valueMapper) {\n var mappedFn = valueMapper ? function (x, c, a) { return fn(valueMapper(x), c, a); } : fn;\n var wrappedFn = wrap(mappedFn);\n return cursorPromise.then(function (cursor) {\n if (cursor) {\n return cursor.start(function () {\n var c = function () { return cursor.continue(); };\n if (!filter || filter(cursor, function (advancer) { return c = advancer; }, function (val) { cursor.stop(val); c = nop; }, function (e) { cursor.fail(e); c = nop; }))\n wrappedFn(cursor.value, cursor, function (advancer) { return c = advancer; });\n c();\n });\n }\n });\n}\n\nfunction cmp(a, b) {\n try {\n var ta = type(a);\n var tb = type(b);\n if (ta !== tb) {\n if (ta === 'Array')\n return 1;\n if (tb === 'Array')\n return -1;\n if (ta === 'binary')\n return 1;\n if (tb === 'binary')\n return -1;\n if (ta === 'string')\n return 1;\n if (tb === 'string')\n return -1;\n if (ta === 'Date')\n return 1;\n if (tb !== 'Date')\n return NaN;\n return -1;\n }\n switch (ta) {\n case 'number':\n case 'Date':\n case 'string':\n return a > b ? 1 : a < b ? -1 : 0;\n case 'binary': {\n return compareUint8Arrays(getUint8Array(a), getUint8Array(b));\n }\n case 'Array':\n return compareArrays(a, b);\n }\n }\n catch (_a) { }\n return NaN;\n}\nfunction compareArrays(a, b) {\n var al = a.length;\n var bl = b.length;\n var l = al < bl ? al : bl;\n for (var i = 0; i < l; ++i) {\n var res = cmp(a[i], b[i]);\n if (res !== 0)\n return res;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\nfunction compareUint8Arrays(a, b) {\n var al = a.length;\n var bl = b.length;\n var l = al < bl ? al : bl;\n for (var i = 0; i < l; ++i) {\n if (a[i] !== b[i])\n return a[i] < b[i] ? -1 : 1;\n }\n return al === bl ? 0 : al < bl ? -1 : 1;\n}\nfunction type(x) {\n var t = typeof x;\n if (t !== 'object')\n return t;\n if (ArrayBuffer.isView(x))\n return 'binary';\n var tsTag = toStringTag(x);\n return tsTag === 'ArrayBuffer' ? 'binary' : tsTag;\n}\nfunction getUint8Array(a) {\n if (a instanceof Uint8Array)\n return a;\n if (ArrayBuffer.isView(a))\n return new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n return new Uint8Array(a);\n}\n\nvar Collection = (function () {\n function Collection() {\n }\n Collection.prototype._read = function (fn, cb) {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readonly', fn).then(cb);\n };\n Collection.prototype._write = function (fn) {\n var ctx = this._ctx;\n return ctx.error ?\n ctx.table._trans(null, rejection.bind(null, ctx.error)) :\n ctx.table._trans('readwrite', fn, \"locked\");\n };\n Collection.prototype._addAlgorithm = function (fn) {\n var ctx = this._ctx;\n ctx.algorithm = combine(ctx.algorithm, fn);\n };\n Collection.prototype._iterate = function (fn, coreTrans) {\n return iter(this._ctx, fn, coreTrans, this._ctx.table.core);\n };\n Collection.prototype.clone = function (props) {\n var rv = Object.create(this.constructor.prototype), ctx = Object.create(this._ctx);\n if (props)\n extend(ctx, props);\n rv._ctx = ctx;\n return rv;\n };\n Collection.prototype.raw = function () {\n this._ctx.valueMapper = null;\n return this;\n };\n Collection.prototype.each = function (fn) {\n var ctx = this._ctx;\n return this._read(function (trans) { return iter(ctx, fn, trans, ctx.table.core); });\n };\n Collection.prototype.count = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n var coreTable = ctx.table.core;\n if (isPlainKeyRange(ctx, true)) {\n return coreTable.count({\n trans: trans,\n query: {\n index: getIndexOrStore(ctx, coreTable.schema),\n range: ctx.range\n }\n }).then(function (count) { return Math.min(count, ctx.limit); });\n }\n else {\n var count = 0;\n return iter(ctx, function () { ++count; return false; }, trans, coreTable)\n .then(function () { return count; });\n }\n }).then(cb);\n };\n Collection.prototype.sortBy = function (keyPath, cb) {\n var parts = keyPath.split('.').reverse(), lastPart = parts[0], lastIndex = parts.length - 1;\n function getval(obj, i) {\n if (i)\n return getval(obj[parts[i]], i - 1);\n return obj[lastPart];\n }\n var order = this._ctx.dir === \"next\" ? 1 : -1;\n function sorter(a, b) {\n var aVal = getval(a, lastIndex), bVal = getval(b, lastIndex);\n return aVal < bVal ? -order : aVal > bVal ? order : 0;\n }\n return this.toArray(function (a) {\n return a.sort(sorter);\n }).then(cb);\n };\n Collection.prototype.toArray = function (cb) {\n var _this = this;\n return this._read(function (trans) {\n var ctx = _this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n var valueMapper_1 = ctx.valueMapper;\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n limit: ctx.limit,\n values: true,\n query: {\n index: index,\n range: ctx.range\n }\n }).then(function (_a) {\n var result = _a.result;\n return valueMapper_1 ? result.map(valueMapper_1) : result;\n });\n }\n else {\n var a_1 = [];\n return iter(ctx, function (item) { return a_1.push(item); }, trans, ctx.table.core).then(function () { return a_1; });\n }\n }, cb);\n };\n Collection.prototype.offset = function (offset) {\n var ctx = this._ctx;\n if (offset <= 0)\n return this;\n ctx.offset += offset;\n if (isPlainKeyRange(ctx)) {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function (cursor, advance) {\n if (offsetLeft === 0)\n return true;\n if (offsetLeft === 1) {\n --offsetLeft;\n return false;\n }\n advance(function () {\n cursor.advance(offsetLeft);\n offsetLeft = 0;\n });\n return false;\n };\n });\n }\n else {\n addReplayFilter(ctx, function () {\n var offsetLeft = offset;\n return function () { return (--offsetLeft < 0); };\n });\n }\n return this;\n };\n Collection.prototype.limit = function (numRows) {\n this._ctx.limit = Math.min(this._ctx.limit, numRows);\n addReplayFilter(this._ctx, function () {\n var rowsLeft = numRows;\n return function (cursor, advance, resolve) {\n if (--rowsLeft <= 0)\n advance(resolve);\n return rowsLeft >= 0;\n };\n }, true);\n return this;\n };\n Collection.prototype.until = function (filterFunction, bIncludeStopEntry) {\n addFilter(this._ctx, function (cursor, advance, resolve) {\n if (filterFunction(cursor.value)) {\n advance(resolve);\n return bIncludeStopEntry;\n }\n else {\n return true;\n }\n });\n return this;\n };\n Collection.prototype.first = function (cb) {\n return this.limit(1).toArray(function (a) { return a[0]; }).then(cb);\n };\n Collection.prototype.last = function (cb) {\n return this.reverse().first(cb);\n };\n Collection.prototype.filter = function (filterFunction) {\n addFilter(this._ctx, function (cursor) {\n return filterFunction(cursor.value);\n });\n addMatchFilter(this._ctx, filterFunction);\n return this;\n };\n Collection.prototype.and = function (filter) {\n return this.filter(filter);\n };\n Collection.prototype.or = function (indexName) {\n return new this.db.WhereClause(this._ctx.table, indexName, this);\n };\n Collection.prototype.reverse = function () {\n this._ctx.dir = (this._ctx.dir === \"prev\" ? \"next\" : \"prev\");\n if (this._ondirectionchange)\n this._ondirectionchange(this._ctx.dir);\n return this;\n };\n Collection.prototype.desc = function () {\n return this.reverse();\n };\n Collection.prototype.eachKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.key, cursor); });\n };\n Collection.prototype.eachUniqueKey = function (cb) {\n this._ctx.unique = \"unique\";\n return this.eachKey(cb);\n };\n Collection.prototype.eachPrimaryKey = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n return this.each(function (val, cursor) { cb(cursor.primaryKey, cursor); });\n };\n Collection.prototype.keys = function (cb) {\n var ctx = this._ctx;\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.key);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.primaryKeys = function (cb) {\n var ctx = this._ctx;\n if (ctx.dir === 'next' && isPlainKeyRange(ctx, true) && ctx.limit > 0) {\n return this._read(function (trans) {\n var index = getIndexOrStore(ctx, ctx.table.core.schema);\n return ctx.table.core.query({\n trans: trans,\n values: false,\n limit: ctx.limit,\n query: {\n index: index,\n range: ctx.range\n }\n });\n }).then(function (_a) {\n var result = _a.result;\n return result;\n }).then(cb);\n }\n ctx.keysOnly = !ctx.isMatch;\n var a = [];\n return this.each(function (item, cursor) {\n a.push(cursor.primaryKey);\n }).then(function () {\n return a;\n }).then(cb);\n };\n Collection.prototype.uniqueKeys = function (cb) {\n this._ctx.unique = \"unique\";\n return this.keys(cb);\n };\n Collection.prototype.firstKey = function (cb) {\n return this.limit(1).keys(function (a) { return a[0]; }).then(cb);\n };\n Collection.prototype.lastKey = function (cb) {\n return this.reverse().firstKey(cb);\n };\n Collection.prototype.distinct = function () {\n var ctx = this._ctx, idx = ctx.index && ctx.table.schema.idxByName[ctx.index];\n if (!idx || !idx.multi)\n return this;\n var set = {};\n addFilter(this._ctx, function (cursor) {\n var strKey = cursor.primaryKey.toString();\n var found = hasOwn(set, strKey);\n set[strKey] = true;\n return !found;\n });\n return this;\n };\n Collection.prototype.modify = function (changes) {\n var _this = this;\n var ctx = this._ctx;\n return this._write(function (trans) {\n var modifyer;\n if (typeof changes === 'function') {\n modifyer = changes;\n }\n else {\n var keyPaths = keys(changes);\n var numKeys = keyPaths.length;\n modifyer = function (item) {\n var anythingModified = false;\n for (var i = 0; i < numKeys; ++i) {\n var keyPath = keyPaths[i], val = changes[keyPath];\n if (getByKeyPath(item, keyPath) !== val) {\n setByKeyPath(item, keyPath, val);\n anythingModified = true;\n }\n }\n return anythingModified;\n };\n }\n var coreTable = ctx.table.core;\n var _a = coreTable.schema.primaryKey, outbound = _a.outbound, extractKey = _a.extractKey;\n var limit = _this.db._options.modifyChunkSize || 200;\n var totalFailures = [];\n var successCount = 0;\n var failedKeys = [];\n var applyMutateResult = function (expectedCount, res) {\n var failures = res.failures, numFailures = res.numFailures;\n successCount += expectedCount - numFailures;\n for (var _i = 0, _a = keys(failures); _i < _a.length; _i++) {\n var pos = _a[_i];\n totalFailures.push(failures[pos]);\n }\n };\n return _this.clone().primaryKeys().then(function (keys) {\n var nextChunk = function (offset) {\n var count = Math.min(limit, keys.length - offset);\n return coreTable.getMany({\n trans: trans,\n keys: keys.slice(offset, offset + count),\n cache: \"immutable\"\n }).then(function (values) {\n var addValues = [];\n var putValues = [];\n var putKeys = outbound ? [] : null;\n var deleteKeys = [];\n for (var i = 0; i < count; ++i) {\n var origValue = values[i];\n var ctx_1 = {\n value: deepClone(origValue),\n primKey: keys[offset + i]\n };\n if (modifyer.call(ctx_1, ctx_1.value, ctx_1) !== false) {\n if (ctx_1.value == null) {\n deleteKeys.push(keys[offset + i]);\n }\n else if (!outbound && cmp(extractKey(origValue), extractKey(ctx_1.value)) !== 0) {\n deleteKeys.push(keys[offset + i]);\n addValues.push(ctx_1.value);\n }\n else {\n putValues.push(ctx_1.value);\n if (outbound)\n putKeys.push(keys[offset + i]);\n }\n }\n }\n var criteria = isPlainKeyRange(ctx) &&\n ctx.limit === Infinity &&\n (typeof changes !== 'function' || changes === deleteCallback) && {\n index: ctx.index,\n range: ctx.range\n };\n return Promise.resolve(addValues.length > 0 &&\n coreTable.mutate({ trans: trans, type: 'add', values: addValues })\n .then(function (res) {\n for (var pos in res.failures) {\n deleteKeys.splice(parseInt(pos), 1);\n }\n applyMutateResult(addValues.length, res);\n })).then(function () { return (putValues.length > 0 || (criteria && typeof changes === 'object')) &&\n coreTable.mutate({\n trans: trans,\n type: 'put',\n keys: putKeys,\n values: putValues,\n criteria: criteria,\n changeSpec: typeof changes !== 'function'\n && changes\n }).then(function (res) { return applyMutateResult(putValues.length, res); }); }).then(function () { return (deleteKeys.length > 0 || (criteria && changes === deleteCallback)) &&\n coreTable.mutate({\n trans: trans,\n type: 'delete',\n keys: deleteKeys,\n criteria: criteria\n }).then(function (res) { return applyMutateResult(deleteKeys.length, res); }); }).then(function () {\n return keys.length > offset + count && nextChunk(offset + limit);\n });\n });\n };\n return nextChunk(0).then(function () {\n if (totalFailures.length > 0)\n throw new ModifyError(\"Error modifying one or more objects\", totalFailures, successCount, failedKeys);\n return keys.length;\n });\n });\n });\n };\n Collection.prototype.delete = function () {\n var ctx = this._ctx, range = ctx.range;\n if (isPlainKeyRange(ctx) &&\n ((ctx.isPrimKey && !hangsOnDeleteLargeKeyRange) || range.type === 3 ))\n {\n return this._write(function (trans) {\n var primaryKey = ctx.table.core.schema.primaryKey;\n var coreRange = range;\n return ctx.table.core.count({ trans: trans, query: { index: primaryKey, range: coreRange } }).then(function (count) {\n return ctx.table.core.mutate({ trans: trans, type: 'deleteRange', range: coreRange })\n .then(function (_a) {\n var failures = _a.failures; _a.lastResult; _a.results; var numFailures = _a.numFailures;\n if (numFailures)\n throw new ModifyError(\"Could not delete some values\", Object.keys(failures).map(function (pos) { return failures[pos]; }), count - numFailures);\n return count - numFailures;\n });\n });\n });\n }\n return this.modify(deleteCallback);\n };\n return Collection;\n}());\nvar deleteCallback = function (value, ctx) { return ctx.value = null; };\n\nfunction createCollectionConstructor(db) {\n return makeClassConstructor(Collection.prototype, function Collection(whereClause, keyRangeGenerator) {\n this.db = db;\n var keyRange = AnyRange, error = null;\n if (keyRangeGenerator)\n try {\n keyRange = keyRangeGenerator();\n }\n catch (ex) {\n error = ex;\n }\n var whereCtx = whereClause._ctx;\n var table = whereCtx.table;\n var readingHook = table.hook.reading.fire;\n this._ctx = {\n table: table,\n index: whereCtx.index,\n isPrimKey: (!whereCtx.index || (table.schema.primKey.keyPath && whereCtx.index === table.schema.primKey.name)),\n range: keyRange,\n keysOnly: false,\n dir: \"next\",\n unique: \"\",\n algorithm: null,\n filter: null,\n replayFilter: null,\n justLimit: true,\n isMatch: null,\n offset: 0,\n limit: Infinity,\n error: error,\n or: whereCtx.or,\n valueMapper: readingHook !== mirror ? readingHook : null\n };\n });\n}\n\nfunction simpleCompare(a, b) {\n return a < b ? -1 : a === b ? 0 : 1;\n}\nfunction simpleCompareReverse(a, b) {\n return a > b ? -1 : a === b ? 0 : 1;\n}\n\nfunction fail(collectionOrWhereClause, err, T) {\n var collection = collectionOrWhereClause instanceof WhereClause ?\n new collectionOrWhereClause.Collection(collectionOrWhereClause) :\n collectionOrWhereClause;\n collection._ctx.error = T ? new T(err) : new TypeError(err);\n return collection;\n}\nfunction emptyCollection(whereClause) {\n return new whereClause.Collection(whereClause, function () { return rangeEqual(\"\"); }).limit(0);\n}\nfunction upperFactory(dir) {\n return dir === \"next\" ?\n function (s) { return s.toUpperCase(); } :\n function (s) { return s.toLowerCase(); };\n}\nfunction lowerFactory(dir) {\n return dir === \"next\" ?\n function (s) { return s.toLowerCase(); } :\n function (s) { return s.toUpperCase(); };\n}\nfunction nextCasing(key, lowerKey, upperNeedle, lowerNeedle, cmp, dir) {\n var length = Math.min(key.length, lowerNeedle.length);\n var llp = -1;\n for (var i = 0; i < length; ++i) {\n var lwrKeyChar = lowerKey[i];\n if (lwrKeyChar !== lowerNeedle[i]) {\n if (cmp(key[i], upperNeedle[i]) < 0)\n return key.substr(0, i) + upperNeedle[i] + upperNeedle.substr(i + 1);\n if (cmp(key[i], lowerNeedle[i]) < 0)\n return key.substr(0, i) + lowerNeedle[i] + upperNeedle.substr(i + 1);\n if (llp >= 0)\n return key.substr(0, llp) + lowerKey[llp] + upperNeedle.substr(llp + 1);\n return null;\n }\n if (cmp(key[i], lwrKeyChar) < 0)\n llp = i;\n }\n if (length < lowerNeedle.length && dir === \"next\")\n return key + upperNeedle.substr(key.length);\n if (length < key.length && dir === \"prev\")\n return key.substr(0, upperNeedle.length);\n return (llp < 0 ? null : key.substr(0, llp) + lowerNeedle[llp] + upperNeedle.substr(llp + 1));\n}\nfunction addIgnoreCaseAlgorithm(whereClause, match, needles, suffix) {\n var upper, lower, compare, upperNeedles, lowerNeedles, direction, nextKeySuffix, needlesLen = needles.length;\n if (!needles.every(function (s) { return typeof s === 'string'; })) {\n return fail(whereClause, STRING_EXPECTED);\n }\n function initDirection(dir) {\n upper = upperFactory(dir);\n lower = lowerFactory(dir);\n compare = (dir === \"next\" ? simpleCompare : simpleCompareReverse);\n var needleBounds = needles.map(function (needle) {\n return { lower: lower(needle), upper: upper(needle) };\n }).sort(function (a, b) {\n return compare(a.lower, b.lower);\n });\n upperNeedles = needleBounds.map(function (nb) { return nb.upper; });\n lowerNeedles = needleBounds.map(function (nb) { return nb.lower; });\n direction = dir;\n nextKeySuffix = (dir === \"next\" ? \"\" : suffix);\n }\n initDirection(\"next\");\n var c = new whereClause.Collection(whereClause, function () { return createRange(upperNeedles[0], lowerNeedles[needlesLen - 1] + suffix); });\n c._ondirectionchange = function (direction) {\n initDirection(direction);\n };\n var firstPossibleNeedle = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n if (typeof key !== 'string')\n return false;\n var lowerKey = lower(key);\n if (match(lowerKey, lowerNeedles, firstPossibleNeedle)) {\n return true;\n }\n else {\n var lowestPossibleCasing = null;\n for (var i = firstPossibleNeedle; i < needlesLen; ++i) {\n var casing = nextCasing(key, lowerKey, upperNeedles[i], lowerNeedles[i], compare, direction);\n if (casing === null && lowestPossibleCasing === null)\n firstPossibleNeedle = i + 1;\n else if (lowestPossibleCasing === null || compare(lowestPossibleCasing, casing) > 0) {\n lowestPossibleCasing = casing;\n }\n }\n if (lowestPossibleCasing !== null) {\n advance(function () { cursor.continue(lowestPossibleCasing + nextKeySuffix); });\n }\n else {\n advance(resolve);\n }\n return false;\n }\n });\n return c;\n}\nfunction createRange(lower, upper, lowerOpen, upperOpen) {\n return {\n type: 2 ,\n lower: lower,\n upper: upper,\n lowerOpen: lowerOpen,\n upperOpen: upperOpen\n };\n}\nfunction rangeEqual(value) {\n return {\n type: 1 ,\n lower: value,\n upper: value\n };\n}\n\nvar WhereClause = (function () {\n function WhereClause() {\n }\n Object.defineProperty(WhereClause.prototype, \"Collection\", {\n get: function () {\n return this._ctx.table.db.Collection;\n },\n enumerable: false,\n configurable: true\n });\n WhereClause.prototype.between = function (lower, upper, includeLower, includeUpper) {\n includeLower = includeLower !== false;\n includeUpper = includeUpper === true;\n try {\n if ((this._cmp(lower, upper) > 0) ||\n (this._cmp(lower, upper) === 0 && (includeLower || includeUpper) && !(includeLower && includeUpper)))\n return emptyCollection(this);\n return new this.Collection(this, function () { return createRange(lower, upper, !includeLower, !includeUpper); });\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n };\n WhereClause.prototype.equals = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return rangeEqual(value); });\n };\n WhereClause.prototype.above = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(value, undefined, true); });\n };\n WhereClause.prototype.aboveOrEqual = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(value, undefined, false); });\n };\n WhereClause.prototype.below = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(undefined, value, false, true); });\n };\n WhereClause.prototype.belowOrEqual = function (value) {\n if (value == null)\n return fail(this, INVALID_KEY_ARGUMENT);\n return new this.Collection(this, function () { return createRange(undefined, value); });\n };\n WhereClause.prototype.startsWith = function (str) {\n if (typeof str !== 'string')\n return fail(this, STRING_EXPECTED);\n return this.between(str, str + maxString, true, true);\n };\n WhereClause.prototype.startsWithIgnoreCase = function (str) {\n if (str === \"\")\n return this.startsWith(str);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return x.indexOf(a[0]) === 0; }, [str], maxString);\n };\n WhereClause.prototype.equalsIgnoreCase = function (str) {\n return addIgnoreCaseAlgorithm(this, function (x, a) { return x === a[0]; }, [str], \"\");\n };\n WhereClause.prototype.anyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return a.indexOf(x) !== -1; }, set, \"\");\n };\n WhereClause.prototype.startsWithAnyOfIgnoreCase = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return emptyCollection(this);\n return addIgnoreCaseAlgorithm(this, function (x, a) { return a.some(function (n) { return x.indexOf(n) === 0; }); }, set, maxString);\n };\n WhereClause.prototype.anyOf = function () {\n var _this = this;\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n var compare = this._cmp;\n try {\n set.sort(compare);\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n if (set.length === 0)\n return emptyCollection(this);\n var c = new this.Collection(this, function () { return createRange(set[0], set[set.length - 1]); });\n c._ondirectionchange = function (direction) {\n compare = (direction === \"next\" ?\n _this._ascending :\n _this._descending);\n set.sort(compare);\n };\n var i = 0;\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (compare(key, set[i]) > 0) {\n ++i;\n if (i === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (compare(key, set[i]) === 0) {\n return true;\n }\n else {\n advance(function () { cursor.continue(set[i]); });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.notEqual = function (value) {\n return this.inAnyRange([[minKey, value], [value, this.db._maxKey]], { includeLowers: false, includeUppers: false });\n };\n WhereClause.prototype.noneOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (set.length === 0)\n return new this.Collection(this);\n try {\n set.sort(this._ascending);\n }\n catch (e) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var ranges = set.reduce(function (res, val) { return res ?\n res.concat([[res[res.length - 1][1], val]]) :\n [[minKey, val]]; }, null);\n ranges.push([set[set.length - 1], this.db._maxKey]);\n return this.inAnyRange(ranges, { includeLowers: false, includeUppers: false });\n };\n WhereClause.prototype.inAnyRange = function (ranges, options) {\n var _this = this;\n var cmp = this._cmp, ascending = this._ascending, descending = this._descending, min = this._min, max = this._max;\n if (ranges.length === 0)\n return emptyCollection(this);\n if (!ranges.every(function (range) {\n return range[0] !== undefined &&\n range[1] !== undefined &&\n ascending(range[0], range[1]) <= 0;\n })) {\n return fail(this, \"First argument to inAnyRange() must be an Array of two-value Arrays [lower,upper] where upper must not be lower than lower\", exceptions.InvalidArgument);\n }\n var includeLowers = !options || options.includeLowers !== false;\n var includeUppers = options && options.includeUppers === true;\n function addRange(ranges, newRange) {\n var i = 0, l = ranges.length;\n for (; i < l; ++i) {\n var range = ranges[i];\n if (cmp(newRange[0], range[1]) < 0 && cmp(newRange[1], range[0]) > 0) {\n range[0] = min(range[0], newRange[0]);\n range[1] = max(range[1], newRange[1]);\n break;\n }\n }\n if (i === l)\n ranges.push(newRange);\n return ranges;\n }\n var sortDirection = ascending;\n function rangeSorter(a, b) { return sortDirection(a[0], b[0]); }\n var set;\n try {\n set = ranges.reduce(addRange, []);\n set.sort(rangeSorter);\n }\n catch (ex) {\n return fail(this, INVALID_KEY_ARGUMENT);\n }\n var rangePos = 0;\n var keyIsBeyondCurrentEntry = includeUppers ?\n function (key) { return ascending(key, set[rangePos][1]) > 0; } :\n function (key) { return ascending(key, set[rangePos][1]) >= 0; };\n var keyIsBeforeCurrentEntry = includeLowers ?\n function (key) { return descending(key, set[rangePos][0]) > 0; } :\n function (key) { return descending(key, set[rangePos][0]) >= 0; };\n function keyWithinCurrentRange(key) {\n return !keyIsBeyondCurrentEntry(key) && !keyIsBeforeCurrentEntry(key);\n }\n var checkKey = keyIsBeyondCurrentEntry;\n var c = new this.Collection(this, function () { return createRange(set[0][0], set[set.length - 1][1], !includeLowers, !includeUppers); });\n c._ondirectionchange = function (direction) {\n if (direction === \"next\") {\n checkKey = keyIsBeyondCurrentEntry;\n sortDirection = ascending;\n }\n else {\n checkKey = keyIsBeforeCurrentEntry;\n sortDirection = descending;\n }\n set.sort(rangeSorter);\n };\n c._addAlgorithm(function (cursor, advance, resolve) {\n var key = cursor.key;\n while (checkKey(key)) {\n ++rangePos;\n if (rangePos === set.length) {\n advance(resolve);\n return false;\n }\n }\n if (keyWithinCurrentRange(key)) {\n return true;\n }\n else if (_this._cmp(key, set[rangePos][1]) === 0 || _this._cmp(key, set[rangePos][0]) === 0) {\n return false;\n }\n else {\n advance(function () {\n if (sortDirection === ascending)\n cursor.continue(set[rangePos][0]);\n else\n cursor.continue(set[rangePos][1]);\n });\n return false;\n }\n });\n return c;\n };\n WhereClause.prototype.startsWithAnyOf = function () {\n var set = getArrayOf.apply(NO_CHAR_ARRAY, arguments);\n if (!set.every(function (s) { return typeof s === 'string'; })) {\n return fail(this, \"startsWithAnyOf() only works with strings\");\n }\n if (set.length === 0)\n return emptyCollection(this);\n return this.inAnyRange(set.map(function (str) { return [str, str + maxString]; }));\n };\n return WhereClause;\n}());\n\nfunction createWhereClauseConstructor(db) {\n return makeClassConstructor(WhereClause.prototype, function WhereClause(table, index, orCollection) {\n this.db = db;\n this._ctx = {\n table: table,\n index: index === \":id\" ? null : index,\n or: orCollection\n };\n var indexedDB = db._deps.indexedDB;\n if (!indexedDB)\n throw new exceptions.MissingAPI();\n this._cmp = this._ascending = indexedDB.cmp.bind(indexedDB);\n this._descending = function (a, b) { return indexedDB.cmp(b, a); };\n this._max = function (a, b) { return indexedDB.cmp(a, b) > 0 ? a : b; };\n this._min = function (a, b) { return indexedDB.cmp(a, b) < 0 ? a : b; };\n this._IDBKeyRange = db._deps.IDBKeyRange;\n });\n}\n\nfunction eventRejectHandler(reject) {\n return wrap(function (event) {\n preventDefault(event);\n reject(event.target.error);\n return false;\n });\n}\nfunction preventDefault(event) {\n if (event.stopPropagation)\n event.stopPropagation();\n if (event.preventDefault)\n event.preventDefault();\n}\n\nvar DEXIE_STORAGE_MUTATED_EVENT_NAME = 'storagemutated';\nvar STORAGE_MUTATED_DOM_EVENT_NAME = 'x-storagemutated-1';\nvar globalEvents = Events(null, DEXIE_STORAGE_MUTATED_EVENT_NAME);\n\nvar Transaction = (function () {\n function Transaction() {\n }\n Transaction.prototype._lock = function () {\n assert(!PSD.global);\n ++this._reculock;\n if (this._reculock === 1 && !PSD.global)\n PSD.lockOwnerFor = this;\n return this;\n };\n Transaction.prototype._unlock = function () {\n assert(!PSD.global);\n if (--this._reculock === 0) {\n if (!PSD.global)\n PSD.lockOwnerFor = null;\n while (this._blockedFuncs.length > 0 && !this._locked()) {\n var fnAndPSD = this._blockedFuncs.shift();\n try {\n usePSD(fnAndPSD[1], fnAndPSD[0]);\n }\n catch (e) { }\n }\n }\n return this;\n };\n Transaction.prototype._locked = function () {\n return this._reculock && PSD.lockOwnerFor !== this;\n };\n Transaction.prototype.create = function (idbtrans) {\n var _this = this;\n if (!this.mode)\n return this;\n var idbdb = this.db.idbdb;\n var dbOpenError = this.db._state.dbOpenError;\n assert(!this.idbtrans);\n if (!idbtrans && !idbdb) {\n switch (dbOpenError && dbOpenError.name) {\n case \"DatabaseClosedError\":\n throw new exceptions.DatabaseClosed(dbOpenError);\n case \"MissingAPIError\":\n throw new exceptions.MissingAPI(dbOpenError.message, dbOpenError);\n default:\n throw new exceptions.OpenFailed(dbOpenError);\n }\n }\n if (!this.active)\n throw new exceptions.TransactionInactive();\n assert(this._completion._state === null);\n idbtrans = this.idbtrans = idbtrans ||\n (this.db.core\n ? this.db.core.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability })\n : idbdb.transaction(this.storeNames, this.mode, { durability: this.chromeTransactionDurability }));\n idbtrans.onerror = wrap(function (ev) {\n preventDefault(ev);\n _this._reject(idbtrans.error);\n });\n idbtrans.onabort = wrap(function (ev) {\n preventDefault(ev);\n _this.active && _this._reject(new exceptions.Abort(idbtrans.error));\n _this.active = false;\n _this.on(\"abort\").fire(ev);\n });\n idbtrans.oncomplete = wrap(function () {\n _this.active = false;\n _this._resolve();\n if ('mutatedParts' in idbtrans) {\n globalEvents.storagemutated.fire(idbtrans[\"mutatedParts\"]);\n }\n });\n return this;\n };\n Transaction.prototype._promise = function (mode, fn, bWriteLock) {\n var _this = this;\n if (mode === 'readwrite' && this.mode !== 'readwrite')\n return rejection(new exceptions.ReadOnly(\"Transaction is readonly\"));\n if (!this.active)\n return rejection(new exceptions.TransactionInactive());\n if (this._locked()) {\n return new DexiePromise(function (resolve, reject) {\n _this._blockedFuncs.push([function () {\n _this._promise(mode, fn, bWriteLock).then(resolve, reject);\n }, PSD]);\n });\n }\n else if (bWriteLock) {\n return newScope(function () {\n var p = new DexiePromise(function (resolve, reject) {\n _this._lock();\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then)\n rv.then(resolve, reject);\n });\n p.finally(function () { return _this._unlock(); });\n p._lib = true;\n return p;\n });\n }\n else {\n var p = new DexiePromise(function (resolve, reject) {\n var rv = fn(resolve, reject, _this);\n if (rv && rv.then)\n rv.then(resolve, reject);\n });\n p._lib = true;\n return p;\n }\n };\n Transaction.prototype._root = function () {\n return this.parent ? this.parent._root() : this;\n };\n Transaction.prototype.waitFor = function (promiseLike) {\n var root = this._root();\n var promise = DexiePromise.resolve(promiseLike);\n if (root._waitingFor) {\n root._waitingFor = root._waitingFor.then(function () { return promise; });\n }\n else {\n root._waitingFor = promise;\n root._waitingQueue = [];\n var store = root.idbtrans.objectStore(root.storeNames[0]);\n (function spin() {\n ++root._spinCount;\n while (root._waitingQueue.length)\n (root._waitingQueue.shift())();\n if (root._waitingFor)\n store.get(-Infinity).onsuccess = spin;\n }());\n }\n var currentWaitPromise = root._waitingFor;\n return new DexiePromise(function (resolve, reject) {\n promise.then(function (res) { return root._waitingQueue.push(wrap(resolve.bind(null, res))); }, function (err) { return root._waitingQueue.push(wrap(reject.bind(null, err))); }).finally(function () {\n if (root._waitingFor === currentWaitPromise) {\n root._waitingFor = null;\n }\n });\n });\n };\n Transaction.prototype.abort = function () {\n if (this.active) {\n this.active = false;\n if (this.idbtrans)\n this.idbtrans.abort();\n this._reject(new exceptions.Abort());\n }\n };\n Transaction.prototype.table = function (tableName) {\n var memoizedTables = (this._memoizedTables || (this._memoizedTables = {}));\n if (hasOwn(memoizedTables, tableName))\n return memoizedTables[tableName];\n var tableSchema = this.schema[tableName];\n if (!tableSchema) {\n throw new exceptions.NotFound(\"Table \" + tableName + \" not part of transaction\");\n }\n var transactionBoundTable = new this.db.Table(tableName, tableSchema, this);\n transactionBoundTable.core = this.db.core.table(tableName);\n memoizedTables[tableName] = transactionBoundTable;\n return transactionBoundTable;\n };\n return Transaction;\n}());\n\nfunction createTransactionConstructor(db) {\n return makeClassConstructor(Transaction.prototype, function Transaction(mode, storeNames, dbschema, chromeTransactionDurability, parent) {\n var _this = this;\n this.db = db;\n this.mode = mode;\n this.storeNames = storeNames;\n this.schema = dbschema;\n this.chromeTransactionDurability = chromeTransactionDurability;\n this.idbtrans = null;\n this.on = Events(this, \"complete\", \"error\", \"abort\");\n this.parent = parent || null;\n this.active = true;\n this._reculock = 0;\n this._blockedFuncs = [];\n this._resolve = null;\n this._reject = null;\n this._waitingFor = null;\n this._waitingQueue = null;\n this._spinCount = 0;\n this._completion = new DexiePromise(function (resolve, reject) {\n _this._resolve = resolve;\n _this._reject = reject;\n });\n this._completion.then(function () {\n _this.active = false;\n _this.on.complete.fire();\n }, function (e) {\n var wasActive = _this.active;\n _this.active = false;\n _this.on.error.fire(e);\n _this.parent ?\n _this.parent._reject(e) :\n wasActive && _this.idbtrans && _this.idbtrans.abort();\n return rejection(e);\n });\n });\n}\n\nfunction createIndexSpec(name, keyPath, unique, multi, auto, compound, isPrimKey) {\n return {\n name: name,\n keyPath: keyPath,\n unique: unique,\n multi: multi,\n auto: auto,\n compound: compound,\n src: (unique && !isPrimKey ? '&' : '') + (multi ? '*' : '') + (auto ? \"++\" : \"\") + nameFromKeyPath(keyPath)\n };\n}\nfunction nameFromKeyPath(keyPath) {\n return typeof keyPath === 'string' ?\n keyPath :\n keyPath ? ('[' + [].join.call(keyPath, '+') + ']') : \"\";\n}\n\nfunction createTableSchema(name, primKey, indexes) {\n return {\n name: name,\n primKey: primKey,\n indexes: indexes,\n mappedClass: null,\n idxByName: arrayToObject(indexes, function (index) { return [index.name, index]; })\n };\n}\n\nfunction safariMultiStoreFix(storeNames) {\n return storeNames.length === 1 ? storeNames[0] : storeNames;\n}\nvar getMaxKey = function (IdbKeyRange) {\n try {\n IdbKeyRange.only([[]]);\n getMaxKey = function () { return [[]]; };\n return [[]];\n }\n catch (e) {\n getMaxKey = function () { return maxString; };\n return maxString;\n }\n};\n\nfunction getKeyExtractor(keyPath) {\n if (keyPath == null) {\n return function () { return undefined; };\n }\n else if (typeof keyPath === 'string') {\n return getSinglePathKeyExtractor(keyPath);\n }\n else {\n return function (obj) { return getByKeyPath(obj, keyPath); };\n }\n}\nfunction getSinglePathKeyExtractor(keyPath) {\n var split = keyPath.split('.');\n if (split.length === 1) {\n return function (obj) { return obj[keyPath]; };\n }\n else {\n return function (obj) { return getByKeyPath(obj, keyPath); };\n }\n}\n\nfunction arrayify(arrayLike) {\n return [].slice.call(arrayLike);\n}\nvar _id_counter = 0;\nfunction getKeyPathAlias(keyPath) {\n return keyPath == null ?\n \":id\" :\n typeof keyPath === 'string' ?\n keyPath :\n \"[\" + keyPath.join('+') + \"]\";\n}\nfunction createDBCore(db, IdbKeyRange, tmpTrans) {\n function extractSchema(db, trans) {\n var tables = arrayify(db.objectStoreNames);\n return {\n schema: {\n name: db.name,\n tables: tables.map(function (table) { return trans.objectStore(table); }).map(function (store) {\n var keyPath = store.keyPath, autoIncrement = store.autoIncrement;\n var compound = isArray(keyPath);\n var outbound = keyPath == null;\n var indexByKeyPath = {};\n var result = {\n name: store.name,\n primaryKey: {\n name: null,\n isPrimaryKey: true,\n outbound: outbound,\n compound: compound,\n keyPath: keyPath,\n autoIncrement: autoIncrement,\n unique: true,\n extractKey: getKeyExtractor(keyPath)\n },\n indexes: arrayify(store.indexNames).map(function (indexName) { return store.index(indexName); })\n .map(function (index) {\n var name = index.name, unique = index.unique, multiEntry = index.multiEntry, keyPath = index.keyPath;\n var compound = isArray(keyPath);\n var result = {\n name: name,\n compound: compound,\n keyPath: keyPath,\n unique: unique,\n multiEntry: multiEntry,\n extractKey: getKeyExtractor(keyPath)\n };\n indexByKeyPath[getKeyPathAlias(keyPath)] = result;\n return result;\n }),\n getIndexByKeyPath: function (keyPath) { return indexByKeyPath[getKeyPathAlias(keyPath)]; }\n };\n indexByKeyPath[\":id\"] = result.primaryKey;\n if (keyPath != null) {\n indexByKeyPath[getKeyPathAlias(keyPath)] = result.primaryKey;\n }\n return result;\n })\n },\n hasGetAll: tables.length > 0 && ('getAll' in trans.objectStore(tables[0])) &&\n !(typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604)\n };\n }\n function makeIDBKeyRange(range) {\n if (range.type === 3 )\n return null;\n if (range.type === 4 )\n throw new Error(\"Cannot convert never type to IDBKeyRange\");\n var lower = range.lower, upper = range.upper, lowerOpen = range.lowerOpen, upperOpen = range.upperOpen;\n var idbRange = lower === undefined ?\n upper === undefined ?\n null :\n IdbKeyRange.upperBound(upper, !!upperOpen) :\n upper === undefined ?\n IdbKeyRange.lowerBound(lower, !!lowerOpen) :\n IdbKeyRange.bound(lower, upper, !!lowerOpen, !!upperOpen);\n return idbRange;\n }\n function createDbCoreTable(tableSchema) {\n var tableName = tableSchema.name;\n function mutate(_a) {\n var trans = _a.trans, type = _a.type, keys = _a.keys, values = _a.values, range = _a.range;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var outbound = store.keyPath == null;\n var isAddOrPut = type === \"put\" || type === \"add\";\n if (!isAddOrPut && type !== 'delete' && type !== 'deleteRange')\n throw new Error(\"Invalid operation type: \" + type);\n var length = (keys || values || { length: 1 }).length;\n if (keys && values && keys.length !== values.length) {\n throw new Error(\"Given keys array must have same length as given values array.\");\n }\n if (length === 0)\n return resolve({ numFailures: 0, failures: {}, results: [], lastResult: undefined });\n var req;\n var reqs = [];\n var failures = [];\n var numFailures = 0;\n var errorHandler = function (event) {\n ++numFailures;\n preventDefault(event);\n };\n if (type === 'deleteRange') {\n if (range.type === 4 )\n return resolve({ numFailures: numFailures, failures: failures, results: [], lastResult: undefined });\n if (range.type === 3 )\n reqs.push(req = store.clear());\n else\n reqs.push(req = store.delete(makeIDBKeyRange(range)));\n }\n else {\n var _a = isAddOrPut ?\n outbound ?\n [values, keys] :\n [values, null] :\n [keys, null], args1 = _a[0], args2 = _a[1];\n if (isAddOrPut) {\n for (var i = 0; i < length; ++i) {\n reqs.push(req = (args2 && args2[i] !== undefined ?\n store[type](args1[i], args2[i]) :\n store[type](args1[i])));\n req.onerror = errorHandler;\n }\n }\n else {\n for (var i = 0; i < length; ++i) {\n reqs.push(req = store[type](args1[i]));\n req.onerror = errorHandler;\n }\n }\n }\n var done = function (event) {\n var lastResult = event.target.result;\n reqs.forEach(function (req, i) { return req.error != null && (failures[i] = req.error); });\n resolve({\n numFailures: numFailures,\n failures: failures,\n results: type === \"delete\" ? keys : reqs.map(function (req) { return req.result; }),\n lastResult: lastResult\n });\n };\n req.onerror = function (event) {\n errorHandler(event);\n done(event);\n };\n req.onsuccess = done;\n });\n }\n function openCursor(_a) {\n var trans = _a.trans, values = _a.values, query = _a.query, reverse = _a.reverse, unique = _a.unique;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var index = query.index, range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ?\n store :\n store.index(index.name);\n var direction = reverse ?\n unique ?\n \"prevunique\" :\n \"prev\" :\n unique ?\n \"nextunique\" :\n \"next\";\n var req = values || !('openKeyCursor' in source) ?\n source.openCursor(makeIDBKeyRange(range), direction) :\n source.openKeyCursor(makeIDBKeyRange(range), direction);\n req.onerror = eventRejectHandler(reject);\n req.onsuccess = wrap(function (ev) {\n var cursor = req.result;\n if (!cursor) {\n resolve(null);\n return;\n }\n cursor.___id = ++_id_counter;\n cursor.done = false;\n var _cursorContinue = cursor.continue.bind(cursor);\n var _cursorContinuePrimaryKey = cursor.continuePrimaryKey;\n if (_cursorContinuePrimaryKey)\n _cursorContinuePrimaryKey = _cursorContinuePrimaryKey.bind(cursor);\n var _cursorAdvance = cursor.advance.bind(cursor);\n var doThrowCursorIsNotStarted = function () { throw new Error(\"Cursor not started\"); };\n var doThrowCursorIsStopped = function () { throw new Error(\"Cursor not stopped\"); };\n cursor.trans = trans;\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsNotStarted;\n cursor.fail = wrap(reject);\n cursor.next = function () {\n var _this = this;\n var gotOne = 1;\n return this.start(function () { return gotOne-- ? _this.continue() : _this.stop(); }).then(function () { return _this; });\n };\n cursor.start = function (callback) {\n var iterationPromise = new Promise(function (resolveIteration, rejectIteration) {\n resolveIteration = wrap(resolveIteration);\n req.onerror = eventRejectHandler(rejectIteration);\n cursor.fail = rejectIteration;\n cursor.stop = function (value) {\n cursor.stop = cursor.continue = cursor.continuePrimaryKey = cursor.advance = doThrowCursorIsStopped;\n resolveIteration(value);\n };\n });\n var guardedCallback = function () {\n if (req.result) {\n try {\n callback();\n }\n catch (err) {\n cursor.fail(err);\n }\n }\n else {\n cursor.done = true;\n cursor.start = function () { throw new Error(\"Cursor behind last entry\"); };\n cursor.stop();\n }\n };\n req.onsuccess = wrap(function (ev) {\n req.onsuccess = guardedCallback;\n guardedCallback();\n });\n cursor.continue = _cursorContinue;\n cursor.continuePrimaryKey = _cursorContinuePrimaryKey;\n cursor.advance = _cursorAdvance;\n guardedCallback();\n return iterationPromise;\n };\n resolve(cursor);\n }, reject);\n });\n }\n function query(hasGetAll) {\n return function (request) {\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var trans = request.trans, values = request.values, limit = request.limit, query = request.query;\n var nonInfinitLimit = limit === Infinity ? undefined : limit;\n var index = query.index, range = query.range;\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n if (limit === 0)\n return resolve({ result: [] });\n if (hasGetAll) {\n var req = values ?\n source.getAll(idbKeyRange, nonInfinitLimit) :\n source.getAllKeys(idbKeyRange, nonInfinitLimit);\n req.onsuccess = function (event) { return resolve({ result: event.target.result }); };\n req.onerror = eventRejectHandler(reject);\n }\n else {\n var count_1 = 0;\n var req_1 = values || !('openKeyCursor' in source) ?\n source.openCursor(idbKeyRange) :\n source.openKeyCursor(idbKeyRange);\n var result_1 = [];\n req_1.onsuccess = function (event) {\n var cursor = req_1.result;\n if (!cursor)\n return resolve({ result: result_1 });\n result_1.push(values ? cursor.value : cursor.primaryKey);\n if (++count_1 === limit)\n return resolve({ result: result_1 });\n cursor.continue();\n };\n req_1.onerror = eventRejectHandler(reject);\n }\n });\n };\n }\n return {\n name: tableName,\n schema: tableSchema,\n mutate: mutate,\n getMany: function (_a) {\n var trans = _a.trans, keys = _a.keys;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var length = keys.length;\n var result = new Array(length);\n var keyCount = 0;\n var callbackCount = 0;\n var req;\n var successHandler = function (event) {\n var req = event.target;\n if ((result[req._pos] = req.result) != null)\n ;\n if (++callbackCount === keyCount)\n resolve(result);\n };\n var errorHandler = eventRejectHandler(reject);\n for (var i = 0; i < length; ++i) {\n var key = keys[i];\n if (key != null) {\n req = store.get(keys[i]);\n req._pos = i;\n req.onsuccess = successHandler;\n req.onerror = errorHandler;\n ++keyCount;\n }\n }\n if (keyCount === 0)\n resolve(result);\n });\n },\n get: function (_a) {\n var trans = _a.trans, key = _a.key;\n return new Promise(function (resolve, reject) {\n resolve = wrap(resolve);\n var store = trans.objectStore(tableName);\n var req = store.get(key);\n req.onsuccess = function (event) { return resolve(event.target.result); };\n req.onerror = eventRejectHandler(reject);\n });\n },\n query: query(hasGetAll),\n openCursor: openCursor,\n count: function (_a) {\n var query = _a.query, trans = _a.trans;\n var index = query.index, range = query.range;\n return new Promise(function (resolve, reject) {\n var store = trans.objectStore(tableName);\n var source = index.isPrimaryKey ? store : store.index(index.name);\n var idbKeyRange = makeIDBKeyRange(range);\n var req = idbKeyRange ? source.count(idbKeyRange) : source.count();\n req.onsuccess = wrap(function (ev) { return resolve(ev.target.result); });\n req.onerror = eventRejectHandler(reject);\n });\n }\n };\n }\n var _a = extractSchema(db, tmpTrans), schema = _a.schema, hasGetAll = _a.hasGetAll;\n var tables = schema.tables.map(function (tableSchema) { return createDbCoreTable(tableSchema); });\n var tableMap = {};\n tables.forEach(function (table) { return tableMap[table.name] = table; });\n return {\n stack: \"dbcore\",\n transaction: db.transaction.bind(db),\n table: function (name) {\n var result = tableMap[name];\n if (!result)\n throw new Error(\"Table '\" + name + \"' not found\");\n return tableMap[name];\n },\n MIN_KEY: -Infinity,\n MAX_KEY: getMaxKey(IdbKeyRange),\n schema: schema\n };\n}\n\nfunction createMiddlewareStack(stackImpl, middlewares) {\n return middlewares.reduce(function (down, _a) {\n var create = _a.create;\n return (__assign(__assign({}, down), create(down)));\n }, stackImpl);\n}\nfunction createMiddlewareStacks(middlewares, idbdb, _a, tmpTrans) {\n var IDBKeyRange = _a.IDBKeyRange; _a.indexedDB;\n var dbcore = createMiddlewareStack(createDBCore(idbdb, IDBKeyRange, tmpTrans), middlewares.dbcore);\n return {\n dbcore: dbcore\n };\n}\nfunction generateMiddlewareStacks(_a, tmpTrans) {\n var db = _a._novip;\n var idbdb = tmpTrans.db;\n var stacks = createMiddlewareStacks(db._middlewares, idbdb, db._deps, tmpTrans);\n db.core = stacks.dbcore;\n db.tables.forEach(function (table) {\n var tableName = table.name;\n if (db.core.schema.tables.some(function (tbl) { return tbl.name === tableName; })) {\n table.core = db.core.table(tableName);\n if (db[tableName] instanceof db.Table) {\n db[tableName].core = table.core;\n }\n }\n });\n}\n\nfunction setApiOnPlace(_a, objs, tableNames, dbschema) {\n var db = _a._novip;\n tableNames.forEach(function (tableName) {\n var schema = dbschema[tableName];\n objs.forEach(function (obj) {\n var propDesc = getPropertyDescriptor(obj, tableName);\n if (!propDesc || (\"value\" in propDesc && propDesc.value === undefined)) {\n if (obj === db.Transaction.prototype || obj instanceof db.Transaction) {\n setProp(obj, tableName, {\n get: function () { return this.table(tableName); },\n set: function (value) {\n defineProperty(this, tableName, { value: value, writable: true, configurable: true, enumerable: true });\n }\n });\n }\n else {\n obj[tableName] = new db.Table(tableName, schema);\n }\n }\n });\n });\n}\nfunction removeTablesApi(_a, objs) {\n var db = _a._novip;\n objs.forEach(function (obj) {\n for (var key in obj) {\n if (obj[key] instanceof db.Table)\n delete obj[key];\n }\n });\n}\nfunction lowerVersionFirst(a, b) {\n return a._cfg.version - b._cfg.version;\n}\nfunction runUpgraders(db, oldVersion, idbUpgradeTrans, reject) {\n var globalSchema = db._dbSchema;\n var trans = db._createTransaction('readwrite', db._storeNames, globalSchema);\n trans.create(idbUpgradeTrans);\n trans._completion.catch(reject);\n var rejectTransaction = trans._reject.bind(trans);\n var transless = PSD.transless || PSD;\n newScope(function () {\n PSD.trans = trans;\n PSD.transless = transless;\n if (oldVersion === 0) {\n keys(globalSchema).forEach(function (tableName) {\n createTable(idbUpgradeTrans, tableName, globalSchema[tableName].primKey, globalSchema[tableName].indexes);\n });\n generateMiddlewareStacks(db, idbUpgradeTrans);\n DexiePromise.follow(function () { return db.on.populate.fire(trans); }).catch(rejectTransaction);\n }\n else\n updateTablesAndIndexes(db, oldVersion, trans, idbUpgradeTrans).catch(rejectTransaction);\n });\n}\nfunction updateTablesAndIndexes(_a, oldVersion, trans, idbUpgradeTrans) {\n var db = _a._novip;\n var queue = [];\n var versions = db._versions;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, db.idbdb, idbUpgradeTrans);\n var anyContentUpgraderHasRun = false;\n var versToRun = versions.filter(function (v) { return v._cfg.version >= oldVersion; });\n versToRun.forEach(function (version) {\n queue.push(function () {\n var oldSchema = globalSchema;\n var newSchema = version._cfg.dbschema;\n adjustToExistingIndexNames(db, oldSchema, idbUpgradeTrans);\n adjustToExistingIndexNames(db, newSchema, idbUpgradeTrans);\n globalSchema = db._dbSchema = newSchema;\n var diff = getSchemaDiff(oldSchema, newSchema);\n diff.add.forEach(function (tuple) {\n createTable(idbUpgradeTrans, tuple[0], tuple[1].primKey, tuple[1].indexes);\n });\n diff.change.forEach(function (change) {\n if (change.recreate) {\n throw new exceptions.Upgrade(\"Not yet support for changing primary key\");\n }\n else {\n var store_1 = idbUpgradeTrans.objectStore(change.name);\n change.add.forEach(function (idx) { return addIndex(store_1, idx); });\n change.change.forEach(function (idx) {\n store_1.deleteIndex(idx.name);\n addIndex(store_1, idx);\n });\n change.del.forEach(function (idxName) { return store_1.deleteIndex(idxName); });\n }\n });\n var contentUpgrade = version._cfg.contentUpgrade;\n if (contentUpgrade && version._cfg.version > oldVersion) {\n generateMiddlewareStacks(db, idbUpgradeTrans);\n trans._memoizedTables = {};\n anyContentUpgraderHasRun = true;\n var upgradeSchema_1 = shallowClone(newSchema);\n diff.del.forEach(function (table) {\n upgradeSchema_1[table] = oldSchema[table];\n });\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], keys(upgradeSchema_1), upgradeSchema_1);\n trans.schema = upgradeSchema_1;\n var contentUpgradeIsAsync_1 = isAsyncFunction(contentUpgrade);\n if (contentUpgradeIsAsync_1) {\n incrementExpectedAwaits();\n }\n var returnValue_1;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue_1 = contentUpgrade(trans);\n if (returnValue_1) {\n if (contentUpgradeIsAsync_1) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue_1.then(decrementor, decrementor);\n }\n }\n });\n return (returnValue_1 && typeof returnValue_1.then === 'function' ?\n DexiePromise.resolve(returnValue_1) : promiseFollowed.then(function () { return returnValue_1; }));\n }\n });\n queue.push(function (idbtrans) {\n if (!anyContentUpgraderHasRun || !hasIEDeleteObjectStoreBug) {\n var newSchema = version._cfg.dbschema;\n deleteRemovedTables(newSchema, idbtrans);\n }\n removeTablesApi(db, [db.Transaction.prototype]);\n setApiOnPlace(db, [db.Transaction.prototype], db._storeNames, db._dbSchema);\n trans.schema = db._dbSchema;\n });\n });\n function runQueue() {\n return queue.length ? DexiePromise.resolve(queue.shift()(trans.idbtrans)).then(runQueue) :\n DexiePromise.resolve();\n }\n return runQueue().then(function () {\n createMissingTables(globalSchema, idbUpgradeTrans);\n });\n}\nfunction getSchemaDiff(oldSchema, newSchema) {\n var diff = {\n del: [],\n add: [],\n change: []\n };\n var table;\n for (table in oldSchema) {\n if (!newSchema[table])\n diff.del.push(table);\n }\n for (table in newSchema) {\n var oldDef = oldSchema[table], newDef = newSchema[table];\n if (!oldDef) {\n diff.add.push([table, newDef]);\n }\n else {\n var change = {\n name: table,\n def: newDef,\n recreate: false,\n del: [],\n add: [],\n change: []\n };\n if ((\n '' + (oldDef.primKey.keyPath || '')) !== ('' + (newDef.primKey.keyPath || '')) ||\n (oldDef.primKey.auto !== newDef.primKey.auto && !isIEOrEdge))\n {\n change.recreate = true;\n diff.change.push(change);\n }\n else {\n var oldIndexes = oldDef.idxByName;\n var newIndexes = newDef.idxByName;\n var idxName = void 0;\n for (idxName in oldIndexes) {\n if (!newIndexes[idxName])\n change.del.push(idxName);\n }\n for (idxName in newIndexes) {\n var oldIdx = oldIndexes[idxName], newIdx = newIndexes[idxName];\n if (!oldIdx)\n change.add.push(newIdx);\n else if (oldIdx.src !== newIdx.src)\n change.change.push(newIdx);\n }\n if (change.del.length > 0 || change.add.length > 0 || change.change.length > 0) {\n diff.change.push(change);\n }\n }\n }\n }\n return diff;\n}\nfunction createTable(idbtrans, tableName, primKey, indexes) {\n var store = idbtrans.db.createObjectStore(tableName, primKey.keyPath ?\n { keyPath: primKey.keyPath, autoIncrement: primKey.auto } :\n { autoIncrement: primKey.auto });\n indexes.forEach(function (idx) { return addIndex(store, idx); });\n return store;\n}\nfunction createMissingTables(newSchema, idbtrans) {\n keys(newSchema).forEach(function (tableName) {\n if (!idbtrans.db.objectStoreNames.contains(tableName)) {\n createTable(idbtrans, tableName, newSchema[tableName].primKey, newSchema[tableName].indexes);\n }\n });\n}\nfunction deleteRemovedTables(newSchema, idbtrans) {\n [].slice.call(idbtrans.db.objectStoreNames).forEach(function (storeName) {\n return newSchema[storeName] == null && idbtrans.db.deleteObjectStore(storeName);\n });\n}\nfunction addIndex(store, idx) {\n store.createIndex(idx.name, idx.keyPath, { unique: idx.unique, multiEntry: idx.multi });\n}\nfunction buildGlobalSchema(db, idbdb, tmpTrans) {\n var globalSchema = {};\n var dbStoreNames = slice(idbdb.objectStoreNames, 0);\n dbStoreNames.forEach(function (storeName) {\n var store = tmpTrans.objectStore(storeName);\n var keyPath = store.keyPath;\n var primKey = createIndexSpec(nameFromKeyPath(keyPath), keyPath || \"\", false, false, !!store.autoIncrement, keyPath && typeof keyPath !== \"string\", true);\n var indexes = [];\n for (var j = 0; j < store.indexNames.length; ++j) {\n var idbindex = store.index(store.indexNames[j]);\n keyPath = idbindex.keyPath;\n var index = createIndexSpec(idbindex.name, keyPath, !!idbindex.unique, !!idbindex.multiEntry, false, keyPath && typeof keyPath !== \"string\", false);\n indexes.push(index);\n }\n globalSchema[storeName] = createTableSchema(storeName, primKey, indexes);\n });\n return globalSchema;\n}\nfunction readGlobalSchema(_a, idbdb, tmpTrans) {\n var db = _a._novip;\n db.verno = idbdb.version / 10;\n var globalSchema = db._dbSchema = buildGlobalSchema(db, idbdb, tmpTrans);\n db._storeNames = slice(idbdb.objectStoreNames, 0);\n setApiOnPlace(db, [db._allTables], keys(globalSchema), globalSchema);\n}\nfunction verifyInstalledSchema(db, tmpTrans) {\n var installedSchema = buildGlobalSchema(db, db.idbdb, tmpTrans);\n var diff = getSchemaDiff(installedSchema, db._dbSchema);\n return !(diff.add.length || diff.change.some(function (ch) { return ch.add.length || ch.change.length; }));\n}\nfunction adjustToExistingIndexNames(_a, schema, idbtrans) {\n var db = _a._novip;\n var storeNames = idbtrans.db.objectStoreNames;\n for (var i = 0; i < storeNames.length; ++i) {\n var storeName = storeNames[i];\n var store = idbtrans.objectStore(storeName);\n db._hasGetAll = 'getAll' in store;\n for (var j = 0; j < store.indexNames.length; ++j) {\n var indexName = store.indexNames[j];\n var keyPath = store.index(indexName).keyPath;\n var dexieName = typeof keyPath === 'string' ? keyPath : \"[\" + slice(keyPath).join('+') + \"]\";\n if (schema[storeName]) {\n var indexSpec = schema[storeName].idxByName[dexieName];\n if (indexSpec) {\n indexSpec.name = indexName;\n delete schema[storeName].idxByName[dexieName];\n schema[storeName].idxByName[indexName] = indexSpec;\n }\n }\n }\n }\n if (typeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) &&\n !/(Chrome\\/|Edge\\/)/.test(navigator.userAgent) &&\n _global.WorkerGlobalScope && _global instanceof _global.WorkerGlobalScope &&\n [].concat(navigator.userAgent.match(/Safari\\/(\\d*)/))[1] < 604) {\n db._hasGetAll = false;\n }\n}\nfunction parseIndexSyntax(primKeyAndIndexes) {\n return primKeyAndIndexes.split(',').map(function (index, indexNum) {\n index = index.trim();\n var name = index.replace(/([&*]|\\+\\+)/g, \"\");\n var keyPath = /^\\[/.test(name) ? name.match(/^\\[(.*)\\]$/)[1].split('+') : name;\n return createIndexSpec(name, keyPath || null, /\\&/.test(index), /\\*/.test(index), /\\+\\+/.test(index), isArray(keyPath), indexNum === 0);\n });\n}\n\nvar Version = (function () {\n function Version() {\n }\n Version.prototype._parseStoresSpec = function (stores, outSchema) {\n keys(stores).forEach(function (tableName) {\n if (stores[tableName] !== null) {\n var indexes = parseIndexSyntax(stores[tableName]);\n var primKey = indexes.shift();\n if (primKey.multi)\n throw new exceptions.Schema(\"Primary key cannot be multi-valued\");\n indexes.forEach(function (idx) {\n if (idx.auto)\n throw new exceptions.Schema(\"Only primary key can be marked as autoIncrement (++)\");\n if (!idx.keyPath)\n throw new exceptions.Schema(\"Index must have a name and cannot be an empty string\");\n });\n outSchema[tableName] = createTableSchema(tableName, primKey, indexes);\n }\n });\n };\n Version.prototype.stores = function (stores) {\n var db = this.db;\n this._cfg.storesSource = this._cfg.storesSource ?\n extend(this._cfg.storesSource, stores) :\n stores;\n var versions = db._versions;\n var storesSpec = {};\n var dbschema = {};\n versions.forEach(function (version) {\n extend(storesSpec, version._cfg.storesSource);\n dbschema = (version._cfg.dbschema = {});\n version._parseStoresSpec(storesSpec, dbschema);\n });\n db._dbSchema = dbschema;\n removeTablesApi(db, [db._allTables, db, db.Transaction.prototype]);\n setApiOnPlace(db, [db._allTables, db, db.Transaction.prototype, this._cfg.tables], keys(dbschema), dbschema);\n db._storeNames = keys(dbschema);\n return this;\n };\n Version.prototype.upgrade = function (upgradeFunction) {\n this._cfg.contentUpgrade = promisableChain(this._cfg.contentUpgrade || nop, upgradeFunction);\n return this;\n };\n return Version;\n}());\n\nfunction createVersionConstructor(db) {\n return makeClassConstructor(Version.prototype, function Version(versionNumber) {\n this.db = db;\n this._cfg = {\n version: versionNumber,\n storesSource: null,\n dbschema: {},\n tables: {},\n contentUpgrade: null\n };\n });\n}\n\nfunction getDbNamesTable(indexedDB, IDBKeyRange) {\n var dbNamesDB = indexedDB[\"_dbNamesDB\"];\n if (!dbNamesDB) {\n dbNamesDB = indexedDB[\"_dbNamesDB\"] = new Dexie$1(DBNAMES_DB, {\n addons: [],\n indexedDB: indexedDB,\n IDBKeyRange: IDBKeyRange,\n });\n dbNamesDB.version(1).stores({ dbnames: \"name\" });\n }\n return dbNamesDB.table(\"dbnames\");\n}\nfunction hasDatabasesNative(indexedDB) {\n return indexedDB && typeof indexedDB.databases === \"function\";\n}\nfunction getDatabaseNames(_a) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n return hasDatabasesNative(indexedDB)\n ? Promise.resolve(indexedDB.databases()).then(function (infos) {\n return infos\n .map(function (info) { return info.name; })\n .filter(function (name) { return name !== DBNAMES_DB; });\n })\n : getDbNamesTable(indexedDB, IDBKeyRange).toCollection().primaryKeys();\n}\nfunction _onDatabaseCreated(_a, name) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).put({ name: name }).catch(nop);\n}\nfunction _onDatabaseDeleted(_a, name) {\n var indexedDB = _a.indexedDB, IDBKeyRange = _a.IDBKeyRange;\n !hasDatabasesNative(indexedDB) &&\n name !== DBNAMES_DB &&\n getDbNamesTable(indexedDB, IDBKeyRange).delete(name).catch(nop);\n}\n\nfunction vip(fn) {\n return newScope(function () {\n PSD.letThrough = true;\n return fn();\n });\n}\n\nfunction idbReady() {\n var isSafari = !navigator.userAgentData &&\n /Safari\\//.test(navigator.userAgent) &&\n !/Chrom(e|ium)\\//.test(navigator.userAgent);\n if (!isSafari || !indexedDB.databases)\n return Promise.resolve();\n var intervalId;\n return new Promise(function (resolve) {\n var tryIdb = function () { return indexedDB.databases().finally(resolve); };\n intervalId = setInterval(tryIdb, 100);\n tryIdb();\n }).finally(function () { return clearInterval(intervalId); });\n}\n\nfunction dexieOpen(db) {\n var state = db._state;\n var indexedDB = db._deps.indexedDB;\n if (state.isBeingOpened || db.idbdb)\n return state.dbReadyPromise.then(function () { return state.dbOpenError ?\n rejection(state.dbOpenError) :\n db; });\n debug && (state.openCanceller._stackHolder = getErrorWithStack());\n state.isBeingOpened = true;\n state.dbOpenError = null;\n state.openComplete = false;\n var openCanceller = state.openCanceller;\n function throwIfCancelled() {\n if (state.openCanceller !== openCanceller)\n throw new exceptions.DatabaseClosed('db.open() was cancelled');\n }\n var resolveDbReady = state.dbReadyResolve,\n upgradeTransaction = null, wasCreated = false;\n return DexiePromise.race([openCanceller, (typeof navigator === 'undefined' ? DexiePromise.resolve() : idbReady()).then(function () { return new DexiePromise(function (resolve, reject) {\n throwIfCancelled();\n if (!indexedDB)\n throw new exceptions.MissingAPI();\n var dbName = db.name;\n var req = state.autoSchema ?\n indexedDB.open(dbName) :\n indexedDB.open(dbName, Math.round(db.verno * 10));\n if (!req)\n throw new exceptions.MissingAPI();\n req.onerror = eventRejectHandler(reject);\n req.onblocked = wrap(db._fireOnBlocked);\n req.onupgradeneeded = wrap(function (e) {\n upgradeTransaction = req.transaction;\n if (state.autoSchema && !db._options.allowEmptyDB) {\n req.onerror = preventDefault;\n upgradeTransaction.abort();\n req.result.close();\n var delreq = indexedDB.deleteDatabase(dbName);\n delreq.onsuccess = delreq.onerror = wrap(function () {\n reject(new exceptions.NoSuchDatabase(\"Database \" + dbName + \" doesnt exist\"));\n });\n }\n else {\n upgradeTransaction.onerror = eventRejectHandler(reject);\n var oldVer = e.oldVersion > Math.pow(2, 62) ? 0 : e.oldVersion;\n wasCreated = oldVer < 1;\n db._novip.idbdb = req.result;\n runUpgraders(db, oldVer / 10, upgradeTransaction, reject);\n }\n }, reject);\n req.onsuccess = wrap(function () {\n upgradeTransaction = null;\n var idbdb = db._novip.idbdb = req.result;\n var objectStoreNames = slice(idbdb.objectStoreNames);\n if (objectStoreNames.length > 0)\n try {\n var tmpTrans = idbdb.transaction(safariMultiStoreFix(objectStoreNames), 'readonly');\n if (state.autoSchema)\n readGlobalSchema(db, idbdb, tmpTrans);\n else {\n adjustToExistingIndexNames(db, db._dbSchema, tmpTrans);\n if (!verifyInstalledSchema(db, tmpTrans)) {\n console.warn(\"Dexie SchemaDiff: Schema was extended without increasing the number passed to db.version(). Some queries may fail.\");\n }\n }\n generateMiddlewareStacks(db, tmpTrans);\n }\n catch (e) {\n }\n connections.push(db);\n idbdb.onversionchange = wrap(function (ev) {\n state.vcFired = true;\n db.on(\"versionchange\").fire(ev);\n });\n idbdb.onclose = wrap(function (ev) {\n db.on(\"close\").fire(ev);\n });\n if (wasCreated)\n _onDatabaseCreated(db._deps, dbName);\n resolve();\n }, reject);\n }); })]).then(function () {\n throwIfCancelled();\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(function () { return db.on.ready.fire(db.vip); })).then(function fireRemainders() {\n if (state.onReadyBeingFired.length > 0) {\n var remainders_1 = state.onReadyBeingFired.reduce(promisableChain, nop);\n state.onReadyBeingFired = [];\n return DexiePromise.resolve(vip(function () { return remainders_1(db.vip); })).then(fireRemainders);\n }\n });\n }).finally(function () {\n state.onReadyBeingFired = null;\n state.isBeingOpened = false;\n }).then(function () {\n return db;\n }).catch(function (err) {\n state.dbOpenError = err;\n try {\n upgradeTransaction && upgradeTransaction.abort();\n }\n catch (_a) { }\n if (openCanceller === state.openCanceller) {\n db._close();\n }\n return rejection(err);\n }).finally(function () {\n state.openComplete = true;\n resolveDbReady();\n });\n}\n\nfunction awaitIterator(iterator) {\n var callNext = function (result) { return iterator.next(result); }, doThrow = function (error) { return iterator.throw(error); }, onSuccess = step(callNext), onError = step(doThrow);\n function step(getNext) {\n return function (val) {\n var next = getNext(val), value = next.value;\n return next.done ? value :\n (!value || typeof value.then !== 'function' ?\n isArray(value) ? Promise.all(value).then(onSuccess, onError) : onSuccess(value) :\n value.then(onSuccess, onError));\n };\n }\n return step(callNext)();\n}\n\nfunction extractTransactionArgs(mode, _tableArgs_, scopeFunc) {\n var i = arguments.length;\n if (i < 2)\n throw new exceptions.InvalidArgument(\"Too few arguments\");\n var args = new Array(i - 1);\n while (--i)\n args[i - 1] = arguments[i];\n scopeFunc = args.pop();\n var tables = flatten(args);\n return [mode, tables, scopeFunc];\n}\nfunction enterTransactionScope(db, mode, storeNames, parentTransaction, scopeFunc) {\n return DexiePromise.resolve().then(function () {\n var transless = PSD.transless || PSD;\n var trans = db._createTransaction(mode, storeNames, db._dbSchema, parentTransaction);\n var zoneProps = {\n trans: trans,\n transless: transless\n };\n if (parentTransaction) {\n trans.idbtrans = parentTransaction.idbtrans;\n }\n else {\n try {\n trans.create();\n db._state.PR1398_maxLoop = 3;\n }\n catch (ex) {\n if (ex.name === errnames.InvalidState && db.isOpen() && --db._state.PR1398_maxLoop > 0) {\n console.warn('Dexie: Need to reopen db');\n db._close();\n return db.open().then(function () { return enterTransactionScope(db, mode, storeNames, null, scopeFunc); });\n }\n return rejection(ex);\n }\n }\n var scopeFuncIsAsync = isAsyncFunction(scopeFunc);\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var returnValue;\n var promiseFollowed = DexiePromise.follow(function () {\n returnValue = scopeFunc.call(trans, trans);\n if (returnValue) {\n if (scopeFuncIsAsync) {\n var decrementor = decrementExpectedAwaits.bind(null, null);\n returnValue.then(decrementor, decrementor);\n }\n else if (typeof returnValue.next === 'function' && typeof returnValue.throw === 'function') {\n returnValue = awaitIterator(returnValue);\n }\n }\n }, zoneProps);\n return (returnValue && typeof returnValue.then === 'function' ?\n DexiePromise.resolve(returnValue).then(function (x) { return trans.active ?\n x\n : rejection(new exceptions.PrematureCommit(\"Transaction committed too early. See http://bit.ly/2kdckMn\")); })\n : promiseFollowed.then(function () { return returnValue; })).then(function (x) {\n if (parentTransaction)\n trans._resolve();\n return trans._completion.then(function () { return x; });\n }).catch(function (e) {\n trans._reject(e);\n return rejection(e);\n });\n });\n}\n\nfunction pad(a, value, count) {\n var result = isArray(a) ? a.slice() : [a];\n for (var i = 0; i < count; ++i)\n result.push(value);\n return result;\n}\nfunction createVirtualIndexMiddleware(down) {\n return __assign(__assign({}, down), { table: function (tableName) {\n var table = down.table(tableName);\n var schema = table.schema;\n var indexLookup = {};\n var allVirtualIndexes = [];\n function addVirtualIndexes(keyPath, keyTail, lowLevelIndex) {\n var keyPathAlias = getKeyPathAlias(keyPath);\n var indexList = (indexLookup[keyPathAlias] = indexLookup[keyPathAlias] || []);\n var keyLength = keyPath == null ? 0 : typeof keyPath === 'string' ? 1 : keyPath.length;\n var isVirtual = keyTail > 0;\n var virtualIndex = __assign(__assign({}, lowLevelIndex), { isVirtual: isVirtual, keyTail: keyTail, keyLength: keyLength, extractKey: getKeyExtractor(keyPath), unique: !isVirtual && lowLevelIndex.unique });\n indexList.push(virtualIndex);\n if (!virtualIndex.isPrimaryKey) {\n allVirtualIndexes.push(virtualIndex);\n }\n if (keyLength > 1) {\n var virtualKeyPath = keyLength === 2 ?\n keyPath[0] :\n keyPath.slice(0, keyLength - 1);\n addVirtualIndexes(virtualKeyPath, keyTail + 1, lowLevelIndex);\n }\n indexList.sort(function (a, b) { return a.keyTail - b.keyTail; });\n return virtualIndex;\n }\n var primaryKey = addVirtualIndexes(schema.primaryKey.keyPath, 0, schema.primaryKey);\n indexLookup[\":id\"] = [primaryKey];\n for (var _i = 0, _a = schema.indexes; _i < _a.length; _i++) {\n var index = _a[_i];\n addVirtualIndexes(index.keyPath, 0, index);\n }\n function findBestIndex(keyPath) {\n var result = indexLookup[getKeyPathAlias(keyPath)];\n return result && result[0];\n }\n function translateRange(range, keyTail) {\n return {\n type: range.type === 1 ?\n 2 :\n range.type,\n lower: pad(range.lower, range.lowerOpen ? down.MAX_KEY : down.MIN_KEY, keyTail),\n lowerOpen: true,\n upper: pad(range.upper, range.upperOpen ? down.MIN_KEY : down.MAX_KEY, keyTail),\n upperOpen: true\n };\n }\n function translateRequest(req) {\n var index = req.query.index;\n return index.isVirtual ? __assign(__assign({}, req), { query: {\n index: index,\n range: translateRange(req.query.range, index.keyTail)\n } }) : req;\n }\n var result = __assign(__assign({}, table), { schema: __assign(__assign({}, schema), { primaryKey: primaryKey, indexes: allVirtualIndexes, getIndexByKeyPath: findBestIndex }), count: function (req) {\n return table.count(translateRequest(req));\n }, query: function (req) {\n return table.query(translateRequest(req));\n }, openCursor: function (req) {\n var _a = req.query.index, keyTail = _a.keyTail, isVirtual = _a.isVirtual, keyLength = _a.keyLength;\n if (!isVirtual)\n return table.openCursor(req);\n function createVirtualCursor(cursor) {\n function _continue(key) {\n key != null ?\n cursor.continue(pad(key, req.reverse ? down.MAX_KEY : down.MIN_KEY, keyTail)) :\n req.unique ?\n cursor.continue(cursor.key.slice(0, keyLength)\n .concat(req.reverse\n ? down.MIN_KEY\n : down.MAX_KEY, keyTail)) :\n cursor.continue();\n }\n var virtualCursor = Object.create(cursor, {\n continue: { value: _continue },\n continuePrimaryKey: {\n value: function (key, primaryKey) {\n cursor.continuePrimaryKey(pad(key, down.MAX_KEY, keyTail), primaryKey);\n }\n },\n primaryKey: {\n get: function () {\n return cursor.primaryKey;\n }\n },\n key: {\n get: function () {\n var key = cursor.key;\n return keyLength === 1 ?\n key[0] :\n key.slice(0, keyLength);\n }\n },\n value: {\n get: function () {\n return cursor.value;\n }\n }\n });\n return virtualCursor;\n }\n return table.openCursor(translateRequest(req))\n .then(function (cursor) { return cursor && createVirtualCursor(cursor); });\n } });\n return result;\n } });\n}\nvar virtualIndexMiddleware = {\n stack: \"dbcore\",\n name: \"VirtualIndexMiddleware\",\n level: 1,\n create: createVirtualIndexMiddleware\n};\n\nfunction getObjectDiff(a, b, rv, prfx) {\n rv = rv || {};\n prfx = prfx || '';\n keys(a).forEach(function (prop) {\n if (!hasOwn(b, prop)) {\n rv[prfx + prop] = undefined;\n }\n else {\n var ap = a[prop], bp = b[prop];\n if (typeof ap === 'object' && typeof bp === 'object' && ap && bp) {\n var apTypeName = toStringTag(ap);\n var bpTypeName = toStringTag(bp);\n if (apTypeName !== bpTypeName) {\n rv[prfx + prop] = b[prop];\n }\n else if (apTypeName === 'Object') {\n getObjectDiff(ap, bp, rv, prfx + prop + '.');\n }\n else if (ap !== bp) {\n rv[prfx + prop] = b[prop];\n }\n }\n else if (ap !== bp)\n rv[prfx + prop] = b[prop];\n }\n });\n keys(b).forEach(function (prop) {\n if (!hasOwn(a, prop)) {\n rv[prfx + prop] = b[prop];\n }\n });\n return rv;\n}\n\nfunction getEffectiveKeys(primaryKey, req) {\n if (req.type === 'delete')\n return req.keys;\n return req.keys || req.values.map(primaryKey.extractKey);\n}\n\nvar hooksMiddleware = {\n stack: \"dbcore\",\n name: \"HooksMiddleware\",\n level: 2,\n create: function (downCore) { return (__assign(__assign({}, downCore), { table: function (tableName) {\n var downTable = downCore.table(tableName);\n var primaryKey = downTable.schema.primaryKey;\n var tableMiddleware = __assign(__assign({}, downTable), { mutate: function (req) {\n var dxTrans = PSD.trans;\n var _a = dxTrans.table(tableName).hook, deleting = _a.deleting, creating = _a.creating, updating = _a.updating;\n switch (req.type) {\n case 'add':\n if (creating.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'put':\n if (creating.fire === nop && updating.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'delete':\n if (deleting.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return addPutOrDelete(req); }, true);\n case 'deleteRange':\n if (deleting.fire === nop)\n break;\n return dxTrans._promise('readwrite', function () { return deleteRange(req); }, true);\n }\n return downTable.mutate(req);\n function addPutOrDelete(req) {\n var dxTrans = PSD.trans;\n var keys = req.keys || getEffectiveKeys(primaryKey, req);\n if (!keys)\n throw new Error(\"Keys missing\");\n req = req.type === 'add' || req.type === 'put' ? __assign(__assign({}, req), { keys: keys }) : __assign({}, req);\n if (req.type !== 'delete')\n req.values = __spreadArray([], req.values, true);\n if (req.keys)\n req.keys = __spreadArray([], req.keys, true);\n return getExistingValues(downTable, req, keys).then(function (existingValues) {\n var contexts = keys.map(function (key, i) {\n var existingValue = existingValues[i];\n var ctx = { onerror: null, onsuccess: null };\n if (req.type === 'delete') {\n deleting.fire.call(ctx, key, existingValue, dxTrans);\n }\n else if (req.type === 'add' || existingValue === undefined) {\n var generatedPrimaryKey = creating.fire.call(ctx, key, req.values[i], dxTrans);\n if (key == null && generatedPrimaryKey != null) {\n key = generatedPrimaryKey;\n req.keys[i] = key;\n if (!primaryKey.outbound) {\n setByKeyPath(req.values[i], primaryKey.keyPath, key);\n }\n }\n }\n else {\n var objectDiff = getObjectDiff(existingValue, req.values[i]);\n var additionalChanges_1 = updating.fire.call(ctx, objectDiff, key, existingValue, dxTrans);\n if (additionalChanges_1) {\n var requestedValue_1 = req.values[i];\n Object.keys(additionalChanges_1).forEach(function (keyPath) {\n if (hasOwn(requestedValue_1, keyPath)) {\n requestedValue_1[keyPath] = additionalChanges_1[keyPath];\n }\n else {\n setByKeyPath(requestedValue_1, keyPath, additionalChanges_1[keyPath]);\n }\n });\n }\n }\n return ctx;\n });\n return downTable.mutate(req).then(function (_a) {\n var failures = _a.failures, results = _a.results, numFailures = _a.numFailures, lastResult = _a.lastResult;\n for (var i = 0; i < keys.length; ++i) {\n var primKey = results ? results[i] : keys[i];\n var ctx = contexts[i];\n if (primKey == null) {\n ctx.onerror && ctx.onerror(failures[i]);\n }\n else {\n ctx.onsuccess && ctx.onsuccess(req.type === 'put' && existingValues[i] ?\n req.values[i] :\n primKey\n );\n }\n }\n return { failures: failures, results: results, numFailures: numFailures, lastResult: lastResult };\n }).catch(function (error) {\n contexts.forEach(function (ctx) { return ctx.onerror && ctx.onerror(error); });\n return Promise.reject(error);\n });\n });\n }\n function deleteRange(req) {\n return deleteNextChunk(req.trans, req.range, 10000);\n }\n function deleteNextChunk(trans, range, limit) {\n return downTable.query({ trans: trans, values: false, query: { index: primaryKey, range: range }, limit: limit })\n .then(function (_a) {\n var result = _a.result;\n return addPutOrDelete({ type: 'delete', keys: result, trans: trans }).then(function (res) {\n if (res.numFailures > 0)\n return Promise.reject(res.failures[0]);\n if (result.length < limit) {\n return { failures: [], numFailures: 0, lastResult: undefined };\n }\n else {\n return deleteNextChunk(trans, __assign(__assign({}, range), { lower: result[result.length - 1], lowerOpen: true }), limit);\n }\n });\n });\n }\n } });\n return tableMiddleware;\n } })); }\n};\nfunction getExistingValues(table, req, effectiveKeys) {\n return req.type === \"add\"\n ? Promise.resolve([])\n : table.getMany({ trans: req.trans, keys: effectiveKeys, cache: \"immutable\" });\n}\n\nfunction getFromTransactionCache(keys, cache, clone) {\n try {\n if (!cache)\n return null;\n if (cache.keys.length < keys.length)\n return null;\n var result = [];\n for (var i = 0, j = 0; i < cache.keys.length && j < keys.length; ++i) {\n if (cmp(cache.keys[i], keys[j]) !== 0)\n continue;\n result.push(clone ? deepClone(cache.values[i]) : cache.values[i]);\n ++j;\n }\n return result.length === keys.length ? result : null;\n }\n catch (_a) {\n return null;\n }\n}\nvar cacheExistingValuesMiddleware = {\n stack: \"dbcore\",\n level: -1,\n create: function (core) {\n return {\n table: function (tableName) {\n var table = core.table(tableName);\n return __assign(__assign({}, table), { getMany: function (req) {\n if (!req.cache) {\n return table.getMany(req);\n }\n var cachedResult = getFromTransactionCache(req.keys, req.trans[\"_cache\"], req.cache === \"clone\");\n if (cachedResult) {\n return DexiePromise.resolve(cachedResult);\n }\n return table.getMany(req).then(function (res) {\n req.trans[\"_cache\"] = {\n keys: req.keys,\n values: req.cache === \"clone\" ? deepClone(res) : res,\n };\n return res;\n });\n }, mutate: function (req) {\n if (req.type !== \"add\")\n req.trans[\"_cache\"] = null;\n return table.mutate(req);\n } });\n },\n };\n },\n};\n\nvar _a;\nfunction isEmptyRange(node) {\n return !(\"from\" in node);\n}\nvar RangeSet = function (fromOrTree, to) {\n if (this) {\n extend(this, arguments.length ? { d: 1, from: fromOrTree, to: arguments.length > 1 ? to : fromOrTree } : { d: 0 });\n }\n else {\n var rv = new RangeSet();\n if (fromOrTree && (\"d\" in fromOrTree)) {\n extend(rv, fromOrTree);\n }\n return rv;\n }\n};\nprops(RangeSet.prototype, (_a = {\n add: function (rangeSet) {\n mergeRanges(this, rangeSet);\n return this;\n },\n addKey: function (key) {\n addRange(this, key, key);\n return this;\n },\n addKeys: function (keys) {\n var _this = this;\n keys.forEach(function (key) { return addRange(_this, key, key); });\n return this;\n }\n },\n _a[iteratorSymbol] = function () {\n return getRangeSetIterator(this);\n },\n _a));\nfunction addRange(target, from, to) {\n var diff = cmp(from, to);\n if (isNaN(diff))\n return;\n if (diff > 0)\n throw RangeError();\n if (isEmptyRange(target))\n return extend(target, { from: from, to: to, d: 1 });\n var left = target.l;\n var right = target.r;\n if (cmp(to, target.from) < 0) {\n left\n ? addRange(left, from, to)\n : (target.l = { from: from, to: to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.to) > 0) {\n right\n ? addRange(right, from, to)\n : (target.r = { from: from, to: to, d: 1, l: null, r: null });\n return rebalance(target);\n }\n if (cmp(from, target.from) < 0) {\n target.from = from;\n target.l = null;\n target.d = right ? right.d + 1 : 1;\n }\n if (cmp(to, target.to) > 0) {\n target.to = to;\n target.r = null;\n target.d = target.l ? target.l.d + 1 : 1;\n }\n var rightWasCutOff = !target.r;\n if (left && !target.l) {\n mergeRanges(target, left);\n }\n if (right && rightWasCutOff) {\n mergeRanges(target, right);\n }\n}\nfunction mergeRanges(target, newSet) {\n function _addRangeSet(target, _a) {\n var from = _a.from, to = _a.to, l = _a.l, r = _a.r;\n addRange(target, from, to);\n if (l)\n _addRangeSet(target, l);\n if (r)\n _addRangeSet(target, r);\n }\n if (!isEmptyRange(newSet))\n _addRangeSet(target, newSet);\n}\nfunction rangesOverlap(rangeSet1, rangeSet2) {\n var i1 = getRangeSetIterator(rangeSet2);\n var nextResult1 = i1.next();\n if (nextResult1.done)\n return false;\n var a = nextResult1.value;\n var i2 = getRangeSetIterator(rangeSet1);\n var nextResult2 = i2.next(a.from);\n var b = nextResult2.value;\n while (!nextResult1.done && !nextResult2.done) {\n if (cmp(b.from, a.to) <= 0 && cmp(b.to, a.from) >= 0)\n return true;\n cmp(a.from, b.from) < 0\n ? (a = (nextResult1 = i1.next(b.from)).value)\n : (b = (nextResult2 = i2.next(a.from)).value);\n }\n return false;\n}\nfunction getRangeSetIterator(node) {\n var state = isEmptyRange(node) ? null : { s: 0, n: node };\n return {\n next: function (key) {\n var keyProvided = arguments.length > 0;\n while (state) {\n switch (state.s) {\n case 0:\n state.s = 1;\n if (keyProvided) {\n while (state.n.l && cmp(key, state.n.from) < 0)\n state = { up: state, n: state.n.l, s: 1 };\n }\n else {\n while (state.n.l)\n state = { up: state, n: state.n.l, s: 1 };\n }\n case 1:\n state.s = 2;\n if (!keyProvided || cmp(key, state.n.to) <= 0)\n return { value: state.n, done: false };\n case 2:\n if (state.n.r) {\n state.s = 3;\n state = { up: state, n: state.n.r, s: 0 };\n continue;\n }\n case 3:\n state = state.up;\n }\n }\n return { done: true };\n },\n };\n}\nfunction rebalance(target) {\n var _a, _b;\n var diff = (((_a = target.r) === null || _a === void 0 ? void 0 : _a.d) || 0) - (((_b = target.l) === null || _b === void 0 ? void 0 : _b.d) || 0);\n var r = diff > 1 ? \"r\" : diff < -1 ? \"l\" : \"\";\n if (r) {\n var l = r === \"r\" ? \"l\" : \"r\";\n var rootClone = __assign({}, target);\n var oldRootRight = target[r];\n target.from = oldRootRight.from;\n target.to = oldRootRight.to;\n target[r] = oldRootRight[r];\n rootClone[r] = oldRootRight[l];\n target[l] = rootClone;\n rootClone.d = computeDepth(rootClone);\n }\n target.d = computeDepth(target);\n}\nfunction computeDepth(_a) {\n var r = _a.r, l = _a.l;\n return (r ? (l ? Math.max(r.d, l.d) : r.d) : l ? l.d : 0) + 1;\n}\n\nvar observabilityMiddleware = {\n stack: \"dbcore\",\n level: 0,\n create: function (core) {\n var dbName = core.schema.name;\n var FULL_RANGE = new RangeSet(core.MIN_KEY, core.MAX_KEY);\n return __assign(__assign({}, core), { table: function (tableName) {\n var table = core.table(tableName);\n var schema = table.schema;\n var primaryKey = schema.primaryKey;\n var extractKey = primaryKey.extractKey, outbound = primaryKey.outbound;\n var tableClone = __assign(__assign({}, table), { mutate: function (req) {\n var trans = req.trans;\n var mutatedParts = trans.mutatedParts || (trans.mutatedParts = {});\n var getRangeSet = function (indexName) {\n var part = \"idb://\" + dbName + \"/\" + tableName + \"/\" + indexName;\n return (mutatedParts[part] ||\n (mutatedParts[part] = new RangeSet()));\n };\n var pkRangeSet = getRangeSet(\"\");\n var delsRangeSet = getRangeSet(\":dels\");\n var type = req.type;\n var _a = req.type === \"deleteRange\"\n ? [req.range]\n : req.type === \"delete\"\n ? [req.keys]\n : req.values.length < 50\n ? [[], req.values]\n : [], keys = _a[0], newObjs = _a[1];\n var oldCache = req.trans[\"_cache\"];\n return table.mutate(req).then(function (res) {\n if (isArray(keys)) {\n if (type !== \"delete\")\n keys = res.results;\n pkRangeSet.addKeys(keys);\n var oldObjs = getFromTransactionCache(keys, oldCache);\n if (!oldObjs && type !== \"add\") {\n delsRangeSet.addKeys(keys);\n }\n if (oldObjs || newObjs) {\n trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs);\n }\n }\n else if (keys) {\n var range = { from: keys.lower, to: keys.upper };\n delsRangeSet.add(range);\n pkRangeSet.add(range);\n }\n else {\n pkRangeSet.add(FULL_RANGE);\n delsRangeSet.add(FULL_RANGE);\n schema.indexes.forEach(function (idx) { return getRangeSet(idx.name).add(FULL_RANGE); });\n }\n return res;\n });\n } });\n var getRange = function (_a) {\n var _b, _c;\n var _d = _a.query, index = _d.index, range = _d.range;\n return [\n index,\n new RangeSet((_b = range.lower) !== null && _b !== void 0 ? _b : core.MIN_KEY, (_c = range.upper) !== null && _c !== void 0 ? _c : core.MAX_KEY),\n ];\n };\n var readSubscribers = {\n get: function (req) { return [primaryKey, new RangeSet(req.key)]; },\n getMany: function (req) { return [primaryKey, new RangeSet().addKeys(req.keys)]; },\n count: getRange,\n query: getRange,\n openCursor: getRange,\n };\n keys(readSubscribers).forEach(function (method) {\n tableClone[method] = function (req) {\n var subscr = PSD.subscr;\n if (subscr) {\n var getRangeSet = function (indexName) {\n var part = \"idb://\" + dbName + \"/\" + tableName + \"/\" + indexName;\n return (subscr[part] ||\n (subscr[part] = new RangeSet()));\n };\n var pkRangeSet_1 = getRangeSet(\"\");\n var delsRangeSet_1 = getRangeSet(\":dels\");\n var _a = readSubscribers[method](req), queriedIndex = _a[0], queriedRanges = _a[1];\n getRangeSet(queriedIndex.name || \"\").add(queriedRanges);\n if (!queriedIndex.isPrimaryKey) {\n if (method === \"count\") {\n delsRangeSet_1.add(FULL_RANGE);\n }\n else {\n var keysPromise_1 = method === \"query\" &&\n outbound &&\n req.values &&\n table.query(__assign(__assign({}, req), { values: false }));\n return table[method].apply(this, arguments).then(function (res) {\n if (method === \"query\") {\n if (outbound && req.values) {\n return keysPromise_1.then(function (_a) {\n var resultingKeys = _a.result;\n pkRangeSet_1.addKeys(resultingKeys);\n return res;\n });\n }\n var pKeys = req.values\n ? res.result.map(extractKey)\n : res.result;\n if (req.values) {\n pkRangeSet_1.addKeys(pKeys);\n }\n else {\n delsRangeSet_1.addKeys(pKeys);\n }\n }\n else if (method === \"openCursor\") {\n var cursor_1 = res;\n var wantValues_1 = req.values;\n return (cursor_1 &&\n Object.create(cursor_1, {\n key: {\n get: function () {\n delsRangeSet_1.addKey(cursor_1.primaryKey);\n return cursor_1.key;\n },\n },\n primaryKey: {\n get: function () {\n var pkey = cursor_1.primaryKey;\n delsRangeSet_1.addKey(pkey);\n return pkey;\n },\n },\n value: {\n get: function () {\n wantValues_1 && pkRangeSet_1.addKey(cursor_1.primaryKey);\n return cursor_1.value;\n },\n },\n }));\n }\n return res;\n });\n }\n }\n }\n return table[method].apply(this, arguments);\n };\n });\n return tableClone;\n } });\n },\n};\nfunction trackAffectedIndexes(getRangeSet, schema, oldObjs, newObjs) {\n function addAffectedIndex(ix) {\n var rangeSet = getRangeSet(ix.name || \"\");\n function extractKey(obj) {\n return obj != null ? ix.extractKey(obj) : null;\n }\n var addKeyOrKeys = function (key) { return ix.multiEntry && isArray(key)\n ? key.forEach(function (key) { return rangeSet.addKey(key); })\n : rangeSet.addKey(key); };\n (oldObjs || newObjs).forEach(function (_, i) {\n var oldKey = oldObjs && extractKey(oldObjs[i]);\n var newKey = newObjs && extractKey(newObjs[i]);\n if (cmp(oldKey, newKey) !== 0) {\n if (oldKey != null)\n addKeyOrKeys(oldKey);\n if (newKey != null)\n addKeyOrKeys(newKey);\n }\n });\n }\n schema.indexes.forEach(addAffectedIndex);\n}\n\nvar Dexie$1 = (function () {\n function Dexie(name, options) {\n var _this = this;\n this._middlewares = {};\n this.verno = 0;\n var deps = Dexie.dependencies;\n this._options = options = __assign({\n addons: Dexie.addons, autoOpen: true,\n indexedDB: deps.indexedDB, IDBKeyRange: deps.IDBKeyRange }, options);\n this._deps = {\n indexedDB: options.indexedDB,\n IDBKeyRange: options.IDBKeyRange\n };\n var addons = options.addons;\n this._dbSchema = {};\n this._versions = [];\n this._storeNames = [];\n this._allTables = {};\n this.idbdb = null;\n this._novip = this;\n var state = {\n dbOpenError: null,\n isBeingOpened: false,\n onReadyBeingFired: null,\n openComplete: false,\n dbReadyResolve: nop,\n dbReadyPromise: null,\n cancelOpen: nop,\n openCanceller: null,\n autoSchema: true,\n PR1398_maxLoop: 3\n };\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n this._state = state;\n this.name = name;\n this.on = Events(this, \"populate\", \"blocked\", \"versionchange\", \"close\", { ready: [promisableChain, nop] });\n this.on.ready.subscribe = override(this.on.ready.subscribe, function (subscribe) {\n return function (subscriber, bSticky) {\n Dexie.vip(function () {\n var state = _this._state;\n if (state.openComplete) {\n if (!state.dbOpenError)\n DexiePromise.resolve().then(subscriber);\n if (bSticky)\n subscribe(subscriber);\n }\n else if (state.onReadyBeingFired) {\n state.onReadyBeingFired.push(subscriber);\n if (bSticky)\n subscribe(subscriber);\n }\n else {\n subscribe(subscriber);\n var db_1 = _this;\n if (!bSticky)\n subscribe(function unsubscribe() {\n db_1.on.ready.unsubscribe(subscriber);\n db_1.on.ready.unsubscribe(unsubscribe);\n });\n }\n });\n };\n });\n this.Collection = createCollectionConstructor(this);\n this.Table = createTableConstructor(this);\n this.Transaction = createTransactionConstructor(this);\n this.Version = createVersionConstructor(this);\n this.WhereClause = createWhereClauseConstructor(this);\n this.on(\"versionchange\", function (ev) {\n if (ev.newVersion > 0)\n console.warn(\"Another connection wants to upgrade database '\" + _this.name + \"'. Closing db now to resume the upgrade.\");\n else\n console.warn(\"Another connection wants to delete database '\" + _this.name + \"'. Closing db now to resume the delete request.\");\n _this.close();\n });\n this.on(\"blocked\", function (ev) {\n if (!ev.newVersion || ev.newVersion < ev.oldVersion)\n console.warn(\"Dexie.delete('\" + _this.name + \"') was blocked\");\n else\n console.warn(\"Upgrade '\" + _this.name + \"' blocked by other connection holding version \" + ev.oldVersion / 10);\n });\n this._maxKey = getMaxKey(options.IDBKeyRange);\n this._createTransaction = function (mode, storeNames, dbschema, parentTransaction) { return new _this.Transaction(mode, storeNames, dbschema, _this._options.chromeTransactionDurability, parentTransaction); };\n this._fireOnBlocked = function (ev) {\n _this.on(\"blocked\").fire(ev);\n connections\n .filter(function (c) { return c.name === _this.name && c !== _this && !c._state.vcFired; })\n .map(function (c) { return c.on(\"versionchange\").fire(ev); });\n };\n this.use(virtualIndexMiddleware);\n this.use(hooksMiddleware);\n this.use(observabilityMiddleware);\n this.use(cacheExistingValuesMiddleware);\n this.vip = Object.create(this, { _vip: { value: true } });\n addons.forEach(function (addon) { return addon(_this); });\n }\n Dexie.prototype.version = function (versionNumber) {\n if (isNaN(versionNumber) || versionNumber < 0.1)\n throw new exceptions.Type(\"Given version is not a positive number\");\n versionNumber = Math.round(versionNumber * 10) / 10;\n if (this.idbdb || this._state.isBeingOpened)\n throw new exceptions.Schema(\"Cannot add version when database is open\");\n this.verno = Math.max(this.verno, versionNumber);\n var versions = this._versions;\n var versionInstance = versions.filter(function (v) { return v._cfg.version === versionNumber; })[0];\n if (versionInstance)\n return versionInstance;\n versionInstance = new this.Version(versionNumber);\n versions.push(versionInstance);\n versions.sort(lowerVersionFirst);\n versionInstance.stores({});\n this._state.autoSchema = false;\n return versionInstance;\n };\n Dexie.prototype._whenReady = function (fn) {\n var _this = this;\n return (this.idbdb && (this._state.openComplete || PSD.letThrough || this._vip)) ? fn() : new DexiePromise(function (resolve, reject) {\n if (_this._state.openComplete) {\n return reject(new exceptions.DatabaseClosed(_this._state.dbOpenError));\n }\n if (!_this._state.isBeingOpened) {\n if (!_this._options.autoOpen) {\n reject(new exceptions.DatabaseClosed());\n return;\n }\n _this.open().catch(nop);\n }\n _this._state.dbReadyPromise.then(resolve, reject);\n }).then(fn);\n };\n Dexie.prototype.use = function (_a) {\n var stack = _a.stack, create = _a.create, level = _a.level, name = _a.name;\n if (name)\n this.unuse({ stack: stack, name: name });\n var middlewares = this._middlewares[stack] || (this._middlewares[stack] = []);\n middlewares.push({ stack: stack, create: create, level: level == null ? 10 : level, name: name });\n middlewares.sort(function (a, b) { return a.level - b.level; });\n return this;\n };\n Dexie.prototype.unuse = function (_a) {\n var stack = _a.stack, name = _a.name, create = _a.create;\n if (stack && this._middlewares[stack]) {\n this._middlewares[stack] = this._middlewares[stack].filter(function (mw) {\n return create ? mw.create !== create :\n name ? mw.name !== name :\n false;\n });\n }\n return this;\n };\n Dexie.prototype.open = function () {\n return dexieOpen(this);\n };\n Dexie.prototype._close = function () {\n var state = this._state;\n var idx = connections.indexOf(this);\n if (idx >= 0)\n connections.splice(idx, 1);\n if (this.idbdb) {\n try {\n this.idbdb.close();\n }\n catch (e) { }\n this._novip.idbdb = null;\n }\n state.dbReadyPromise = new DexiePromise(function (resolve) {\n state.dbReadyResolve = resolve;\n });\n state.openCanceller = new DexiePromise(function (_, reject) {\n state.cancelOpen = reject;\n });\n };\n Dexie.prototype.close = function () {\n this._close();\n var state = this._state;\n this._options.autoOpen = false;\n state.dbOpenError = new exceptions.DatabaseClosed();\n if (state.isBeingOpened)\n state.cancelOpen(state.dbOpenError);\n };\n Dexie.prototype.delete = function () {\n var _this = this;\n var hasArguments = arguments.length > 0;\n var state = this._state;\n return new DexiePromise(function (resolve, reject) {\n var doDelete = function () {\n _this.close();\n var req = _this._deps.indexedDB.deleteDatabase(_this.name);\n req.onsuccess = wrap(function () {\n _onDatabaseDeleted(_this._deps, _this.name);\n resolve();\n });\n req.onerror = eventRejectHandler(reject);\n req.onblocked = _this._fireOnBlocked;\n };\n if (hasArguments)\n throw new exceptions.InvalidArgument(\"Arguments not allowed in db.delete()\");\n if (state.isBeingOpened) {\n state.dbReadyPromise.then(doDelete);\n }\n else {\n doDelete();\n }\n });\n };\n Dexie.prototype.backendDB = function () {\n return this.idbdb;\n };\n Dexie.prototype.isOpen = function () {\n return this.idbdb !== null;\n };\n Dexie.prototype.hasBeenClosed = function () {\n var dbOpenError = this._state.dbOpenError;\n return dbOpenError && (dbOpenError.name === 'DatabaseClosed');\n };\n Dexie.prototype.hasFailed = function () {\n return this._state.dbOpenError !== null;\n };\n Dexie.prototype.dynamicallyOpened = function () {\n return this._state.autoSchema;\n };\n Object.defineProperty(Dexie.prototype, \"tables\", {\n get: function () {\n var _this = this;\n return keys(this._allTables).map(function (name) { return _this._allTables[name]; });\n },\n enumerable: false,\n configurable: true\n });\n Dexie.prototype.transaction = function () {\n var args = extractTransactionArgs.apply(this, arguments);\n return this._transaction.apply(this, args);\n };\n Dexie.prototype._transaction = function (mode, tables, scopeFunc) {\n var _this = this;\n var parentTransaction = PSD.trans;\n if (!parentTransaction || parentTransaction.db !== this || mode.indexOf('!') !== -1)\n parentTransaction = null;\n var onlyIfCompatible = mode.indexOf('?') !== -1;\n mode = mode.replace('!', '').replace('?', '');\n var idbMode, storeNames;\n try {\n storeNames = tables.map(function (table) {\n var storeName = table instanceof _this.Table ? table.name : table;\n if (typeof storeName !== 'string')\n throw new TypeError(\"Invalid table argument to Dexie.transaction(). Only Table or String are allowed\");\n return storeName;\n });\n if (mode == \"r\" || mode === READONLY)\n idbMode = READONLY;\n else if (mode == \"rw\" || mode == READWRITE)\n idbMode = READWRITE;\n else\n throw new exceptions.InvalidArgument(\"Invalid transaction mode: \" + mode);\n if (parentTransaction) {\n if (parentTransaction.mode === READONLY && idbMode === READWRITE) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n }\n else\n throw new exceptions.SubTransaction(\"Cannot enter a sub-transaction with READWRITE mode when parent transaction is READONLY\");\n }\n if (parentTransaction) {\n storeNames.forEach(function (storeName) {\n if (parentTransaction && parentTransaction.storeNames.indexOf(storeName) === -1) {\n if (onlyIfCompatible) {\n parentTransaction = null;\n }\n else\n throw new exceptions.SubTransaction(\"Table \" + storeName +\n \" not included in parent transaction.\");\n }\n });\n }\n if (onlyIfCompatible && parentTransaction && !parentTransaction.active) {\n parentTransaction = null;\n }\n }\n }\n catch (e) {\n return parentTransaction ?\n parentTransaction._promise(null, function (_, reject) { reject(e); }) :\n rejection(e);\n }\n var enterTransaction = enterTransactionScope.bind(null, this, idbMode, storeNames, parentTransaction, scopeFunc);\n return (parentTransaction ?\n parentTransaction._promise(idbMode, enterTransaction, \"lock\") :\n PSD.trans ?\n usePSD(PSD.transless, function () { return _this._whenReady(enterTransaction); }) :\n this._whenReady(enterTransaction));\n };\n Dexie.prototype.table = function (tableName) {\n if (!hasOwn(this._allTables, tableName)) {\n throw new exceptions.InvalidTable(\"Table \" + tableName + \" does not exist\");\n }\n return this._allTables[tableName];\n };\n return Dexie;\n}());\n\nvar symbolObservable = typeof Symbol !== \"undefined\" && \"observable\" in Symbol\n ? Symbol.observable\n : \"@@observable\";\nvar Observable = (function () {\n function Observable(subscribe) {\n this._subscribe = subscribe;\n }\n Observable.prototype.subscribe = function (x, error, complete) {\n return this._subscribe(!x || typeof x === \"function\" ? { next: x, error: error, complete: complete } : x);\n };\n Observable.prototype[symbolObservable] = function () {\n return this;\n };\n return Observable;\n}());\n\nfunction extendObservabilitySet(target, newSet) {\n keys(newSet).forEach(function (part) {\n var rangeSet = target[part] || (target[part] = new RangeSet());\n mergeRanges(rangeSet, newSet[part]);\n });\n return target;\n}\n\nfunction liveQuery(querier) {\n return new Observable(function (observer) {\n var scopeFuncIsAsync = isAsyncFunction(querier);\n function execute(subscr) {\n if (scopeFuncIsAsync) {\n incrementExpectedAwaits();\n }\n var exec = function () { return newScope(querier, { subscr: subscr, trans: null }); };\n var rv = PSD.trans\n ?\n usePSD(PSD.transless, exec)\n : exec();\n if (scopeFuncIsAsync) {\n rv.then(decrementExpectedAwaits, decrementExpectedAwaits);\n }\n return rv;\n }\n var closed = false;\n var accumMuts = {};\n var currentObs = {};\n var subscription = {\n get closed() {\n return closed;\n },\n unsubscribe: function () {\n closed = true;\n globalEvents.storagemutated.unsubscribe(mutationListener);\n },\n };\n observer.start && observer.start(subscription);\n var querying = false, startedListening = false;\n function shouldNotify() {\n return keys(currentObs).some(function (key) {\n return accumMuts[key] && rangesOverlap(accumMuts[key], currentObs[key]);\n });\n }\n var mutationListener = function (parts) {\n extendObservabilitySet(accumMuts, parts);\n if (shouldNotify()) {\n doQuery();\n }\n };\n var doQuery = function () {\n if (querying || closed)\n return;\n accumMuts = {};\n var subscr = {};\n var ret = execute(subscr);\n if (!startedListening) {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, mutationListener);\n startedListening = true;\n }\n querying = true;\n Promise.resolve(ret).then(function (result) {\n querying = false;\n if (closed)\n return;\n if (shouldNotify()) {\n doQuery();\n }\n else {\n accumMuts = {};\n currentObs = subscr;\n observer.next && observer.next(result);\n }\n }, function (err) {\n querying = false;\n observer.error && observer.error(err);\n subscription.unsubscribe();\n });\n };\n doQuery();\n return subscription;\n });\n}\n\nvar domDeps;\ntry {\n domDeps = {\n indexedDB: _global.indexedDB || _global.mozIndexedDB || _global.webkitIndexedDB || _global.msIndexedDB,\n IDBKeyRange: _global.IDBKeyRange || _global.webkitIDBKeyRange\n };\n}\ncatch (e) {\n domDeps = { indexedDB: null, IDBKeyRange: null };\n}\n\nvar Dexie = Dexie$1;\nprops(Dexie, __assign(__assign({}, fullNameExceptions), {\n delete: function (databaseName) {\n var db = new Dexie(databaseName, { addons: [] });\n return db.delete();\n },\n exists: function (name) {\n return new Dexie(name, { addons: [] }).open().then(function (db) {\n db.close();\n return true;\n }).catch('NoSuchDatabaseError', function () { return false; });\n },\n getDatabaseNames: function (cb) {\n try {\n return getDatabaseNames(Dexie.dependencies).then(cb);\n }\n catch (_a) {\n return rejection(new exceptions.MissingAPI());\n }\n },\n defineClass: function () {\n function Class(content) {\n extend(this, content);\n }\n return Class;\n }, ignoreTransaction: function (scopeFunc) {\n return PSD.trans ?\n usePSD(PSD.transless, scopeFunc) :\n scopeFunc();\n }, vip: vip, async: function (generatorFn) {\n return function () {\n try {\n var rv = awaitIterator(generatorFn.apply(this, arguments));\n if (!rv || typeof rv.then !== 'function')\n return DexiePromise.resolve(rv);\n return rv;\n }\n catch (e) {\n return rejection(e);\n }\n };\n }, spawn: function (generatorFn, args, thiz) {\n try {\n var rv = awaitIterator(generatorFn.apply(thiz, args || []));\n if (!rv || typeof rv.then !== 'function')\n return DexiePromise.resolve(rv);\n return rv;\n }\n catch (e) {\n return rejection(e);\n }\n },\n currentTransaction: {\n get: function () { return PSD.trans || null; }\n }, waitFor: function (promiseOrFunction, optionalTimeout) {\n var promise = DexiePromise.resolve(typeof promiseOrFunction === 'function' ?\n Dexie.ignoreTransaction(promiseOrFunction) :\n promiseOrFunction)\n .timeout(optionalTimeout || 60000);\n return PSD.trans ?\n PSD.trans.waitFor(promise) :\n promise;\n },\n Promise: DexiePromise,\n debug: {\n get: function () { return debug; },\n set: function (value) {\n setDebug(value, value === 'dexie' ? function () { return true; } : dexieStackFrameFilter);\n }\n },\n derive: derive, extend: extend, props: props, override: override,\n Events: Events, on: globalEvents, liveQuery: liveQuery, extendObservabilitySet: extendObservabilitySet,\n getByKeyPath: getByKeyPath, setByKeyPath: setByKeyPath, delByKeyPath: delByKeyPath, shallowClone: shallowClone, deepClone: deepClone, getObjectDiff: getObjectDiff, cmp: cmp, asap: asap$1,\n minKey: minKey,\n addons: [],\n connections: connections,\n errnames: errnames,\n dependencies: domDeps,\n semVer: DEXIE_VERSION, version: DEXIE_VERSION.split('.')\n .map(function (n) { return parseInt(n); })\n .reduce(function (p, c, i) { return p + (c / Math.pow(10, i * 2)); }) }));\nDexie.maxKey = getMaxKey(Dexie.dependencies.IDBKeyRange);\n\nif (typeof dispatchEvent !== 'undefined' && typeof addEventListener !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (updatedParts) {\n if (!propagatingLocally) {\n var event_1;\n if (isIEOrEdge) {\n event_1 = document.createEvent('CustomEvent');\n event_1.initCustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, true, true, updatedParts);\n }\n else {\n event_1 = new CustomEvent(STORAGE_MUTATED_DOM_EVENT_NAME, {\n detail: updatedParts\n });\n }\n propagatingLocally = true;\n dispatchEvent(event_1);\n propagatingLocally = false;\n }\n });\n addEventListener(STORAGE_MUTATED_DOM_EVENT_NAME, function (_a) {\n var detail = _a.detail;\n if (!propagatingLocally) {\n propagateLocally(detail);\n }\n });\n}\nfunction propagateLocally(updateParts) {\n var wasMe = propagatingLocally;\n try {\n propagatingLocally = true;\n globalEvents.storagemutated.fire(updateParts);\n }\n finally {\n propagatingLocally = wasMe;\n }\n}\nvar propagatingLocally = false;\n\nif (typeof BroadcastChannel !== 'undefined') {\n var bc_1 = new BroadcastChannel(STORAGE_MUTATED_DOM_EVENT_NAME);\n if (typeof bc_1.unref === 'function') {\n bc_1.unref();\n }\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {\n if (!propagatingLocally) {\n bc_1.postMessage(changedParts);\n }\n });\n bc_1.onmessage = function (ev) {\n if (ev.data)\n propagateLocally(ev.data);\n };\n}\nelse if (typeof self !== 'undefined' && typeof navigator !== 'undefined') {\n globalEvents(DEXIE_STORAGE_MUTATED_EVENT_NAME, function (changedParts) {\n try {\n if (!propagatingLocally) {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(STORAGE_MUTATED_DOM_EVENT_NAME, JSON.stringify({\n trig: Math.random(),\n changedParts: changedParts,\n }));\n }\n if (typeof self['clients'] === 'object') {\n __spreadArray([], self['clients'].matchAll({ includeUncontrolled: true }), true).forEach(function (client) {\n return client.postMessage({\n type: STORAGE_MUTATED_DOM_EVENT_NAME,\n changedParts: changedParts,\n });\n });\n }\n }\n }\n catch (_a) { }\n });\n if (typeof addEventListener !== 'undefined') {\n addEventListener('storage', function (ev) {\n if (ev.key === STORAGE_MUTATED_DOM_EVENT_NAME) {\n var data = JSON.parse(ev.newValue);\n if (data)\n propagateLocally(data.changedParts);\n }\n });\n }\n var swContainer = self.document && navigator.serviceWorker;\n if (swContainer) {\n swContainer.addEventListener('message', propagateMessageLocally);\n }\n}\nfunction propagateMessageLocally(_a) {\n var data = _a.data;\n if (data && data.type === STORAGE_MUTATED_DOM_EVENT_NAME) {\n propagateLocally(data.changedParts);\n }\n}\n\nDexiePromise.rejectionMapper = mapError;\nsetDebug(debug, dexieStackFrameFilter);\n\nexport { Dexie$1 as Dexie, RangeSet, Dexie$1 as default, liveQuery, mergeRanges, rangesOverlap };\n//# sourceMappingURL=dexie.mjs.map\n","import Dexie from 'dexie'\n\nexport const db = new Dexie('pushDatabase')\nexport const bm = new Dexie('bookmarksDatabase')\n\ndb.version(1).stores({\n messages: '++id, uuid'\n})\n\nbm.version(1).stores({\n messages: '++id, uuid, article'\n})\n","import window from 'global/window'; // const log2 = Math.log2 ? Math.log2 : (x) => (Math.log(x) / Math.log(2));\n\nvar repeat = function repeat(str, len) {\n var acc = '';\n\n while (len--) {\n acc += str;\n }\n\n return acc;\n}; // count the number of bits it would take to represent a number\n// we used to do this with log2 but BigInt does not support builtin math\n// Math.ceil(log2(x));\n\n\nexport var countBits = function countBits(x) {\n return x.toString(2).length;\n}; // count the number of whole bytes it would take to represent a number\n\nexport var countBytes = function countBytes(x) {\n return Math.ceil(countBits(x) / 8);\n};\nexport var padStart = function padStart(b, len, str) {\n if (str === void 0) {\n str = ' ';\n }\n\n return (repeat(str, len) + b.toString()).slice(-len);\n};\nexport var isArrayBufferView = function isArrayBufferView(obj) {\n if (ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(obj);\n }\n\n return obj && obj.buffer instanceof ArrayBuffer;\n};\nexport var isTypedArray = function isTypedArray(obj) {\n return isArrayBufferView(obj);\n};\nexport var toUint8 = function toUint8(bytes) {\n if (bytes instanceof Uint8Array) {\n return bytes;\n }\n\n if (!Array.isArray(bytes) && !isTypedArray(bytes) && !(bytes instanceof ArrayBuffer)) {\n // any non-number or NaN leads to empty uint8array\n // eslint-disable-next-line\n if (typeof bytes !== 'number' || typeof bytes === 'number' && bytes !== bytes) {\n bytes = 0;\n } else {\n bytes = [bytes];\n }\n }\n\n return new Uint8Array(bytes && bytes.buffer || bytes, bytes && bytes.byteOffset || 0, bytes && bytes.byteLength || 0);\n};\nexport var toHexString = function toHexString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(16), 2, '0');\n }\n\n return str;\n};\nexport var toBinaryString = function toBinaryString(bytes) {\n bytes = toUint8(bytes);\n var str = '';\n\n for (var i = 0; i < bytes.length; i++) {\n str += padStart(bytes[i].toString(2), 8, '0');\n }\n\n return str;\n};\nvar BigInt = window.BigInt || Number;\nvar BYTE_TABLE = [BigInt('0x1'), BigInt('0x100'), BigInt('0x10000'), BigInt('0x1000000'), BigInt('0x100000000'), BigInt('0x10000000000'), BigInt('0x1000000000000'), BigInt('0x100000000000000'), BigInt('0x10000000000000000')];\nexport var ENDIANNESS = function () {\n var a = new Uint16Array([0xFFCC]);\n var b = new Uint8Array(a.buffer, a.byteOffset, a.byteLength);\n\n if (b[0] === 0xFF) {\n return 'big';\n }\n\n if (b[0] === 0xCC) {\n return 'little';\n }\n\n return 'unknown';\n}();\nexport var IS_BIG_ENDIAN = ENDIANNESS === 'big';\nexport var IS_LITTLE_ENDIAN = ENDIANNESS === 'little';\nexport var bytesToNumber = function bytesToNumber(bytes, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$signed = _ref.signed,\n signed = _ref$signed === void 0 ? false : _ref$signed,\n _ref$le = _ref.le,\n le = _ref$le === void 0 ? false : _ref$le;\n\n bytes = toUint8(bytes);\n var fn = le ? 'reduce' : 'reduceRight';\n var obj = bytes[fn] ? bytes[fn] : Array.prototype[fn];\n var number = obj.call(bytes, function (total, byte, i) {\n var exponent = le ? i : Math.abs(i + 1 - bytes.length);\n return total + BigInt(byte) * BYTE_TABLE[exponent];\n }, BigInt(0));\n\n if (signed) {\n var max = BYTE_TABLE[bytes.length] / BigInt(2) - BigInt(1);\n number = BigInt(number);\n\n if (number > max) {\n number -= max;\n number -= max;\n number -= BigInt(2);\n }\n }\n\n return Number(number);\n};\nexport var numberToBytes = function numberToBytes(number, _temp2) {\n var _ref2 = _temp2 === void 0 ? {} : _temp2,\n _ref2$le = _ref2.le,\n le = _ref2$le === void 0 ? false : _ref2$le;\n\n // eslint-disable-next-line\n if (typeof number !== 'bigint' && typeof number !== 'number' || typeof number === 'number' && number !== number) {\n number = 0;\n }\n\n number = BigInt(number);\n var byteCount = countBytes(number);\n var bytes = new Uint8Array(new ArrayBuffer(byteCount));\n\n for (var i = 0; i < byteCount; i++) {\n var byteIndex = le ? i : Math.abs(i + 1 - bytes.length);\n bytes[byteIndex] = Number(number / BYTE_TABLE[i] & BigInt(0xFF));\n\n if (number < 0) {\n bytes[byteIndex] = Math.abs(~bytes[byteIndex]);\n bytes[byteIndex] -= i === 0 ? 1 : 2;\n }\n }\n\n return bytes;\n};\nexport var bytesToString = function bytesToString(bytes) {\n if (!bytes) {\n return '';\n } // TODO: should toUint8 handle cases where we only have 8 bytes\n // but report more since this is a Uint16+ Array?\n\n\n bytes = Array.prototype.slice.call(bytes);\n var string = String.fromCharCode.apply(null, toUint8(bytes));\n\n try {\n return decodeURIComponent(escape(string));\n } catch (e) {// if decodeURIComponent/escape fails, we are dealing with partial\n // or full non string data. Just return the potentially garbled string.\n }\n\n return string;\n};\nexport var stringToBytes = function stringToBytes(string, stringIsBytes) {\n if (typeof string !== 'string' && string && typeof string.toString === 'function') {\n string = string.toString();\n }\n\n if (typeof string !== 'string') {\n return new Uint8Array();\n } // If the string already is bytes, we don't have to do this\n // otherwise we do this so that we split multi length characters\n // into individual bytes\n\n\n if (!stringIsBytes) {\n string = unescape(encodeURIComponent(string));\n }\n\n var view = new Uint8Array(string.length);\n\n for (var i = 0; i < string.length; i++) {\n view[i] = string.charCodeAt(i);\n }\n\n return view;\n};\nexport var concatTypedArrays = function concatTypedArrays() {\n for (var _len = arguments.length, buffers = new Array(_len), _key = 0; _key < _len; _key++) {\n buffers[_key] = arguments[_key];\n }\n\n buffers = buffers.filter(function (b) {\n return b && (b.byteLength || b.length) && typeof b !== 'string';\n });\n\n if (buffers.length <= 1) {\n // for 0 length we will return empty uint8\n // for 1 length we return the first uint8\n return toUint8(buffers[0]);\n }\n\n var totalLen = buffers.reduce(function (total, buf, i) {\n return total + (buf.byteLength || buf.length);\n }, 0);\n var tempBuffer = new Uint8Array(totalLen);\n var offset = 0;\n buffers.forEach(function (buf) {\n buf = toUint8(buf);\n tempBuffer.set(buf, offset);\n offset += buf.byteLength;\n });\n return tempBuffer;\n};\n/**\n * Check if the bytes \"b\" are contained within bytes \"a\".\n *\n * @param {Uint8Array|Array} a\n * Bytes to check in\n *\n * @param {Uint8Array|Array} b\n * Bytes to check for\n *\n * @param {Object} options\n * options\n *\n * @param {Array|Uint8Array} [offset=0]\n * offset to use when looking at bytes in a\n *\n * @param {Array|Uint8Array} [mask=[]]\n * mask to use on bytes before comparison.\n *\n * @return {boolean}\n * If all bytes in b are inside of a, taking into account\n * bit masks.\n */\n\nexport var bytesMatch = function bytesMatch(a, b, _temp3) {\n var _ref3 = _temp3 === void 0 ? {} : _temp3,\n _ref3$offset = _ref3.offset,\n offset = _ref3$offset === void 0 ? 0 : _ref3$offset,\n _ref3$mask = _ref3.mask,\n mask = _ref3$mask === void 0 ? [] : _ref3$mask;\n\n a = toUint8(a);\n b = toUint8(b); // ie 11 does not support uint8 every\n\n var fn = b.every ? b.every : Array.prototype.every;\n return b.length && a.length - offset >= b.length && // ie 11 doesn't support every on uin8\n fn.call(b, function (bByte, i) {\n var aByte = mask[i] ? mask[i] & a[offset + i] : a[offset + i];\n return bByte === aByte;\n });\n};\nexport var sliceBytes = function sliceBytes(src, start, end) {\n if (Uint8Array.prototype.slice) {\n return Uint8Array.prototype.slice.call(src, start, end);\n }\n\n return new Uint8Array(Array.prototype.slice.call(src, start, end));\n};\nexport var reverseBytes = function reverseBytes(src) {\n if (src.reverse) {\n return src.reverse();\n }\n\n return Array.prototype.reverse.call(src);\n};","// Source: http://jsfiddle.net/vWx8V/\n// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes\n\n/**\n * Conenience method returns corresponding value for given keyName or keyCode.\n *\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Mixed}\n * @api public\n */\n\nfunction keyCode(searchInput) {\n // Keyboard Events\n if (searchInput && 'object' === typeof searchInput) {\n var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode\n if (hasKeyCode) searchInput = hasKeyCode\n }\n\n // Numbers\n if ('number' === typeof searchInput) return names[searchInput]\n\n // Everything else (cast to string)\n var search = String(searchInput)\n\n // check codes\n var foundNamedKey = codes[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // check aliases\n var foundNamedKey = aliases[search.toLowerCase()]\n if (foundNamedKey) return foundNamedKey\n\n // weird character?\n if (search.length === 1) return search.charCodeAt(0)\n\n return undefined\n}\n\n/**\n * Compares a keyboard event with a given keyCode or keyName.\n *\n * @param {Event} event Keyboard event that should be tested\n * @param {Mixed} keyCode {Number} or keyName {String}\n * @return {Boolean}\n * @api public\n */\nkeyCode.isEventKey = function isEventKey(event, nameOrCode) {\n if (event && 'object' === typeof event) {\n var keyCode = event.which || event.keyCode || event.charCode\n if (keyCode === null || keyCode === undefined) { return false; }\n if (typeof nameOrCode === 'string') {\n // check codes\n var foundNamedKey = codes[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n \n // check aliases\n var foundNamedKey = aliases[nameOrCode.toLowerCase()]\n if (foundNamedKey) { return foundNamedKey === keyCode; }\n } else if (typeof nameOrCode === 'number') {\n return nameOrCode === keyCode;\n }\n return false;\n }\n}\n\nexports = module.exports = keyCode;\n\n/**\n * Get by name\n *\n * exports.code['enter'] // => 13\n */\n\nvar codes = exports.code = exports.codes = {\n 'backspace': 8,\n 'tab': 9,\n 'enter': 13,\n 'shift': 16,\n 'ctrl': 17,\n 'alt': 18,\n 'pause/break': 19,\n 'caps lock': 20,\n 'esc': 27,\n 'space': 32,\n 'page up': 33,\n 'page down': 34,\n 'end': 35,\n 'home': 36,\n 'left': 37,\n 'up': 38,\n 'right': 39,\n 'down': 40,\n 'insert': 45,\n 'delete': 46,\n 'command': 91,\n 'left command': 91,\n 'right command': 93,\n 'numpad *': 106,\n 'numpad +': 107,\n 'numpad -': 109,\n 'numpad .': 110,\n 'numpad /': 111,\n 'num lock': 144,\n 'scroll lock': 145,\n 'my computer': 182,\n 'my calculator': 183,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n \"'\": 222\n}\n\n// Helper aliases\n\nvar aliases = exports.aliases = {\n 'windows': 91,\n '⇧': 16,\n '⌥': 18,\n '⌃': 17,\n '⌘': 91,\n 'ctl': 17,\n 'control': 17,\n 'option': 18,\n 'pause': 19,\n 'break': 19,\n 'caps': 20,\n 'return': 13,\n 'escape': 27,\n 'spc': 32,\n 'spacebar': 32,\n 'pgup': 33,\n 'pgdn': 34,\n 'ins': 45,\n 'del': 46,\n 'cmd': 91\n}\n\n/*!\n * Programatically add the following\n */\n\n// lower case chars\nfor (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32\n\n// numbers\nfor (var i = 48; i < 58; i++) codes[i - 48] = i\n\n// function keys\nfor (i = 1; i < 13; i++) codes['f'+i] = i + 111\n\n// numpad keys\nfor (i = 0; i < 10; i++) codes['numpad '+i] = i + 96\n\n/**\n * Get by code\n *\n * exports.name[13] // => 'Enter'\n */\n\nvar names = exports.names = exports.title = {} // title for backward compat\n\n// Create reverse mapping\nfor (i in codes) names[codes[i]] = i\n\n// Add aliases\nfor (var alias in aliases) {\n codes[alias] = aliases[alias]\n}\n","var NAMESPACE = require(\"./conventions\").NAMESPACE;\n\n//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\n\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\nvar S_TAG = 0;//tag name offerring\nvar S_ATTR = 1;//attr name offerring\nvar S_ATTR_SPACE=2;//attr name end and space offer\nvar S_EQ = 3;//=space?\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\nvar S_TAG_CLOSE = 7;//closed el\n\n/**\n * Creates an error that will not be caught by XMLReader aka the SAX parser.\n *\n * @param {string} message\n * @param {any?} locator Optional, can provide details about the location in the source\n * @constructor\n */\nfunction ParseError(message, locator) {\n\tthis.message = message\n\tthis.locator = locator\n\tif(Error.captureStackTrace) Error.captureStackTrace(this, ParseError);\n}\nParseError.prototype = new Error();\nParseError.prototype.name = ParseError.name\n\nfunction XMLReader(){\n\n}\n\nXMLReader.prototype = {\n\tparse:function(source,defaultNSMap,entityMap){\n\t\tvar domBuilder = this.domBuilder;\n\t\tdomBuilder.startDocument();\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\n\t\tparse(source,defaultNSMap,entityMap,\n\t\t\t\tdomBuilder,this.errorHandler);\n\t\tdomBuilder.endDocument();\n\t}\n}\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\n\tfunction fixedFromCharCode(code) {\n\t\t// String.prototype.fromCharCode does not supports\n\t\t// > 2 bytes unicode chars directly\n\t\tif (code > 0xffff) {\n\t\t\tcode -= 0x10000;\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\n\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\n\t\t} else {\n\t\t\treturn String.fromCharCode(code);\n\t\t}\n\t}\n\tfunction entityReplacer(a){\n\t\tvar k = a.slice(1,-1);\n\t\tif (Object.hasOwnProperty.call(entityMap, k)) {\n\t\t\treturn entityMap[k];\n\t\t}else if(k.charAt(0) === '#'){\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\n\t\t}else{\n\t\t\terrorHandler.error('entity not found:'+a);\n\t\t\treturn a;\n\t\t}\n\t}\n\tfunction appendText(end){//has some bugs\n\t\tif(end>start){\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\tlocator&&position(start);\n\t\t\tdomBuilder.characters(xt,0,end-start);\n\t\t\tstart = end\n\t\t}\n\t}\n\tfunction position(p,m){\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\n\t\t\tlineStart = m.index;\n\t\t\tlineEnd = lineStart + m[0].length;\n\t\t\tlocator.lineNumber++;\n\t\t\t//console.log('line++:',locator,startPos,endPos)\n\t\t}\n\t\tlocator.columnNumber = p-lineStart+1;\n\t}\n\tvar lineStart = 0;\n\tvar lineEnd = 0;\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\n\tvar locator = domBuilder.locator;\n\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\n\tvar closeMap = {};\n\tvar start = 0;\n\twhile(true){\n\t\ttry{\n\t\t\tvar tagStart = source.indexOf('<',start);\n\t\t\tif(tagStart<0){\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\n\t\t\t\t\tvar doc = domBuilder.doc;\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\n\t \t\t\tdoc.appendChild(text);\n\t \t\t\tdomBuilder.currentElement = text;\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(tagStart>start){\n\t\t\t\tappendText(tagStart);\n\t\t\t}\n\t\t\tswitch(source.charAt(tagStart+1)){\n\t\t\tcase '/':\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\n\t\t\t\tvar tagName = source.substring(tagStart + 2, end).replace(/[ \\t\\n\\r]+$/g, '');\n\t\t\t\tvar config = parseStack.pop();\n\t\t\t\tif(end<0){\n\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\n\t \t\tend = tagStart+1+tagName.length;\n\t \t}else if(tagName.match(/\\s\n\t\t\t\tlocator&&position(tagStart);\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\n\t\t\t\tbreak;\n\t\t\tcase '!':// start){\n\t\t\tstart = end;\n\t\t}else{\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\n\t\t\tappendText(Math.max(tagStart,start)+1);\n\t\t}\n\t}\n}\nfunction copyLocator(f,t){\n\tt.lineNumber = f.lineNumber;\n\tt.columnNumber = f.columnNumber;\n\treturn t;\n}\n\n/**\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\n */\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\n\n\t/**\n\t * @param {string} qname\n\t * @param {string} value\n\t * @param {number} startIndex\n\t */\n\tfunction addAttribute(qname, value, startIndex) {\n\t\tif (el.attributeNames.hasOwnProperty(qname)) {\n\t\t\terrorHandler.fatalError('Attribute ' + qname + ' redefined')\n\t\t}\n\t\tel.addValue(\n\t\t\tqname,\n\t\t\t// @see https://www.w3.org/TR/xml/#AVNormalize\n\t\t\t// since the xmldom sax parser does not \"interpret\" DTD the following is not implemented:\n\t\t\t// - recursive replacement of (DTD) entity references\n\t\t\t// - trimming and collapsing multiple spaces into a single one for attributes that are not of type CDATA\n\t\t\tvalue.replace(/[\\t\\n\\r]/g, ' ').replace(/&#?\\w+;/g, entityReplacer),\n\t\t\tstartIndex\n\t\t)\n\t}\n\tvar attrName;\n\tvar value;\n\tvar p = ++start;\n\tvar s = S_TAG;//status\n\twhile(true){\n\t\tvar c = source.charAt(p);\n\t\tswitch(c){\n\t\tcase '=':\n\t\t\tif(s === S_ATTR){//attrName\n\t\t\t\tattrName = source.slice(start,p);\n\t\t\t\ts = S_EQ;\n\t\t\t}else if(s === S_ATTR_SPACE){\n\t\t\t\ts = S_EQ;\n\t\t\t}else{\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\n\t\t\t\tthrow new Error('attribute equal must after attrName'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '\\'':\n\t\tcase '\"':\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\n\t\t\t\t){//equal\n\t\t\t\tif(s === S_ATTR){\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t}\n\t\t\t\tstart = p+1;\n\t\t\t\tp = source.indexOf(c,start)\n\t\t\t\tif(p>0){\n\t\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\t\taddAttribute(attrName, value, start-1);\n\t\t\t\t\ts = S_ATTR_END;\n\t\t\t\t}else{\n\t\t\t\t\t//fatalError: no end quot match\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\n\t\t\t\t}\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\tvalue = source.slice(start, p);\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\n\t\t\t\tstart = p+1;\n\t\t\t\ts = S_ATTR_END\n\t\t\t}else{\n\t\t\t\t//fatalError: no equal before\n\t\t\t\tthrow new Error('attribute value must after \"=\"'); // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase '/':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\ts =S_TAG_CLOSE;\n\t\t\t\tel.closed = true;\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\tcase S_ATTR:\n\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tel.closed = true;\n\t\t\t\tbreak;\n\t\t\t//case S_EQ:\n\t\t\tdefault:\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\") // No known test case\n\t\t\t}\n\t\t\tbreak;\n\t\tcase ''://end document\n\t\t\terrorHandler.error('unexpected end of input');\n\t\t\tif(s == S_TAG){\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\t}\n\t\t\treturn p;\n\t\tcase '>':\n\t\t\tswitch(s){\n\t\t\tcase S_TAG:\n\t\t\t\tel.setTagName(source.slice(start,p));\n\t\t\tcase S_ATTR_END:\n\t\t\tcase S_TAG_SPACE:\n\t\t\tcase S_TAG_CLOSE:\n\t\t\t\tbreak;//normal\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\n\t\t\tcase S_ATTR:\n\t\t\t\tvalue = source.slice(start,p);\n\t\t\t\tif(value.slice(-1) === '/'){\n\t\t\t\t\tel.closed = true;\n\t\t\t\t\tvalue = value.slice(0,-1)\n\t\t\t\t}\n\t\t\tcase S_ATTR_SPACE:\n\t\t\t\tif(s === S_ATTR_SPACE){\n\t\t\t\t\tvalue = attrName;\n\t\t\t\t}\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\t}else{\n\t\t\t\t\tif(!NAMESPACE.isHTML(currentNSMap['']) || !value.match(/^(?:disabled|checked|selected)$/i)){\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(value, value, start)\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase S_EQ:\n\t\t\t\tthrow new Error('attribute value missed!!');\n\t\t\t}\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\n\t\t\treturn p;\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\n\t\tcase '\\u0080':\n\t\t\tc = ' ';\n\t\tdefault:\n\t\t\tif(c<= ' '){//space\n\t\t\t\tswitch(s){\n\t\t\t\tcase S_TAG:\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR:\n\t\t\t\t\tattrName = source.slice(start,p)\n\t\t\t\t\ts = S_ATTR_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\n\t\t\t\t\tvar value = source.slice(start, p);\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\n\t\t\t\t\taddAttribute(attrName, value, start)\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\ts = S_TAG_SPACE;\n\t\t\t\t\tbreak;\n\t\t\t\t//case S_TAG_SPACE:\n\t\t\t\t//case S_EQ:\n\t\t\t\t//case S_ATTR_SPACE:\n\t\t\t\t//\tvoid();break;\n\t\t\t\t//case S_TAG_CLOSE:\n\t\t\t\t\t//ignore warning\n\t\t\t\t}\n\t\t\t}else{//not space\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\n\t\t\t\tswitch(s){\n\t\t\t\t//case S_TAG:void();break;\n\t\t\t\t//case S_ATTR:void();break;\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\n\t\t\t\tcase S_ATTR_SPACE:\n\t\t\t\t\tvar tagName = el.tagName;\n\t\t\t\t\tif (!NAMESPACE.isHTML(currentNSMap['']) || !attrName.match(/^(?:disabled|checked|selected)$/i)) {\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\n\t\t\t\t\t}\n\t\t\t\t\taddAttribute(attrName, attrName, start);\n\t\t\t\t\tstart = p;\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_ATTR_END:\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\n\t\t\t\tcase S_TAG_SPACE:\n\t\t\t\t\ts = S_ATTR;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_EQ:\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\n\t\t\t\t\tstart = p;\n\t\t\t\t\tbreak;\n\t\t\t\tcase S_TAG_CLOSE:\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\n\t\t\t\t}\n\t\t\t}\n\t\t}//end outer switch\n\t\t//console.log('p++',p)\n\t\tp++;\n\t}\n}\n/**\n * @return true if has new namespace define\n */\nfunction appendElement(el,domBuilder,currentNSMap){\n\tvar tagName = el.tagName;\n\tvar localNSMap = null;\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\n\tvar i = el.length;\n\twhile(i--){\n\t\tvar a = el[i];\n\t\tvar qName = a.qName;\n\t\tvar value = a.value;\n\t\tvar nsp = qName.indexOf(':');\n\t\tif(nsp>0){\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\n\t\t\tvar localName = qName.slice(nsp+1);\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\n\t\t}else{\n\t\t\tlocalName = qName;\n\t\t\tprefix = null\n\t\t\tnsPrefix = qName === 'xmlns' && ''\n\t\t}\n\t\t//can not set prefix,because prefix !== ''\n\t\ta.localName = localName ;\n\t\t//prefix == null for no ns prefix attribute\n\t\tif(nsPrefix !== false){//hack!!\n\t\t\tif(localNSMap == null){\n\t\t\t\tlocalNSMap = {}\n\t\t\t\t//console.log(currentNSMap,0)\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\n\t\t\t\t//console.log(currentNSMap,1)\n\t\t\t}\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\n\t\t\ta.uri = NAMESPACE.XMLNS\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value)\n\t\t}\n\t}\n\tvar i = el.length;\n\twhile(i--){\n\t\ta = el[i];\n\t\tvar prefix = a.prefix;\n\t\tif(prefix){//no prefix attribute has no namespace\n\t\t\tif(prefix === 'xml'){\n\t\t\t\ta.uri = NAMESPACE.XML;\n\t\t\t}if(prefix !== 'xmlns'){\n\t\t\t\ta.uri = currentNSMap[prefix || '']\n\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\n\t\t\t}\n\t\t}\n\t}\n\tvar nsp = tagName.indexOf(':');\n\tif(nsp>0){\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\n\t}else{\n\t\tprefix = null;//important!!\n\t\tlocalName = el.localName = tagName;\n\t}\n\t//no prefix element has default namespace\n\tvar ns = el.uri = currentNSMap[prefix || ''];\n\tdomBuilder.startElement(ns,localName,tagName,el);\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\n\t//localNSMap = null\n\tif(el.closed){\n\t\tdomBuilder.endElement(ns,localName,tagName);\n\t\tif(localNSMap){\n\t\t\tfor (prefix in localNSMap) {\n\t\t\t\tif (Object.prototype.hasOwnProperty.call(localNSMap, prefix)) {\n\t\t\t\t\tdomBuilder.endPrefixMapping(prefix);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}else{\n\t\tel.currentNSMap = currentNSMap;\n\t\tel.localNSMap = localNSMap;\n\t\t//parseStack.push(el);\n\t\treturn true;\n\t}\n}\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\n\tif(/^(?:script|textarea)$/i.test(tagName)){\n\t\tvar elEndStart = source.indexOf('',elStartEnd);\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\n\t\tif(/[&<]/.test(text)){\n\t\t\tif(/^script$/i.test(tagName)){\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\n\t\t\t\t\t//lexHandler.startCDATA();\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\t\t//lexHandler.endCDATA();\n\t\t\t\t\treturn elEndStart;\n\t\t\t\t//}\n\t\t\t}//}else{//text area\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\tdomBuilder.characters(text,0,text.length);\n\t\t\t\treturn elEndStart;\n\t\t\t//}\n\n\t\t}\n\t}\n\treturn elStartEnd+1;\n}\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\n\t//if(tagName in closeMap){\n\tvar pos = closeMap[tagName];\n\tif(pos == null){\n\t\t//console.log(tagName)\n\t\tpos = source.lastIndexOf('')\n\t\tif(pos',start+4);\n\t\t\t//append comment source.substring(4,end)//\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM ', sysid, '>');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i\n * Copyright Brightcove, Inc. \n * Available under Apache License Version 2.0\n * \n *\n * Includes vtt.js \n * Available under Apache License Version 2.0\n * \n */\n\nimport window$1 from 'global/window';\nimport document from 'global/document';\nimport _extends from '@babel/runtime/helpers/extends';\nimport keycode from 'keycode';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport XHR from '@videojs/xhr';\nimport vtt from 'videojs-vtt.js';\nimport _construct from '@babel/runtime/helpers/construct';\nimport _inherits from '@babel/runtime/helpers/inherits';\nimport _resolveUrl from '@videojs/vhs-utils/es/resolve-url.js';\nimport { Parser } from 'm3u8-parser';\nimport { browserSupportsCodec, DEFAULT_VIDEO_CODEC, DEFAULT_AUDIO_CODEC, muxerSupportsCodec, parseCodecs, translateLegacyCodec, codecsFromDefault, getMimeForCodec, isAudioCodec } from '@videojs/vhs-utils/es/codecs.js';\nimport { simpleTypeFromSourceType } from '@videojs/vhs-utils/es/media-types.js';\nimport { isArrayBufferView, concatTypedArrays, stringToBytes, toUint8 } from '@videojs/vhs-utils/es/byte-helpers';\nimport { generateSidxKey, parseUTCTiming, parse, addSidxSegmentsToPlaylist } from 'mpd-parser';\nimport parseSidx from 'mux.js/lib/tools/parse-sidx';\nimport { getId3Offset } from '@videojs/vhs-utils/es/id3-helpers';\nimport { detectContainerForBytes, isLikelyFmp4MediaSegment } from '@videojs/vhs-utils/es/containers';\nimport { ONE_SECOND_IN_TS } from 'mux.js/lib/utils/clock';\nimport _wrapNativeSuper from '@babel/runtime/helpers/wrapNativeSuper';\n\nvar version$5 = \"7.21.4\";\n\n/**\n * An Object that contains lifecycle hooks as keys which point to an array\n * of functions that are run when a lifecycle is triggered\n *\n * @private\n */\nvar hooks_ = {};\n/**\n * Get a list of hooks for a specific lifecycle\n *\n * @param {string} type\n * the lifecyle to get hooks from\n *\n * @param {Function|Function[]} [fn]\n * Optionally add a hook (or hooks) to the lifecycle that your are getting.\n *\n * @return {Array}\n * an array of hooks, or an empty array if there are none.\n */\n\nvar hooks = function hooks(type, fn) {\n hooks_[type] = hooks_[type] || [];\n\n if (fn) {\n hooks_[type] = hooks_[type].concat(fn);\n }\n\n return hooks_[type];\n};\n/**\n * Add a function hook to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\n\n\nvar hook = function hook(type, fn) {\n hooks(type, fn);\n};\n/**\n * Remove a hook from a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle that the function hooked to\n *\n * @param {Function} fn\n * The hooked function to remove\n *\n * @return {boolean}\n * The function that was removed or undef\n */\n\n\nvar removeHook = function removeHook(type, fn) {\n var index = hooks(type).indexOf(fn);\n\n if (index <= -1) {\n return false;\n }\n\n hooks_[type] = hooks_[type].slice();\n hooks_[type].splice(index, 1);\n return true;\n};\n/**\n * Add a function hook that will only run once to a specific videojs lifecycle.\n *\n * @param {string} type\n * the lifecycle to hook the function to.\n *\n * @param {Function|Function[]}\n * The function or array of functions to attach.\n */\n\n\nvar hookOnce = function hookOnce(type, fn) {\n hooks(type, [].concat(fn).map(function (original) {\n var wrapper = function wrapper() {\n removeHook(type, wrapper);\n return original.apply(void 0, arguments);\n };\n\n return wrapper;\n }));\n};\n\n/**\n * @file fullscreen-api.js\n * @module fullscreen-api\n * @private\n */\n/**\n * Store the browser-specific methods for the fullscreen API.\n *\n * @type {Object}\n * @see [Specification]{@link https://fullscreen.spec.whatwg.org}\n * @see [Map Approach From Screenfull.js]{@link https://github.com/sindresorhus/screenfull.js}\n */\n\nvar FullscreenApi = {\n prefixed: true\n}; // browser API methods\n\nvar apiMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror', 'fullscreen'], // WebKit\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror', '-webkit-full-screen'], // Mozilla\n['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror', '-moz-full-screen'], // Microsoft\n['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError', '-ms-fullscreen']];\nvar specApi = apiMap[0];\nvar browserApi; // determine the supported set of functions\n\nfor (var i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n} // map the browser API names to the spec API names\n\n\nif (browserApi) {\n for (var _i = 0; _i < browserApi.length; _i++) {\n FullscreenApi[specApi[_i]] = browserApi[_i];\n }\n\n FullscreenApi.prefixed = browserApi[0] !== specApi[0];\n}\n\n/**\n * @file create-logger.js\n * @module create-logger\n */\n\nvar history = [];\n/**\n * Log messages to the console and history based on the type of message\n *\n * @private\n * @param {string} type\n * The name of the console method to use.\n *\n * @param {Array} args\n * The arguments to be passed to the matching console method.\n */\n\nvar LogByTypeFactory = function LogByTypeFactory(name, log) {\n return function (type, level, args) {\n var lvl = log.levels[level];\n var lvlRegExp = new RegExp(\"^(\" + lvl + \")$\");\n\n if (type !== 'log') {\n // Add the type to the front of the message when it's not \"log\".\n args.unshift(type.toUpperCase() + ':');\n } // Add console prefix after adding to history.\n\n\n args.unshift(name + ':'); // Add a clone of the args at this point to history.\n\n if (history) {\n history.push([].concat(args)); // only store 1000 history entries\n\n var splice = history.length - 1000;\n history.splice(0, splice > 0 ? splice : 0);\n } // If there's no console then don't try to output messages, but they will\n // still be stored in history.\n\n\n if (!window$1.console) {\n return;\n } // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n // when the module is executed.\n\n\n var fn = window$1.console[type];\n\n if (!fn && type === 'debug') {\n // Certain browsers don't have support for console.debug. For those, we\n // should default to the closest comparable log.\n fn = window$1.console.info || window$1.console.log;\n } // Bail out if there's no console or if this type is not allowed by the\n // current logging level.\n\n\n if (!fn || !lvl || !lvlRegExp.test(type)) {\n return;\n }\n\n fn[Array.isArray(args) ? 'apply' : 'call'](window$1.console, args);\n };\n};\n\nfunction createLogger$1(name) {\n // This is the private tracking variable for logging level.\n var level = 'info'; // the curried logByType bound to the specific log and history\n\n var logByType;\n /**\n * Logs plain debug messages. Similar to `console.log`.\n *\n * Due to [limitations](https://github.com/jsdoc3/jsdoc/issues/955#issuecomment-313829149)\n * of our JSDoc template, we cannot properly document this as both a function\n * and a namespace, so its function signature is documented here.\n *\n * #### Arguments\n * ##### *args\n * Mixed[]\n *\n * Any combination of values that could be passed to `console.log()`.\n *\n * #### Return Value\n *\n * `undefined`\n *\n * @namespace\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged.\n */\n\n var log = function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n logByType('log', level, args);\n }; // This is the logByType helper that the logging methods below use\n\n\n logByType = LogByTypeFactory(name, log);\n /**\n * Create a new sublogger which chains the old name to the new name.\n *\n * For example, doing `videojs.log.createLogger('player')` and then using that logger will log the following:\n * ```js\n * mylogger('foo');\n * // > VIDEOJS: player: foo\n * ```\n *\n * @param {string} name\n * The name to add call the new logger\n * @return {Object}\n */\n\n log.createLogger = function (subname) {\n return createLogger$1(name + ': ' + subname);\n };\n /**\n * Enumeration of available logging levels, where the keys are the level names\n * and the values are `|`-separated strings containing logging methods allowed\n * in that logging level. These strings are used to create a regular expression\n * matching the function name being called.\n *\n * Levels provided by Video.js are:\n *\n * - `off`: Matches no calls. Any value that can be cast to `false` will have\n * this effect. The most restrictive.\n * - `all`: Matches only Video.js-provided functions (`debug`, `log`,\n * `log.warn`, and `log.error`).\n * - `debug`: Matches `log.debug`, `log`, `log.warn`, and `log.error` calls.\n * - `info` (default): Matches `log`, `log.warn`, and `log.error` calls.\n * - `warn`: Matches `log.warn` and `log.error` calls.\n * - `error`: Matches only `log.error` calls.\n *\n * @type {Object}\n */\n\n\n log.levels = {\n all: 'debug|log|warn|error',\n off: '',\n debug: 'debug|log|warn|error',\n info: 'log|warn|error',\n warn: 'warn|error',\n error: 'error',\n DEFAULT: level\n };\n /**\n * Get or set the current logging level.\n *\n * If a string matching a key from {@link module:log.levels} is provided, acts\n * as a setter.\n *\n * @param {string} [lvl]\n * Pass a valid level to set a new logging level.\n *\n * @return {string}\n * The current logging level.\n */\n\n log.level = function (lvl) {\n if (typeof lvl === 'string') {\n if (!log.levels.hasOwnProperty(lvl)) {\n throw new Error(\"\\\"\" + lvl + \"\\\" in not a valid log level\");\n }\n\n level = lvl;\n }\n\n return level;\n };\n /**\n * Returns an array containing everything that has been logged to the history.\n *\n * This array is a shallow clone of the internal history record. However, its\n * contents are _not_ cloned; so, mutating objects inside this array will\n * mutate them in history.\n *\n * @return {Array}\n */\n\n\n log.history = function () {\n return history ? [].concat(history) : [];\n };\n /**\n * Allows you to filter the history by the given logger name\n *\n * @param {string} fname\n * The name to filter by\n *\n * @return {Array}\n * The filtered list to return\n */\n\n\n log.history.filter = function (fname) {\n return (history || []).filter(function (historyItem) {\n // if the first item in each historyItem includes `fname`, then it's a match\n return new RegExp(\".*\" + fname + \".*\").test(historyItem[0]);\n });\n };\n /**\n * Clears the internal history tracking, but does not prevent further history\n * tracking.\n */\n\n\n log.history.clear = function () {\n if (history) {\n history.length = 0;\n }\n };\n /**\n * Disable history tracking if it is currently enabled.\n */\n\n\n log.history.disable = function () {\n if (history !== null) {\n history.length = 0;\n history = null;\n }\n };\n /**\n * Enable history tracking if it is currently disabled.\n */\n\n\n log.history.enable = function () {\n if (history === null) {\n history = [];\n }\n };\n /**\n * Logs error messages. Similar to `console.error`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as an error\n */\n\n\n log.error = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return logByType('error', level, args);\n };\n /**\n * Logs warning messages. Similar to `console.warn`.\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as a warning.\n */\n\n\n log.warn = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return logByType('warn', level, args);\n };\n /**\n * Logs debug messages. Similar to `console.debug`, but may also act as a comparable\n * log if `console.debug` is not available\n *\n * @param {Mixed[]} args\n * One or more messages or objects that should be logged as debug.\n */\n\n\n log.debug = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return logByType('debug', level, args);\n };\n\n return log;\n}\n\n/**\n * @file log.js\n * @module log\n */\nvar log$1 = createLogger$1('VIDEOJS');\nvar createLogger = log$1.createLogger;\n\n/**\n * @file obj.js\n * @module obj\n */\n\n/**\n * @callback obj:EachCallback\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n */\n\n/**\n * @callback obj:ReduceCallback\n *\n * @param {Mixed} accum\n * The value that is accumulating over the reduce loop.\n *\n * @param {Mixed} value\n * The current key for the object that is being iterated over.\n *\n * @param {string} key\n * The current key-value for object that is being iterated over\n *\n * @return {Mixed}\n * The new accumulated value.\n */\nvar toString = Object.prototype.toString;\n/**\n * Get the keys of an Object\n *\n * @param {Object}\n * The Object to get the keys from\n *\n * @return {string[]}\n * An array of the keys from the object. Returns an empty array if the\n * object passed in was invalid or had no keys.\n *\n * @private\n */\n\nvar keys = function keys(object) {\n return isObject(object) ? Object.keys(object) : [];\n};\n/**\n * Array-like iteration for objects.\n *\n * @param {Object} object\n * The object to iterate over\n *\n * @param {obj:EachCallback} fn\n * The callback function which is called for each key in the object.\n */\n\n\nfunction each(object, fn) {\n keys(object).forEach(function (key) {\n return fn(object[key], key);\n });\n}\n/**\n * Array-like reduce for objects.\n *\n * @param {Object} object\n * The Object that you want to reduce.\n *\n * @param {Function} fn\n * A callback function which is called for each key in the object. It\n * receives the accumulated value and the per-iteration value and key\n * as arguments.\n *\n * @param {Mixed} [initial = 0]\n * Starting value\n *\n * @return {Mixed}\n * The final accumulated value.\n */\n\nfunction reduce(object, fn, initial) {\n if (initial === void 0) {\n initial = 0;\n }\n\n return keys(object).reduce(function (accum, key) {\n return fn(accum, object[key], key);\n }, initial);\n}\n/**\n * Object.assign-style object shallow merge/extend.\n *\n * @param {Object} target\n * @param {Object} ...sources\n * @return {Object}\n */\n\nfunction assign(target) {\n for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n sources[_key - 1] = arguments[_key];\n }\n\n if (Object.assign) {\n return _extends.apply(void 0, [target].concat(sources));\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n target[key] = value;\n });\n });\n return target;\n}\n/**\n * Returns whether a value is an object of any kind - including DOM nodes,\n * arrays, regular expressions, etc. Not functions, though.\n *\n * This avoids the gotcha where using `typeof` on a `null` value\n * results in `'object'`.\n *\n * @param {Object} value\n * @return {boolean}\n */\n\nfunction isObject(value) {\n return !!value && typeof value === 'object';\n}\n/**\n * Returns whether an object appears to be a \"plain\" object - that is, a\n * direct instance of `Object`.\n *\n * @param {Object} value\n * @return {boolean}\n */\n\nfunction isPlain(value) {\n return isObject(value) && toString.call(value) === '[object Object]' && value.constructor === Object;\n}\n\n/**\n * @file computed-style.js\n * @module computed-style\n */\n/**\n * A safe getComputedStyle.\n *\n * This is needed because in Firefox, if the player is loaded in an iframe with\n * `display:none`, then `getComputedStyle` returns `null`, so, we do a\n * null-check to make sure that the player doesn't break in these cases.\n *\n * @function\n * @param {Element} el\n * The element you want the computed style of\n *\n * @param {string} prop\n * The property name you want\n *\n * @see https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\n\nfunction computedStyle(el, prop) {\n if (!el || !prop) {\n return '';\n }\n\n if (typeof window$1.getComputedStyle === 'function') {\n var computedStyleValue;\n\n try {\n computedStyleValue = window$1.getComputedStyle(el);\n } catch (e) {\n return '';\n }\n\n return computedStyleValue ? computedStyleValue.getPropertyValue(prop) || computedStyleValue[prop] : '';\n }\n\n return '';\n}\n\n/**\n * @file browser.js\n * @module browser\n */\nvar USER_AGENT = window$1.navigator && window$1.navigator.userAgent || '';\nvar webkitVersionMap = /AppleWebKit\\/([\\d.]+)/i.exec(USER_AGENT);\nvar appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n/**\n * Whether or not this device is an iPod.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\n/**\n * The detected iOS version - or `null`.\n *\n * @static\n * @const\n * @type {string|null}\n */\n\nvar IOS_VERSION = function () {\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n\n if (match && match[1]) {\n return match[1];\n }\n\n return null;\n}();\n/**\n * Whether or not this is an Android device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_ANDROID = /Android/i.test(USER_AGENT);\n/**\n * The detected Android version - or `null`.\n *\n * @static\n * @const\n * @type {number|string|null}\n */\n\nvar ANDROID_VERSION = function () {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i);\n\n if (!match) {\n return null;\n }\n\n var major = match[1] && parseFloat(match[1]);\n var minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n }\n\n return null;\n}();\n/**\n * Whether or not this is a native Android browser.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n/**\n * Whether or not this is Mozilla Firefox.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_FIREFOX = /Firefox/i.test(USER_AGENT);\n/**\n * Whether or not this is Microsoft Edge.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_EDGE = /Edg/i.test(USER_AGENT);\n/**\n * Whether or not this is Google Chrome.\n *\n * This will also be `true` for Chrome on iOS, which will have different support\n * as it is actually Safari under the hood.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_CHROME = !IS_EDGE && (/Chrome/i.test(USER_AGENT) || /CriOS/i.test(USER_AGENT));\n/**\n * The detected Google Chrome version - or `null`.\n *\n * @static\n * @const\n * @type {number|null}\n */\n\nvar CHROME_VERSION = function () {\n var match = USER_AGENT.match(/(Chrome|CriOS)\\/(\\d+)/);\n\n if (match && match[2]) {\n return parseFloat(match[2]);\n }\n\n return null;\n}();\n/**\n * The detected Internet Explorer version - or `null`.\n *\n * @static\n * @const\n * @type {number|null}\n */\n\nvar IE_VERSION = function () {\n var result = /MSIE\\s(\\d+)\\.\\d/.exec(USER_AGENT);\n var version = result && parseFloat(result[1]);\n\n if (!version && /Trident\\/7.0/i.test(USER_AGENT) && /rv:11.0/.test(USER_AGENT)) {\n // IE 11 has a different user agent string than other IE versions\n version = 11.0;\n }\n\n return version;\n}();\n/**\n * Whether or not this is desktop Safari.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_SAFARI = /Safari/i.test(USER_AGENT) && !IS_CHROME && !IS_ANDROID && !IS_EDGE;\n/**\n * Whether or not this is a Windows machine.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_WINDOWS = /Windows/i.test(USER_AGENT);\n/**\n * Whether or not this device is touch-enabled.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar TOUCH_ENABLED = Boolean(isReal() && ('ontouchstart' in window$1 || window$1.navigator.maxTouchPoints || window$1.DocumentTouch && window$1.document instanceof window$1.DocumentTouch));\n/**\n * Whether or not this device is an iPad.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IPAD = /iPad/i.test(USER_AGENT) || IS_SAFARI && TOUCH_ENABLED && !/iPhone/i.test(USER_AGENT);\n/**\n * Whether or not this device is an iPhone.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\n// to identify iPhones, we need to exclude iPads.\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\n\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\n/**\n * Whether or not this is an iOS device.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n/**\n * Whether or not this is any flavor of Safari - including iOS.\n *\n * @static\n * @const\n * @type {Boolean}\n */\n\nvar IS_ANY_SAFARI = (IS_SAFARI || IS_IOS) && !IS_CHROME;\n\nvar browser = /*#__PURE__*/Object.freeze({\n __proto__: null,\n IS_IPOD: IS_IPOD,\n IOS_VERSION: IOS_VERSION,\n IS_ANDROID: IS_ANDROID,\n ANDROID_VERSION: ANDROID_VERSION,\n IS_NATIVE_ANDROID: IS_NATIVE_ANDROID,\n IS_FIREFOX: IS_FIREFOX,\n IS_EDGE: IS_EDGE,\n IS_CHROME: IS_CHROME,\n CHROME_VERSION: CHROME_VERSION,\n IE_VERSION: IE_VERSION,\n IS_SAFARI: IS_SAFARI,\n IS_WINDOWS: IS_WINDOWS,\n TOUCH_ENABLED: TOUCH_ENABLED,\n IS_IPAD: IS_IPAD,\n IS_IPHONE: IS_IPHONE,\n IS_IOS: IS_IOS,\n IS_ANY_SAFARI: IS_ANY_SAFARI\n});\n\n/**\n * @file dom.js\n * @module dom\n */\n/**\n * Detect if a value is a string with any non-whitespace characters.\n *\n * @private\n * @param {string} str\n * The string to check\n *\n * @return {boolean}\n * Will be `true` if the string is non-blank, `false` otherwise.\n *\n */\n\nfunction isNonBlankString(str) {\n // we use str.trim as it will trim any whitespace characters\n // from the front or back of non-whitespace characters. aka\n // Any string that contains non-whitespace characters will\n // still contain them after `trim` but whitespace only strings\n // will have a length of 0, failing this check.\n return typeof str === 'string' && Boolean(str.trim());\n}\n/**\n * Throws an error if the passed string has whitespace. This is used by\n * class methods to be relatively consistent with the classList API.\n *\n * @private\n * @param {string} str\n * The string to check for whitespace.\n *\n * @throws {Error}\n * Throws an error if there is whitespace in the string.\n */\n\n\nfunction throwIfWhitespace(str) {\n // str.indexOf instead of regex because str.indexOf is faster performance wise.\n if (str.indexOf(' ') >= 0) {\n throw new Error('class has illegal whitespace characters');\n }\n}\n/**\n * Produce a regular expression for matching a className within an elements className.\n *\n * @private\n * @param {string} className\n * The className to generate the RegExp for.\n *\n * @return {RegExp}\n * The RegExp that will check for a specific `className` in an elements\n * className.\n */\n\n\nfunction classRegExp(className) {\n return new RegExp('(^|\\\\s)' + className + '($|\\\\s)');\n}\n/**\n * Whether the current DOM interface appears to be real (i.e. not simulated).\n *\n * @return {boolean}\n * Will be `true` if the DOM appears to be real, `false` otherwise.\n */\n\n\nfunction isReal() {\n // Both document and window will never be undefined thanks to `global`.\n return document === window$1.document;\n}\n/**\n * Determines, via duck typing, whether or not a value is a DOM element.\n *\n * @param {Mixed} value\n * The value to check.\n *\n * @return {boolean}\n * Will be `true` if the value is a DOM element, `false` otherwise.\n */\n\nfunction isEl(value) {\n return isObject(value) && value.nodeType === 1;\n}\n/**\n * Determines if the current DOM is embedded in an iframe.\n *\n * @return {boolean}\n * Will be `true` if the DOM is embedded in an iframe, `false`\n * otherwise.\n */\n\nfunction isInFrame() {\n // We need a try/catch here because Safari will throw errors when attempting\n // to get either `parent` or `self`\n try {\n return window$1.parent !== window$1.self;\n } catch (x) {\n return true;\n }\n}\n/**\n * Creates functions to query the DOM using a given method.\n *\n * @private\n * @param {string} method\n * The method to create the query with.\n *\n * @return {Function}\n * The query method\n */\n\nfunction createQuerier(method) {\n return function (selector, context) {\n if (!isNonBlankString(selector)) {\n return document[method](null);\n }\n\n if (isNonBlankString(context)) {\n context = document.querySelector(context);\n }\n\n var ctx = isEl(context) ? context : document;\n return ctx[method] && ctx[method](selector);\n };\n}\n/**\n * Creates an element and applies properties, attributes, and inserts content.\n *\n * @param {string} [tagName='div']\n * Name of tag to be created.\n *\n * @param {Object} [properties={}]\n * Element properties to be applied.\n *\n * @param {Object} [attributes={}]\n * Element attributes to be applied.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor object.\n *\n * @return {Element}\n * The element that was created.\n */\n\n\nfunction createEl(tagName, properties, attributes, content) {\n if (tagName === void 0) {\n tagName = 'div';\n }\n\n if (properties === void 0) {\n properties = {};\n }\n\n if (attributes === void 0) {\n attributes = {};\n }\n\n var el = document.createElement(tagName);\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n var val = properties[propName]; // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log$1.warn('Setting attributes in the second argument of createEl()\\n' + 'has been deprecated. Use the third argument instead.\\n' + (\"createEl(type, properties, attributes). Attempting to set \" + propName + \" to \" + val + \".\"));\n el.setAttribute(propName, val); // Handle textContent since it's not supported everywhere and we have a\n // method for it.\n } else if (propName === 'textContent') {\n textContent(el, val);\n } else if (el[propName] !== val || propName === 'tabIndex') {\n el[propName] = val;\n }\n });\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n if (content) {\n appendContent(el, content);\n }\n\n return el;\n}\n/**\n * Injects text into an element, replacing any existing contents entirely.\n *\n * @param {Element} el\n * The element to add text content into\n *\n * @param {string} text\n * The text content to add.\n *\n * @return {Element}\n * The element with added text content.\n */\n\nfunction textContent(el, text) {\n if (typeof el.textContent === 'undefined') {\n el.innerText = text;\n } else {\n el.textContent = text;\n }\n\n return el;\n}\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child\n * Element to insert\n *\n * @param {Element} parent\n * Element to insert child into\n */\n\nfunction prependTo(child, parent) {\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n/**\n * Check if an element has a class name.\n *\n * @param {Element} element\n * Element to check\n *\n * @param {string} classToCheck\n * Class name to check for\n *\n * @return {boolean}\n * Will be `true` if the element has a class, `false` otherwise.\n *\n * @throws {Error}\n * Throws an error if `classToCheck` has white space.\n */\n\nfunction hasClass(element, classToCheck) {\n throwIfWhitespace(classToCheck);\n\n if (element.classList) {\n return element.classList.contains(classToCheck);\n }\n\n return classRegExp(classToCheck).test(element.className);\n}\n/**\n * Add a class name to an element.\n *\n * @param {Element} element\n * Element to add class name to.\n *\n * @param {string} classToAdd\n * Class name to add.\n *\n * @return {Element}\n * The DOM element with the added class name.\n */\n\nfunction addClass(element, classToAdd) {\n if (element.classList) {\n element.classList.add(classToAdd); // Don't need to `throwIfWhitespace` here because `hasElClass` will do it\n // in the case of classList not being supported.\n } else if (!hasClass(element, classToAdd)) {\n element.className = (element.className + ' ' + classToAdd).trim();\n }\n\n return element;\n}\n/**\n * Remove a class name from an element.\n *\n * @param {Element} element\n * Element to remove a class name from.\n *\n * @param {string} classToRemove\n * Class name to remove\n *\n * @return {Element}\n * The DOM element with class name removed.\n */\n\nfunction removeClass(element, classToRemove) {\n // Protect in case the player gets disposed\n if (!element) {\n log$1.warn(\"removeClass was called with an element that doesn't exist\");\n return null;\n }\n\n if (element.classList) {\n element.classList.remove(classToRemove);\n } else {\n throwIfWhitespace(classToRemove);\n element.className = element.className.split(/\\s+/).filter(function (c) {\n return c !== classToRemove;\n }).join(' ');\n }\n\n return element;\n}\n/**\n * The callback definition for toggleClass.\n *\n * @callback module:dom~PredicateCallback\n * @param {Element} element\n * The DOM element of the Component.\n *\n * @param {string} classToToggle\n * The `className` that wants to be toggled\n *\n * @return {boolean|undefined}\n * If `true` is returned, the `classToToggle` will be added to the\n * `element`. If `false`, the `classToToggle` will be removed from\n * the `element`. If `undefined`, the callback will be ignored.\n */\n\n/**\n * Adds or removes a class name to/from an element depending on an optional\n * condition or the presence/absence of the class name.\n *\n * @param {Element} element\n * The element to toggle a class name on.\n *\n * @param {string} classToToggle\n * The class that should be toggled.\n *\n * @param {boolean|module:dom~PredicateCallback} [predicate]\n * See the return value for {@link module:dom~PredicateCallback}\n *\n * @return {Element}\n * The element with a class that has been toggled.\n */\n\nfunction toggleClass(element, classToToggle, predicate) {\n // This CANNOT use `classList` internally because IE11 does not support the\n // second parameter to the `classList.toggle()` method! Which is fine because\n // `classList` will be used by the add/remove functions.\n var has = hasClass(element, classToToggle);\n\n if (typeof predicate === 'function') {\n predicate = predicate(element, classToToggle);\n }\n\n if (typeof predicate !== 'boolean') {\n predicate = !has;\n } // If the necessary class operation matches the current state of the\n // element, no action is required.\n\n\n if (predicate === has) {\n return;\n }\n\n if (predicate) {\n addClass(element, classToToggle);\n } else {\n removeClass(element, classToToggle);\n }\n\n return element;\n}\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el\n * Element to add attributes to.\n *\n * @param {Object} [attributes]\n * Attributes to be applied.\n */\n\nfunction setAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n var attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, attrValue === true ? '' : attrValue);\n }\n });\n}\n/**\n * Get an element's attribute values, as defined on the HTML tag.\n *\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute.\n *\n * @param {Element} tag\n * Element from which to get tag attributes.\n *\n * @return {Object}\n * All attributes of the element. Boolean attributes will be `true` or\n * `false`, others will be strings.\n */\n\nfunction getAttributes(tag) {\n var obj = {}; // known boolean attributes\n // we can check for matching boolean properties, but not all browsers\n // and not all tags know about these attributes, so, we still want to check them manually\n\n var knownBooleans = ',' + 'autoplay,controls,playsinline,loop,muted,default,defaultMuted' + ',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n var attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n var attrName = attrs[i].name;\n var attrVal = attrs[i].value; // check for known booleans\n // the matching element property will return a value for typeof\n\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(',' + attrName + ',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = attrVal !== null ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n/**\n * Get the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to get the value of.\n *\n * @return {string}\n * The value of the attribute.\n */\n\nfunction getAttribute(el, attribute) {\n return el.getAttribute(attribute);\n}\n/**\n * Set the value of an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n */\n\nfunction setAttribute(el, attribute, value) {\n el.setAttribute(attribute, value);\n}\n/**\n * Remove an element's attribute.\n *\n * @param {Element} el\n * A DOM element.\n *\n * @param {string} attribute\n * Attribute to remove.\n */\n\nfunction removeAttribute(el, attribute) {\n el.removeAttribute(attribute);\n}\n/**\n * Attempt to block the ability to select text.\n */\n\nfunction blockTextSelection() {\n document.body.focus();\n\n document.onselectstart = function () {\n return false;\n };\n}\n/**\n * Turn off text selection blocking.\n */\n\nfunction unblockTextSelection() {\n document.onselectstart = function () {\n return true;\n };\n}\n/**\n * Identical to the native `getBoundingClientRect` function, but ensures that\n * the method is supported at all (it is in all browsers we claim to support)\n * and that the element is in the DOM before continuing.\n *\n * This wrapper function also shims properties which are not provided by some\n * older browsers (namely, IE8).\n *\n * Additionally, some browsers do not support adding properties to a\n * `ClientRect`/`DOMRect` object; so, we shallow-copy it with the standard\n * properties (except `x` and `y` which are not widely supported). This helps\n * avoid implementations where keys are non-enumerable.\n *\n * @param {Element} el\n * Element whose `ClientRect` we want to calculate.\n *\n * @return {Object|undefined}\n * Always returns a plain object - or `undefined` if it cannot.\n */\n\nfunction getBoundingClientRect(el) {\n if (el && el.getBoundingClientRect && el.parentNode) {\n var rect = el.getBoundingClientRect();\n var result = {};\n ['bottom', 'height', 'left', 'right', 'top', 'width'].forEach(function (k) {\n if (rect[k] !== undefined) {\n result[k] = rect[k];\n }\n });\n\n if (!result.height) {\n result.height = parseFloat(computedStyle(el, 'height'));\n }\n\n if (!result.width) {\n result.width = parseFloat(computedStyle(el, 'width'));\n }\n\n return result;\n }\n}\n/**\n * Represents the position of a DOM element on the page.\n *\n * @typedef {Object} module:dom~Position\n *\n * @property {number} left\n * Pixels to the left.\n *\n * @property {number} top\n * Pixels from the top.\n */\n\n/**\n * Get the position of an element in the DOM.\n *\n * Uses `getBoundingClientRect` technique from John Resig.\n *\n * @see http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el\n * Element from which to get offset.\n *\n * @return {module:dom~Position}\n * The position of the element that was passed in.\n */\n\nfunction findPosition(el) {\n if (!el || el && !el.offsetParent) {\n return {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n };\n }\n\n var width = el.offsetWidth;\n var height = el.offsetHeight;\n var left = 0;\n var top = 0;\n\n while (el.offsetParent && el !== document[FullscreenApi.fullscreenElement]) {\n left += el.offsetLeft;\n top += el.offsetTop;\n el = el.offsetParent;\n }\n\n return {\n left: left,\n top: top,\n width: width,\n height: height\n };\n}\n/**\n * Represents x and y coordinates for a DOM element or mouse pointer.\n *\n * @typedef {Object} module:dom~Coordinates\n *\n * @property {number} x\n * x coordinate in pixels\n *\n * @property {number} y\n * y coordinate in pixels\n */\n\n/**\n * Get the pointer position within an element.\n *\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el\n * Element on which to get the pointer position on.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {module:dom~Coordinates}\n * A coordinates object corresponding to the mouse position.\n *\n */\n\nfunction getPointerPosition(el, event) {\n var translated = {\n x: 0,\n y: 0\n };\n\n if (IS_IOS) {\n var item = el;\n\n while (item && item.nodeName.toLowerCase() !== 'html') {\n var transform = computedStyle(item, 'transform');\n\n if (/^matrix/.test(transform)) {\n var values = transform.slice(7, -1).split(/,\\s/).map(Number);\n translated.x += values[4];\n translated.y += values[5];\n } else if (/^matrix3d/.test(transform)) {\n var _values = transform.slice(9, -1).split(/,\\s/).map(Number);\n\n translated.x += _values[12];\n translated.y += _values[13];\n }\n\n item = item.parentNode;\n }\n }\n\n var position = {};\n var boxTarget = findPosition(event.target);\n var box = findPosition(el);\n var boxW = box.width;\n var boxH = box.height;\n var offsetY = event.offsetY - (box.top - boxTarget.top);\n var offsetX = event.offsetX - (box.left - boxTarget.left);\n\n if (event.changedTouches) {\n offsetX = event.changedTouches[0].pageX - box.left;\n offsetY = event.changedTouches[0].pageY + box.top;\n\n if (IS_IOS) {\n offsetX -= translated.x;\n offsetY -= translated.y;\n }\n }\n\n position.y = 1 - Math.max(0, Math.min(1, offsetY / boxH));\n position.x = Math.max(0, Math.min(1, offsetX / boxW));\n return position;\n}\n/**\n * Determines, via duck typing, whether or not a value is a text node.\n *\n * @param {Mixed} value\n * Check if this value is a text node.\n *\n * @return {boolean}\n * Will be `true` if the value is a text node, `false` otherwise.\n */\n\nfunction isTextNode(value) {\n return isObject(value) && value.nodeType === 3;\n}\n/**\n * Empties the contents of an element.\n *\n * @param {Element} el\n * The element to empty children from\n *\n * @return {Element}\n * The element with no children\n */\n\nfunction emptyEl(el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n\n return el;\n}\n/**\n * This is a mixed value that describes content to be injected into the DOM\n * via some method. It can be of the following types:\n *\n * Type | Description\n * -----------|-------------\n * `string` | The value will be normalized into a text node.\n * `Element` | The value will be accepted as-is.\n * `TextNode` | The value will be accepted as-is.\n * `Array` | A one-dimensional array of strings, elements, text nodes, or functions. These functions should return a string, element, or text node (any other return value, like an array, will be ignored).\n * `Function` | A function, which is expected to return a string, element, text node, or array - any of the other possible values described above. This means that a content descriptor could be a function that returns an array of functions, but those second-level functions must return strings, elements, or text nodes.\n *\n * @typedef {string|Element|TextNode|Array|Function} module:dom~ContentDescriptor\n */\n\n/**\n * Normalizes content for eventual insertion into the DOM.\n *\n * This allows a wide range of content definition methods, but helps protect\n * from falling into the trap of simply writing to `innerHTML`, which could\n * be an XSS concern.\n *\n * The content for an element can be passed in multiple types and\n * combinations, whose behavior is as follows:\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Array}\n * All of the content that was passed in, normalized to an array of\n * elements or text nodes.\n */\n\nfunction normalizeContent(content) {\n // First, invoke content if it is a function. If it produces an array,\n // that needs to happen before normalization.\n if (typeof content === 'function') {\n content = content();\n } // Next up, normalize to an array, so one or many items can be normalized,\n // filtered, and returned.\n\n\n return (Array.isArray(content) ? content : [content]).map(function (value) {\n // First, invoke value if it is a function to produce a new value,\n // which will be subsequently normalized to a Node of some kind.\n if (typeof value === 'function') {\n value = value();\n }\n\n if (isEl(value) || isTextNode(value)) {\n return value;\n }\n\n if (typeof value === 'string' && /\\S/.test(value)) {\n return document.createTextNode(value);\n }\n }).filter(function (value) {\n return value;\n });\n}\n/**\n * Normalizes and appends content to an element.\n *\n * @param {Element} el\n * Element to append normalized content to.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with appended normalized content.\n */\n\nfunction appendContent(el, content) {\n normalizeContent(content).forEach(function (node) {\n return el.appendChild(node);\n });\n return el;\n}\n/**\n * Normalizes and inserts content into an element; this is identical to\n * `appendContent()`, except it empties the element first.\n *\n * @param {Element} el\n * Element to insert normalized content into.\n *\n * @param {module:dom~ContentDescriptor} content\n * A content descriptor value.\n *\n * @return {Element}\n * The element with inserted normalized content.\n */\n\nfunction insertContent(el, content) {\n return appendContent(emptyEl(el), content);\n}\n/**\n * Check if an event was a single left click.\n *\n * @param {EventTarget~Event} event\n * Event object.\n *\n * @return {boolean}\n * Will be `true` if a single left click, `false` otherwise.\n */\n\nfunction isSingleLeftClick(event) {\n // Note: if you create something draggable, be sure to\n // call it on both `mousedown` and `mousemove` event,\n // otherwise `mousedown` should be enough for a button\n if (event.button === undefined && event.buttons === undefined) {\n // Why do we need `buttons` ?\n // Because, middle mouse sometimes have this:\n // e.button === 0 and e.buttons === 4\n // Furthermore, we want to prevent combination click, something like\n // HOLD middlemouse then left click, that would be\n // e.button === 0, e.buttons === 5\n // just `button` is not gonna work\n // Alright, then what this block does ?\n // this is for chrome `simulate mobile devices`\n // I want to support this as well\n return true;\n }\n\n if (event.button === 0 && event.buttons === undefined) {\n // Touch screen, sometimes on some specific device, `buttons`\n // doesn't have anything (safari on ios, blackberry...)\n return true;\n } // `mouseup` event on a single left click has\n // `button` and `buttons` equal to 0\n\n\n if (event.type === 'mouseup' && event.button === 0 && event.buttons === 0) {\n return true;\n }\n\n if (event.button !== 0 || event.buttons !== 1) {\n // This is the reason we have those if else block above\n // if any special case we can catch and let it slide\n // we do it above, when get to here, this definitely\n // is-not-left-click\n return false;\n }\n\n return true;\n}\n/**\n * Finds a single DOM element matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {Element|null}\n * The element that was found or null.\n */\n\nvar $ = createQuerier('querySelector');\n/**\n * Finds a all DOM elements matching `selector` within the optional\n * `context` of another DOM element (defaulting to `document`).\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|String} [context=document]\n * A DOM element within which to query. Can also be a selector\n * string in which case the first matching element will be used\n * as context. If missing (or no element matches selector), falls\n * back to `document`.\n *\n * @return {NodeList}\n * A element list of elements that were found. Will be empty if none\n * were found.\n *\n */\n\nvar $$ = createQuerier('querySelectorAll');\n\nvar Dom = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isReal: isReal,\n isEl: isEl,\n isInFrame: isInFrame,\n createEl: createEl,\n textContent: textContent,\n prependTo: prependTo,\n hasClass: hasClass,\n addClass: addClass,\n removeClass: removeClass,\n toggleClass: toggleClass,\n setAttributes: setAttributes,\n getAttributes: getAttributes,\n getAttribute: getAttribute,\n setAttribute: setAttribute,\n removeAttribute: removeAttribute,\n blockTextSelection: blockTextSelection,\n unblockTextSelection: unblockTextSelection,\n getBoundingClientRect: getBoundingClientRect,\n findPosition: findPosition,\n getPointerPosition: getPointerPosition,\n isTextNode: isTextNode,\n emptyEl: emptyEl,\n normalizeContent: normalizeContent,\n appendContent: appendContent,\n insertContent: insertContent,\n isSingleLeftClick: isSingleLeftClick,\n $: $,\n $$: $$\n});\n\n/**\n * @file setup.js - Functions for setting up a player without\n * user interaction based on the data-setup `attribute` of the video tag.\n *\n * @module setup\n */\nvar _windowLoaded = false;\nvar videojs$1;\n/**\n * Set up any tags that have a data-setup `attribute` when the player is started.\n */\n\nvar autoSetup = function autoSetup() {\n if (videojs$1.options.autoSetup === false) {\n return;\n }\n\n var vids = Array.prototype.slice.call(document.getElementsByTagName('video'));\n var audios = Array.prototype.slice.call(document.getElementsByTagName('audio'));\n var divs = Array.prototype.slice.call(document.getElementsByTagName('video-js'));\n var mediaEls = vids.concat(audios, divs); // Check if any media elements exist\n\n if (mediaEls && mediaEls.length > 0) {\n for (var i = 0, e = mediaEls.length; i < e; i++) {\n var mediaEl = mediaEls[i]; // Check if element exists, has getAttribute func.\n\n if (mediaEl && mediaEl.getAttribute) {\n // Make sure this player hasn't already been set up.\n if (mediaEl.player === undefined) {\n var options = mediaEl.getAttribute('data-setup'); // Check if data-setup attr exists.\n // We only auto-setup if they've added the data-setup attr.\n\n if (options !== null) {\n // Create new video.js instance.\n videojs$1(mediaEl);\n }\n } // If getAttribute isn't defined, we need to wait for the DOM.\n\n } else {\n autoSetupTimeout(1);\n break;\n }\n } // No videos were found, so keep looping unless page is finished loading.\n\n } else if (!_windowLoaded) {\n autoSetupTimeout(1);\n }\n};\n/**\n * Wait until the page is loaded before running autoSetup. This will be called in\n * autoSetup if `hasLoaded` returns false.\n *\n * @param {number} wait\n * How long to wait in ms\n *\n * @param {module:videojs} [vjs]\n * The videojs library function\n */\n\n\nfunction autoSetupTimeout(wait, vjs) {\n // Protect against breakage in non-browser environments\n if (!isReal()) {\n return;\n }\n\n if (vjs) {\n videojs$1 = vjs;\n }\n\n window$1.setTimeout(autoSetup, wait);\n}\n/**\n * Used to set the internal tracking of window loaded state to true.\n *\n * @private\n */\n\n\nfunction setWindowLoaded() {\n _windowLoaded = true;\n window$1.removeEventListener('load', setWindowLoaded);\n}\n\nif (isReal()) {\n if (document.readyState === 'complete') {\n setWindowLoaded();\n } else {\n /**\n * Listen for the load event on window, and set _windowLoaded to true.\n *\n * We use a standard event listener here to avoid incrementing the GUID\n * before any players are created.\n *\n * @listens load\n */\n window$1.addEventListener('load', setWindowLoaded);\n }\n}\n\n/**\n * @file stylesheet.js\n * @module stylesheet\n */\n/**\n * Create a DOM syle element given a className for it.\n *\n * @param {string} className\n * The className to add to the created style element.\n *\n * @return {Element}\n * The element that was created.\n */\n\nvar createStyleElement = function createStyleElement(className) {\n var style = document.createElement('style');\n style.className = className;\n return style;\n};\n/**\n * Add text to a DOM element.\n *\n * @param {Element} el\n * The Element to add text content to.\n *\n * @param {string} content\n * The text to add to the element.\n */\n\nvar setTextContent = function setTextContent(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n\n/**\n * @file guid.js\n * @module guid\n */\n// Default value for GUIDs. This allows us to reset the GUID counter in tests.\n//\n// The initial GUID is 3 because some users have come to rely on the first\n// default player ID ending up as `vjs_video_3`.\n//\n// See: https://github.com/videojs/video.js/pull/6216\nvar _initialGuid = 3;\n/**\n * Unique ID for an element or function\n *\n * @type {Number}\n */\n\nvar _guid = _initialGuid;\n/**\n * Get a unique auto-incrementing ID by number that has not been returned before.\n *\n * @return {number}\n * A new unique ID.\n */\n\nfunction newGUID() {\n return _guid++;\n}\n\n/**\n * @file dom-data.js\n * @module dom-data\n */\nvar FakeWeakMap;\n\nif (!window$1.WeakMap) {\n FakeWeakMap = /*#__PURE__*/function () {\n function FakeWeakMap() {\n this.vdata = 'vdata' + Math.floor(window$1.performance && window$1.performance.now() || Date.now());\n this.data = {};\n }\n\n var _proto = FakeWeakMap.prototype;\n\n _proto.set = function set(key, value) {\n var access = key[this.vdata] || newGUID();\n\n if (!key[this.vdata]) {\n key[this.vdata] = access;\n }\n\n this.data[access] = value;\n return this;\n };\n\n _proto.get = function get(key) {\n var access = key[this.vdata]; // we have data, return it\n\n if (access) {\n return this.data[access];\n } // we don't have data, return nothing.\n // return undefined explicitly as that's the contract for this method\n\n\n log$1('We have no data for this element', key);\n return undefined;\n };\n\n _proto.has = function has(key) {\n var access = key[this.vdata];\n return access in this.data;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var access = key[this.vdata];\n\n if (access) {\n delete this.data[access];\n delete key[this.vdata];\n }\n };\n\n return FakeWeakMap;\n }();\n}\n/**\n * Element Data Store.\n *\n * Allows for binding data to an element without putting it directly on the\n * element. Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\n\n\nvar DomData = window$1.WeakMap ? new WeakMap() : new FakeWeakMap();\n\n/**\n * @file events.js. An Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n *\n * @file events.js\n * @module events\n */\n/**\n * Clean up the listener cache and dispatchers\n *\n * @param {Element|Object} elem\n * Element to clean up\n *\n * @param {string} type\n * Type of event to clean up\n */\n\nfunction _cleanUpEvents(elem, type) {\n if (!DomData.has(elem)) {\n return;\n }\n\n var data = DomData.get(elem); // Remove the events of a particular type if there are none left\n\n if (data.handlers[type].length === 0) {\n delete data.handlers[type]; // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n // Remove the meta-handler from the element\n\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n } // Remove the events object if there are no types left\n\n\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n } // Finally remove the element data if there is no data left\n\n\n if (Object.getOwnPropertyNames(data).length === 0) {\n DomData[\"delete\"](elem);\n }\n}\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn\n * The event method we want to use.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} callback\n * Event listener.\n */\n\n\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function (type) {\n // Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event\n * Event object to fix.\n *\n * @return {Object}\n * Fixed event object.\n */\n\n\nfunction fixEvent(event) {\n if (event.fixed_) {\n return event;\n }\n\n function returnTrue() {\n return true;\n }\n\n function returnFalse() {\n return false;\n } // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n\n\n if (!event || !event.isPropagationStopped || !event.isImmediatePropagationStopped) {\n var old = event || window$1.event;\n event = {}; // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n // Lighthouse complains if Event.path is copied\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY' && key !== 'path') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n } // The event occurred on this element\n\n\n if (!event.target) {\n event.target = event.srcElement || document;\n } // Handle which other element the event is related to\n\n\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\n } // Stop the default browser action\n\n\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false; // Stop the event from bubbling\n\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse; // Stop the event from bubbling and executing other handlers\n\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse; // Handle mouse position\n\n if (event.clientX !== null && event.clientX !== undefined) {\n var doc = document.documentElement;\n var body = document.body;\n event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n } // Handle key presses\n\n\n event.which = event.charCode || event.keyCode; // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n\n if (event.button !== null && event.button !== undefined) {\n // The following is disabled because it does not pass videojs-standard\n // and... yikes.\n\n /* eslint-disable */\n event.button = event.button & 1 ? 0 : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;\n /* eslint-enable */\n }\n }\n\n event.fixed_ = true; // Returns fixed-up instance\n\n return event;\n}\n/**\n * Whether passive event listeners are supported\n */\n\nvar _supportsPassive;\n\nvar supportsPassive = function supportsPassive() {\n if (typeof _supportsPassive !== 'boolean') {\n _supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n _supportsPassive = true;\n }\n });\n window$1.addEventListener('test', null, opts);\n window$1.removeEventListener('test', null, opts);\n } catch (e) {// disregard\n }\n }\n\n return _supportsPassive;\n};\n/**\n * Touch events Chrome expects to be passive\n */\n\n\nvar passiveEvents = ['touchstart', 'touchmove'];\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem\n * Element or object to bind listeners to\n *\n * @param {string|string[]} type\n * Type of event to bind to.\n *\n * @param {EventTarget~EventListener} fn\n * Event listener.\n */\n\nfunction on(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n if (!DomData.has(elem)) {\n DomData.set(elem, {});\n }\n\n var data = DomData.get(elem); // We need a place to store all our handler data\n\n if (!data.handlers) {\n data.handlers = {};\n }\n\n if (!data.handlers[type]) {\n data.handlers[type] = [];\n }\n\n if (!fn.guid) {\n fn.guid = newGUID();\n }\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash) {\n if (data.disabled) {\n return;\n }\n\n event = fixEvent(event);\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n try {\n handlersCopy[m].call(elem, event, hash);\n } catch (e) {\n log$1.error(e);\n }\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n var options = false;\n\n if (supportsPassive() && passiveEvents.indexOf(type) > -1) {\n options = {\n passive: true\n };\n }\n\n elem.addEventListener(type, data.dispatcher, options);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem\n * Object to remove listeners from.\n *\n * @param {string|string[]} [type]\n * Type of listener to remove. Don't include to remove all events from element.\n *\n * @param {EventTarget~EventListener} [fn]\n * Specific listener to remove. Don't include to remove listeners for an event\n * type.\n */\n\nfunction off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!DomData.has(elem)) {\n return;\n }\n\n var data = DomData.get(elem); // If no events exist, nothing to unbind\n\n if (!data.handlers) {\n return;\n }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n } // Utility function\n\n\n var removeType = function removeType(el, t) {\n data.handlers[t] = [];\n\n _cleanUpEvents(el, t);\n }; // Are we removing all bound events?\n\n\n if (type === undefined) {\n for (var t in data.handlers) {\n if (Object.prototype.hasOwnProperty.call(data.handlers || {}, t)) {\n removeType(elem, t);\n }\n }\n\n return;\n }\n\n var handlers = data.handlers[type]; // If no handlers exist, nothing to unbind\n\n if (!handlers) {\n return;\n } // If no listener was provided, remove all listeners for type\n\n\n if (!fn) {\n removeType(elem, type);\n return;\n } // We're only removing a single handler\n\n\n if (fn.guid) {\n for (var n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem\n * Element to trigger an event on\n *\n * @param {EventTarget~Event|string} event\n * A string (the type) or an event object with a type attribute\n *\n * @param {Object} [hash]\n * data hash to pass along with the event\n *\n * @return {boolean|undefined}\n * Returns the opposite of `defaultPrevented` if default was\n * prevented. Otherwise, returns `undefined`\n */\n\nfunction trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = DomData.has(elem) ? DomData.get(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument; // type = event.type || event,\n // handler;\n // If an event name was passed as a string, creates an event out of it\n\n if (typeof event === 'string') {\n event = {\n type: event,\n target: elem\n };\n } else if (!event.target) {\n event.target = elem;\n } // Normalizes the event properties.\n\n\n event = fixEvent(event); // If the passed element has a dispatcher, executes the established handlers.\n\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n } // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n\n\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash); // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented && event.target && event.target[event.type]) {\n if (!DomData.has(event.target)) {\n DomData.set(event.target, {});\n }\n\n var targetData = DomData.get(event.target); // Checks if the target has a default action for this event.\n\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true; // Executes the default action.\n\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n } // Re-enables event dispatching.\n\n\n targetData.disabled = false;\n }\n } // Inform the triggerer if the default was prevented by returning false\n\n\n return !event.defaultPrevented;\n}\n/**\n * Trigger a listener only once for an event.\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\n\nfunction one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n }; // copy the guid to the new function so it can removed using the original function's ID\n\n\n func.guid = fn.guid = fn.guid || newGUID();\n on(elem, type, func);\n}\n/**\n * Trigger a listener only once and then turn if off for all\n * configured events\n *\n * @param {Element|Object} elem\n * Element or object to bind to.\n *\n * @param {string|string[]} type\n * Name/type of event\n *\n * @param {Event~EventListener} fn\n * Event listener function\n */\n\nfunction any(elem, type, fn) {\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n }; // copy the guid to the new function so it can removed using the original function's ID\n\n\n func.guid = fn.guid = fn.guid || newGUID(); // multiple ons, but one off for everything\n\n on(elem, type, func);\n}\n\nvar Events = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fixEvent: fixEvent,\n on: on,\n off: off,\n trigger: trigger,\n one: one,\n any: any\n});\n\n/**\n * @file fn.js\n * @module fn\n */\nvar UPDATE_REFRESH_INTERVAL = 30;\n/**\n * Bind (a.k.a proxy or context). A simple method for changing the context of\n * a function.\n *\n * It also stores a unique id on the function so it can be easily removed from\n * events.\n *\n * @function\n * @param {Mixed} context\n * The object to bind as scope.\n *\n * @param {Function} fn\n * The function to be bound to a scope.\n *\n * @param {number} [uid]\n * An optional unique ID for the function to be set\n *\n * @return {Function}\n * The new function that will be bound into the context given\n */\n\nvar bind = function bind(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) {\n fn.guid = newGUID();\n } // Create the new function that changes the context\n\n\n var bound = fn.bind(context); // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n\n bound.guid = uid ? uid + '_' + fn.guid : fn.guid;\n return bound;\n};\n/**\n * Wraps the given function, `fn`, with a new function that only invokes `fn`\n * at most once per every `wait` milliseconds.\n *\n * @function\n * @param {Function} fn\n * The function to be throttled.\n *\n * @param {number} wait\n * The number of milliseconds by which to throttle.\n *\n * @return {Function}\n */\n\nvar throttle = function throttle(fn, wait) {\n var last = window$1.performance.now();\n\n var throttled = function throttled() {\n var now = window$1.performance.now();\n\n if (now - last >= wait) {\n fn.apply(void 0, arguments);\n last = now;\n }\n };\n\n return throttled;\n};\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked.\n *\n * Inspired by lodash and underscore implementations.\n *\n * @function\n * @param {Function} func\n * The function to wrap with debounce behavior.\n *\n * @param {number} wait\n * The number of milliseconds to wait after the last invocation.\n *\n * @param {boolean} [immediate]\n * Whether or not to invoke the function immediately upon creation.\n *\n * @param {Object} [context=window]\n * The \"context\" in which the debounced function should debounce. For\n * example, if this function should be tied to a Video.js player,\n * the player can be passed here. Alternatively, defaults to the\n * global `window` object.\n *\n * @return {Function}\n * A debounced function.\n */\n\nvar debounce = function debounce(func, wait, immediate, context) {\n if (context === void 0) {\n context = window$1;\n }\n\n var timeout;\n\n var cancel = function cancel() {\n context.clearTimeout(timeout);\n timeout = null;\n };\n /* eslint-disable consistent-this */\n\n\n var debounced = function debounced() {\n var self = this;\n var args = arguments;\n\n var _later = function later() {\n timeout = null;\n _later = null;\n\n if (!immediate) {\n func.apply(self, args);\n }\n };\n\n if (!timeout && immediate) {\n func.apply(self, args);\n }\n\n context.clearTimeout(timeout);\n timeout = context.setTimeout(_later, wait);\n };\n /* eslint-enable consistent-this */\n\n\n debounced.cancel = cancel;\n return debounced;\n};\n\n/**\n * @file src/js/event-target.js\n */\n/**\n * `EventTarget` is a class that can have the same API as the DOM `EventTarget`. It\n * adds shorthand functions that wrap around lengthy functions. For example:\n * the `on` function is a wrapper around `addEventListener`.\n *\n * @see [EventTarget Spec]{@link https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget}\n * @class EventTarget\n */\n\nvar EventTarget$2 = function EventTarget() {};\n/**\n * A Custom DOM event.\n *\n * @typedef {Object} EventTarget~Event\n * @see [Properties]{@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent}\n */\n\n/**\n * All event listeners should follow the following format.\n *\n * @callback EventTarget~EventListener\n * @this {EventTarget}\n *\n * @param {EventTarget~Event} event\n * the event that triggered this function\n *\n * @param {Object} [hash]\n * hash of data sent during the event\n */\n\n/**\n * An object containing event names as keys and booleans as values.\n *\n * > NOTE: If an event name is set to a true value here {@link EventTarget#trigger}\n * will have extra functionality. See that function for more information.\n *\n * @property EventTarget.prototype.allowedEvents_\n * @private\n */\n\n\nEventTarget$2.prototype.allowedEvents_ = {};\n/**\n * Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a\n * function that will get called when an event with a certain name gets triggered.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to call with `EventTarget`s\n */\n\nEventTarget$2.prototype.on = function (type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n on(this, type, fn);\n this.addEventListener = ael;\n};\n/**\n * An alias of {@link EventTarget#on}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#on}\n */\n\n\nEventTarget$2.prototype.addEventListener = EventTarget$2.prototype.on;\n/**\n * Removes an `event listener` for a specific event from an instance of `EventTarget`.\n * This makes it so that the `event listener` will no longer get called when the\n * named event happens.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to remove.\n */\n\nEventTarget$2.prototype.off = function (type, fn) {\n off(this, type, fn);\n};\n/**\n * An alias of {@link EventTarget#off}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#off}\n */\n\n\nEventTarget$2.prototype.removeEventListener = EventTarget$2.prototype.off;\n/**\n * This function will add an `event listener` that gets triggered only once. After the\n * first trigger it will get removed. This is like adding an `event listener`\n * with {@link EventTarget#on} that calls {@link EventTarget#off} on itself.\n *\n * @param {string|string[]} type\n * An event name or an array of event names.\n *\n * @param {EventTarget~EventListener} fn\n * The function to be called once for each event name.\n */\n\nEventTarget$2.prototype.one = function (type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n one(this, type, fn);\n this.addEventListener = ael;\n};\n\nEventTarget$2.prototype.any = function (type, fn) {\n // Remove the addEventListener aliasing Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n\n this.addEventListener = function () {};\n\n any(this, type, fn);\n this.addEventListener = ael;\n};\n/**\n * This function causes an event to happen. This will then cause any `event listeners`\n * that are waiting for that event, to get called. If there are no `event listeners`\n * for an event then nothing will happen.\n *\n * If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`.\n * Trigger will also call the `on` + `uppercaseEventName` function.\n *\n * Example:\n * 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call\n * `onClick` if it exists.\n *\n * @param {string|EventTarget~Event|Object} event\n * The name of the event, an `Event`, or an object with a key of type set to\n * an event name.\n */\n\n\nEventTarget$2.prototype.trigger = function (event) {\n var type = event.type || event; // deprecation\n // In a future version we should default target to `this`\n // similar to how we default the target to `elem` in\n // `Events.trigger`. Right now the default `target` will be\n // `document` due to the `Event.fixEvent` call.\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n\n event = fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n trigger(this, event);\n};\n/**\n * An alias of {@link EventTarget#trigger}. Allows `EventTarget` to mimic\n * the standard DOM API.\n *\n * @function\n * @see {@link EventTarget#trigger}\n */\n\n\nEventTarget$2.prototype.dispatchEvent = EventTarget$2.prototype.trigger;\nvar EVENT_MAP;\n\nEventTarget$2.prototype.queueTrigger = function (event) {\n var _this = this;\n\n // only set up EVENT_MAP if it'll be used\n if (!EVENT_MAP) {\n EVENT_MAP = new Map();\n }\n\n var type = event.type || event;\n var map = EVENT_MAP.get(this);\n\n if (!map) {\n map = new Map();\n EVENT_MAP.set(this, map);\n }\n\n var oldTimeout = map.get(type);\n map[\"delete\"](type);\n window$1.clearTimeout(oldTimeout);\n var timeout = window$1.setTimeout(function () {\n map[\"delete\"](type); // if we cleared out all timeouts for the current target, delete its map\n\n if (map.size === 0) {\n map = null;\n EVENT_MAP[\"delete\"](_this);\n }\n\n _this.trigger(event);\n }, 0);\n map.set(type, timeout);\n};\n\n/**\n * @file mixins/evented.js\n * @module evented\n */\n\nvar objName = function objName(obj) {\n if (typeof obj.name === 'function') {\n return obj.name();\n }\n\n if (typeof obj.name === 'string') {\n return obj.name;\n }\n\n if (obj.name_) {\n return obj.name_;\n }\n\n if (obj.constructor && obj.constructor.name) {\n return obj.constructor.name;\n }\n\n return typeof obj;\n};\n/**\n * Returns whether or not an object has had the evented mixin applied.\n *\n * @param {Object} object\n * An object to test.\n *\n * @return {boolean}\n * Whether or not the object appears to be evented.\n */\n\n\nvar isEvented = function isEvented(object) {\n return object instanceof EventTarget$2 || !!object.eventBusEl_ && ['on', 'one', 'off', 'trigger'].every(function (k) {\n return typeof object[k] === 'function';\n });\n};\n/**\n * Adds a callback to run after the evented mixin applied.\n *\n * @param {Object} object\n * An object to Add\n * @param {Function} callback\n * The callback to run.\n */\n\n\nvar addEventedCallback = function addEventedCallback(target, callback) {\n if (isEvented(target)) {\n callback();\n } else {\n if (!target.eventedCallbacks) {\n target.eventedCallbacks = [];\n }\n\n target.eventedCallbacks.push(callback);\n }\n};\n/**\n * Whether a value is a valid event type - non-empty string or array.\n *\n * @private\n * @param {string|Array} type\n * The type value to test.\n *\n * @return {boolean}\n * Whether or not the type is a valid event type.\n */\n\n\nvar isValidEventType = function isValidEventType(type) {\n return (// The regex here verifies that the `type` contains at least one non-\n // whitespace character.\n typeof type === 'string' && /\\S/.test(type) || Array.isArray(type) && !!type.length\n );\n};\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the target does not appear to be a valid event target.\n *\n * @param {Object} target\n * The object to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateTarget = function validateTarget(target, obj, fnName) {\n if (!target || !target.nodeName && !isEvented(target)) {\n throw new Error(\"Invalid target for \" + objName(obj) + \"#\" + fnName + \"; must be a DOM node or evented object.\");\n }\n};\n/**\n * Validates a value to determine if it is a valid event target. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the type does not appear to be a valid event type.\n *\n * @param {string|Array} type\n * The type to test.\n *\n * @param {Object} obj\n* The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateEventType = function validateEventType(type, obj, fnName) {\n if (!isValidEventType(type)) {\n throw new Error(\"Invalid event type for \" + objName(obj) + \"#\" + fnName + \"; must be a non-empty string or array.\");\n }\n};\n/**\n * Validates a value to determine if it is a valid listener. Throws if not.\n *\n * @private\n * @throws {Error}\n * If the listener is not a function.\n *\n * @param {Function} listener\n * The listener to test.\n *\n * @param {Object} obj\n * The evented object we are validating for\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n */\n\n\nvar validateListener = function validateListener(listener, obj, fnName) {\n if (typeof listener !== 'function') {\n throw new Error(\"Invalid listener for \" + objName(obj) + \"#\" + fnName + \"; must be a function.\");\n }\n};\n/**\n * Takes an array of arguments given to `on()` or `one()`, validates them, and\n * normalizes them into an object.\n *\n * @private\n * @param {Object} self\n * The evented object on which `on()` or `one()` was called. This\n * object will be bound as the `this` value for the listener.\n *\n * @param {Array} args\n * An array of arguments passed to `on()` or `one()`.\n *\n * @param {string} fnName\n * The name of the evented mixin function that called this.\n *\n * @return {Object}\n * An object containing useful values for `on()` or `one()` calls.\n */\n\n\nvar normalizeListenArgs = function normalizeListenArgs(self, args, fnName) {\n // If the number of arguments is less than 3, the target is always the\n // evented object itself.\n var isTargetingSelf = args.length < 3 || args[0] === self || args[0] === self.eventBusEl_;\n var target;\n var type;\n var listener;\n\n if (isTargetingSelf) {\n target = self.eventBusEl_; // Deal with cases where we got 3 arguments, but we are still listening to\n // the evented object itself.\n\n if (args.length >= 3) {\n args.shift();\n }\n\n type = args[0];\n listener = args[1];\n } else {\n target = args[0];\n type = args[1];\n listener = args[2];\n }\n\n validateTarget(target, self, fnName);\n validateEventType(type, self, fnName);\n validateListener(listener, self, fnName);\n listener = bind(self, listener);\n return {\n isTargetingSelf: isTargetingSelf,\n target: target,\n type: type,\n listener: listener\n };\n};\n/**\n * Adds the listener to the event type(s) on the target, normalizing for\n * the type of target.\n *\n * @private\n * @param {Element|Object} target\n * A DOM node or evented object.\n *\n * @param {string} method\n * The event binding method to use (\"on\" or \"one\").\n *\n * @param {string|Array} type\n * One or more event type(s).\n *\n * @param {Function} listener\n * A listener function.\n */\n\n\nvar listen = function listen(target, method, type, listener) {\n validateTarget(target, target, method);\n\n if (target.nodeName) {\n Events[method](target, type, listener);\n } else {\n target[method](type, listener);\n }\n};\n/**\n * Contains methods that provide event capabilities to an object which is passed\n * to {@link module:evented|evented}.\n *\n * @mixin EventedMixin\n */\n\n\nvar EventedMixin = {\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n on: function on() {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _normalizeListenArgs = normalizeListenArgs(this, args, 'on'),\n isTargetingSelf = _normalizeListenArgs.isTargetingSelf,\n target = _normalizeListenArgs.target,\n type = _normalizeListenArgs.type,\n listener = _normalizeListenArgs.listener;\n\n listen(target, 'on', type, listener); // If this object is listening to another evented object.\n\n if (!isTargetingSelf) {\n // If this object is disposed, remove the listener.\n var removeListenerOnDispose = function removeListenerOnDispose() {\n return _this.off(target, type, listener);\n }; // Use the same function ID as the listener so we can remove it later it\n // using the ID of the original listener.\n\n\n removeListenerOnDispose.guid = listener.guid; // Add a listener to the target's dispose event as well. This ensures\n // that if the target is disposed BEFORE this object, we remove the\n // removal listener that was just added. Otherwise, we create a memory leak.\n\n var removeRemoverOnTargetDispose = function removeRemoverOnTargetDispose() {\n return _this.off('dispose', removeListenerOnDispose);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n removeRemoverOnTargetDispose.guid = listener.guid;\n listen(this, 'on', 'dispose', removeListenerOnDispose);\n listen(target, 'on', 'dispose', removeRemoverOnTargetDispose);\n }\n },\n\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will be called once per event and then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n one: function one() {\n var _this2 = this;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var _normalizeListenArgs2 = normalizeListenArgs(this, args, 'one'),\n isTargetingSelf = _normalizeListenArgs2.isTargetingSelf,\n target = _normalizeListenArgs2.target,\n type = _normalizeListenArgs2.type,\n listener = _normalizeListenArgs2.listener; // Targeting this evented object.\n\n\n if (isTargetingSelf) {\n listen(target, 'one', type, listener); // Targeting another evented object.\n } else {\n // TODO: This wrapper is incorrect! It should only\n // remove the wrapper for the event type that called it.\n // Instead all listners are removed on the first trigger!\n // see https://github.com/videojs/video.js/issues/5962\n var wrapper = function wrapper() {\n _this2.off(target, type, wrapper);\n\n for (var _len3 = arguments.length, largs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n largs[_key3] = arguments[_key3];\n }\n\n listener.apply(null, largs);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n wrapper.guid = listener.guid;\n listen(target, 'one', type, wrapper);\n }\n },\n\n /**\n * Add a listener to an event (or events) on this object or another evented\n * object. The listener will only be called once for the first event that is triggered\n * then removed.\n *\n * @param {string|Array|Element|Object} targetOrType\n * If this is a string or array, it represents the event type(s)\n * that will trigger the listener.\n *\n * Another evented object can be passed here instead, which will\n * cause the listener to listen for events on _that_ object.\n *\n * In either case, the listener's `this` value will be bound to\n * this object.\n *\n * @param {string|Array|Function} typeOrListener\n * If the first argument was a string or array, this should be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function.\n */\n any: function any() {\n var _this3 = this;\n\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n var _normalizeListenArgs3 = normalizeListenArgs(this, args, 'any'),\n isTargetingSelf = _normalizeListenArgs3.isTargetingSelf,\n target = _normalizeListenArgs3.target,\n type = _normalizeListenArgs3.type,\n listener = _normalizeListenArgs3.listener; // Targeting this evented object.\n\n\n if (isTargetingSelf) {\n listen(target, 'any', type, listener); // Targeting another evented object.\n } else {\n var wrapper = function wrapper() {\n _this3.off(target, type, wrapper);\n\n for (var _len5 = arguments.length, largs = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n largs[_key5] = arguments[_key5];\n }\n\n listener.apply(null, largs);\n }; // Use the same function ID as the listener so we can remove it later\n // it using the ID of the original listener.\n\n\n wrapper.guid = listener.guid;\n listen(target, 'any', type, wrapper);\n }\n },\n\n /**\n * Removes listener(s) from event(s) on an evented object.\n *\n * @param {string|Array|Element|Object} [targetOrType]\n * If this is a string or array, it represents the event type(s).\n *\n * Another evented object can be passed here instead, in which case\n * ALL 3 arguments are _required_.\n *\n * @param {string|Array|Function} [typeOrListener]\n * If the first argument was a string or array, this may be the\n * listener function. Otherwise, this is a string or array of event\n * type(s).\n *\n * @param {Function} [listener]\n * If the first argument was another evented object, this will be\n * the listener function; otherwise, _all_ listeners bound to the\n * event type(s) will be removed.\n */\n off: function off$1(targetOrType, typeOrListener, listener) {\n // Targeting this evented object.\n if (!targetOrType || isValidEventType(targetOrType)) {\n off(this.eventBusEl_, targetOrType, typeOrListener); // Targeting another evented object.\n } else {\n var target = targetOrType;\n var type = typeOrListener; // Fail fast and in a meaningful way!\n\n validateTarget(target, this, 'off');\n validateEventType(type, this, 'off');\n validateListener(listener, this, 'off'); // Ensure there's at least a guid, even if the function hasn't been used\n\n listener = bind(this, listener); // Remove the dispose listener on this evented object, which was given\n // the same guid as the event listener in on().\n\n this.off('dispose', listener);\n\n if (target.nodeName) {\n off(target, type, listener);\n off(target, 'dispose', listener);\n } else if (isEvented(target)) {\n target.off(type, listener);\n target.off('dispose', listener);\n }\n }\n },\n\n /**\n * Fire an event on this evented object, causing its listeners to be called.\n *\n * @param {string|Object} event\n * An event type or an object with a type property.\n *\n * @param {Object} [hash]\n * An additional object to pass along to listeners.\n *\n * @return {boolean}\n * Whether or not the default behavior was prevented.\n */\n trigger: function trigger$1(event, hash) {\n validateTarget(this.eventBusEl_, this, 'trigger');\n var type = event && typeof event !== 'string' ? event.type : event;\n\n if (!isValidEventType(type)) {\n var error = \"Invalid event type for \" + objName(this) + \"#trigger; \" + 'must be a non-empty string or object with a type key that has a non-empty value.';\n\n if (event) {\n (this.log || log$1).error(error);\n } else {\n throw new Error(error);\n }\n }\n\n return trigger(this.eventBusEl_, event, hash);\n }\n};\n/**\n * Applies {@link module:evented~EventedMixin|EventedMixin} to a target object.\n *\n * @param {Object} target\n * The object to which to add event methods.\n *\n * @param {Object} [options={}]\n * Options for customizing the mixin behavior.\n *\n * @param {string} [options.eventBusKey]\n * By default, adds a `eventBusEl_` DOM element to the target object,\n * which is used as an event bus. If the target object already has a\n * DOM element that should be used, pass its key here.\n *\n * @return {Object}\n * The target object.\n */\n\nfunction evented(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n eventBusKey = _options.eventBusKey; // Set or create the eventBusEl_.\n\n if (eventBusKey) {\n if (!target[eventBusKey].nodeName) {\n throw new Error(\"The eventBusKey \\\"\" + eventBusKey + \"\\\" does not refer to an element.\");\n }\n\n target.eventBusEl_ = target[eventBusKey];\n } else {\n target.eventBusEl_ = createEl('span', {\n className: 'vjs-event-bus'\n });\n }\n\n assign(target, EventedMixin);\n\n if (target.eventedCallbacks) {\n target.eventedCallbacks.forEach(function (callback) {\n callback();\n });\n } // When any evented object is disposed, it removes all its listeners.\n\n\n target.on('dispose', function () {\n target.off();\n [target, target.el_, target.eventBusEl_].forEach(function (val) {\n if (val && DomData.has(val)) {\n DomData[\"delete\"](val);\n }\n });\n window$1.setTimeout(function () {\n target.eventBusEl_ = null;\n }, 0);\n });\n return target;\n}\n\n/**\n * @file mixins/stateful.js\n * @module stateful\n */\n/**\n * Contains methods that provide statefulness to an object which is passed\n * to {@link module:stateful}.\n *\n * @mixin StatefulMixin\n */\n\nvar StatefulMixin = {\n /**\n * A hash containing arbitrary keys and values representing the state of\n * the object.\n *\n * @type {Object}\n */\n state: {},\n\n /**\n * Set the state of an object by mutating its\n * {@link module:stateful~StatefulMixin.state|state} object in place.\n *\n * @fires module:stateful~StatefulMixin#statechanged\n * @param {Object|Function} stateUpdates\n * A new set of properties to shallow-merge into the plugin state.\n * Can be a plain object or a function returning a plain object.\n *\n * @return {Object|undefined}\n * An object containing changes that occurred. If no changes\n * occurred, returns `undefined`.\n */\n setState: function setState(stateUpdates) {\n var _this = this;\n\n // Support providing the `stateUpdates` state as a function.\n if (typeof stateUpdates === 'function') {\n stateUpdates = stateUpdates();\n }\n\n var changes;\n each(stateUpdates, function (value, key) {\n // Record the change if the value is different from what's in the\n // current state.\n if (_this.state[key] !== value) {\n changes = changes || {};\n changes[key] = {\n from: _this.state[key],\n to: value\n };\n }\n\n _this.state[key] = value;\n }); // Only trigger \"statechange\" if there were changes AND we have a trigger\n // function. This allows us to not require that the target object be an\n // evented object.\n\n if (changes && isEvented(this)) {\n /**\n * An event triggered on an object that is both\n * {@link module:stateful|stateful} and {@link module:evented|evented}\n * indicating that its state has changed.\n *\n * @event module:stateful~StatefulMixin#statechanged\n * @type {Object}\n * @property {Object} changes\n * A hash containing the properties that were changed and\n * the values they were changed `from` and `to`.\n */\n this.trigger({\n changes: changes,\n type: 'statechanged'\n });\n }\n\n return changes;\n }\n};\n/**\n * Applies {@link module:stateful~StatefulMixin|StatefulMixin} to a target\n * object.\n *\n * If the target object is {@link module:evented|evented} and has a\n * `handleStateChanged` method, that method will be automatically bound to the\n * `statechanged` event on itself.\n *\n * @param {Object} target\n * The object to be made stateful.\n *\n * @param {Object} [defaultState]\n * A default set of properties to populate the newly-stateful object's\n * `state` property.\n *\n * @return {Object}\n * Returns the `target`.\n */\n\nfunction stateful(target, defaultState) {\n assign(target, StatefulMixin); // This happens after the mixing-in because we need to replace the `state`\n // added in that step.\n\n target.state = assign({}, target.state, defaultState); // Auto-bind the `handleStateChanged` method of the target object if it exists.\n\n if (typeof target.handleStateChanged === 'function' && isEvented(target)) {\n target.on('statechanged', target.handleStateChanged);\n }\n\n return target;\n}\n\n/**\n * @file string-cases.js\n * @module to-lower-case\n */\n\n/**\n * Lowercase the first letter of a string.\n *\n * @param {string} string\n * String to be lowercased\n *\n * @return {string}\n * The string with a lowercased first letter\n */\nvar toLowerCase = function toLowerCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.replace(/./, function (w) {\n return w.toLowerCase();\n });\n};\n/**\n * Uppercase the first letter of a string.\n *\n * @param {string} string\n * String to be uppercased\n *\n * @return {string}\n * The string with an uppercased first letter\n */\n\nvar toTitleCase$1 = function toTitleCase(string) {\n if (typeof string !== 'string') {\n return string;\n }\n\n return string.replace(/./, function (w) {\n return w.toUpperCase();\n });\n};\n/**\n * Compares the TitleCase versions of the two strings for equality.\n *\n * @param {string} str1\n * The first string to compare\n *\n * @param {string} str2\n * The second string to compare\n *\n * @return {boolean}\n * Whether the TitleCase versions of the strings are equal\n */\n\nvar titleCaseEquals = function titleCaseEquals(str1, str2) {\n return toTitleCase$1(str1) === toTitleCase$1(str2);\n};\n\n/**\n * @file merge-options.js\n * @module merge-options\n */\n/**\n * Merge two objects recursively.\n *\n * Performs a deep merge like\n * {@link https://lodash.com/docs/4.17.10#merge|lodash.merge}, but only merges\n * plain objects (not arrays, elements, or anything else).\n *\n * Non-plain object values will be copied directly from the right-most\n * argument.\n *\n * @static\n * @param {Object[]} sources\n * One or more objects to merge into a new object.\n *\n * @return {Object}\n * A new object that is the merged result of all sources.\n */\n\nfunction mergeOptions$3() {\n var result = {};\n\n for (var _len = arguments.length, sources = new Array(_len), _key = 0; _key < _len; _key++) {\n sources[_key] = arguments[_key];\n }\n\n sources.forEach(function (source) {\n if (!source) {\n return;\n }\n\n each(source, function (value, key) {\n if (!isPlain(value)) {\n result[key] = value;\n return;\n }\n\n if (!isPlain(result[key])) {\n result[key] = {};\n }\n\n result[key] = mergeOptions$3(result[key], value);\n });\n });\n return result;\n}\n\nvar MapSham = /*#__PURE__*/function () {\n function MapSham() {\n this.map_ = {};\n }\n\n var _proto = MapSham.prototype;\n\n _proto.has = function has(key) {\n return key in this.map_;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var has = this.has(key);\n delete this.map_[key];\n return has;\n };\n\n _proto.set = function set(key, value) {\n this.map_[key] = value;\n return this;\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var key in this.map_) {\n callback.call(thisArg, this.map_[key], key, this);\n }\n };\n\n return MapSham;\n}();\n\nvar Map$1 = window$1.Map ? window$1.Map : MapSham;\n\nvar SetSham = /*#__PURE__*/function () {\n function SetSham() {\n this.set_ = {};\n }\n\n var _proto = SetSham.prototype;\n\n _proto.has = function has(key) {\n return key in this.set_;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var has = this.has(key);\n delete this.set_[key];\n return has;\n };\n\n _proto.add = function add(key) {\n this.set_[key] = 1;\n return this;\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var key in this.set_) {\n callback.call(thisArg, key, key, this);\n }\n };\n\n return SetSham;\n}();\n\nvar Set$1 = window$1.Set ? window$1.Set : SetSham;\n\n/**\n * Player Component - Base class for all UI objects\n *\n * @file component.js\n */\n/**\n * Base class for all UI Components.\n * Components are UI objects which represent both a javascript object and an element\n * in the DOM. They can be children of other components, and can have\n * children themselves.\n *\n * Components can also use methods from {@link EventTarget}\n */\n\nvar Component$1 = /*#__PURE__*/function () {\n /**\n * A callback that is called when a component is ready. Does not have any\n * paramters and any callback value will be ignored.\n *\n * @callback Component~ReadyCallback\n * @this Component\n */\n\n /**\n * Creates an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of component options.\n *\n * @param {Object[]} [options.children]\n * An array of children objects to intialize this component with. Children objects have\n * a name property that will be used if more than one component of the same type needs to be\n * added.\n *\n * @param {string} [options.className]\n * A class or space separated list of classes to add the component\n *\n * @param {Component~ReadyCallback} [ready]\n * Function that gets called when the `Component` is ready.\n */\n function Component(player, options, ready) {\n var _this = this;\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n this.isDisposed_ = false; // Hold the reference to the parent component via `addChild` method\n\n this.parentComponent_ = null; // Make a copy of prototype.options_ to protect against overriding defaults\n\n this.options_ = mergeOptions$3({}, this.options_); // Updated options with supplied options\n\n options = this.options_ = mergeOptions$3(this.options_, options); // Get ID from options or options element if one is supplied\n\n this.id_ = options.id || options.el && options.el.id; // If there was no ID from the options, generate one\n\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n var id = player && player.id && player.id() || 'no_player';\n this.id_ = id + \"_component_\" + newGUID();\n }\n\n this.name_ = options.name || null; // Create element if one wasn't provided in options\n\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n if (options.className && this.el_) {\n options.className.split(' ').forEach(function (c) {\n return _this.addClass(c);\n });\n } // if evented is anything except false, we want to mixin in evented\n\n\n if (options.evented !== false) {\n // Make this an evented object and use `el_`, if available, as its event bus\n evented(this, {\n eventBusKey: this.el_ ? 'el_' : null\n });\n this.handleLanguagechange = this.handleLanguagechange.bind(this);\n this.on(this.player_, 'languagechange', this.handleLanguagechange);\n }\n\n stateful(this, this.constructor.defaultState);\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n this.setTimeoutIds_ = new Set$1();\n this.setIntervalIds_ = new Set$1();\n this.rafIds_ = new Set$1();\n this.namedRafs_ = new Map$1();\n this.clearingTimersOnDispose_ = false; // Add any child components in options\n\n if (options.initChildren !== false) {\n this.initChildren();\n } // Don't want to trigger ready here or it will go before init is actually\n // finished for all children that run this constructor\n\n\n this.ready(ready);\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n /**\n * Dispose of the `Component` and all child components.\n *\n * @fires Component#dispose\n *\n * @param {Object} options\n * @param {Element} options.originalEl element with which to replace player element\n */\n\n\n var _proto = Component.prototype;\n\n _proto.dispose = function dispose(options) {\n if (options === void 0) {\n options = {};\n }\n\n // Bail out if the component has already been disposed.\n if (this.isDisposed_) {\n return;\n }\n\n if (this.readyQueue_) {\n this.readyQueue_.length = 0;\n }\n /**\n * Triggered when a `Component` is disposed.\n *\n * @event Component#dispose\n * @type {EventTarget~Event}\n *\n * @property {boolean} [bubbles=false]\n * set to false so that the dispose event does not\n * bubble up\n */\n\n\n this.trigger({\n type: 'dispose',\n bubbles: false\n });\n this.isDisposed_ = true; // Dispose all children.\n\n if (this.children_) {\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n } // Delete child references\n\n\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n this.parentComponent_ = null;\n\n if (this.el_) {\n // Remove element from DOM\n if (this.el_.parentNode) {\n if (options.restoreEl) {\n this.el_.parentNode.replaceChild(options.restoreEl, this.el_);\n } else {\n this.el_.parentNode.removeChild(this.el_);\n }\n }\n\n this.el_ = null;\n } // remove reference to the player after disposing of the element\n\n\n this.player_ = null;\n }\n /**\n * Determine whether or not this component has been disposed.\n *\n * @return {boolean}\n * If the component has been disposed, will be `true`. Otherwise, `false`.\n */\n ;\n\n _proto.isDisposed = function isDisposed() {\n return Boolean(this.isDisposed_);\n }\n /**\n * Return the {@link Player} that the `Component` has attached to.\n *\n * @return {Player}\n * The player that this `Component` has attached to.\n */\n ;\n\n _proto.player = function player() {\n return this.player_;\n }\n /**\n * Deep merge of options objects with new options.\n * > Note: When both `obj` and `options` contain properties whose values are objects.\n * The two properties get merged using {@link module:mergeOptions}\n *\n * @param {Object} obj\n * The object that contains new options.\n *\n * @return {Object}\n * A new object of `this.options_` and `obj` merged together.\n */\n ;\n\n _proto.options = function options(obj) {\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions$3(this.options_, obj);\n return this.options_;\n }\n /**\n * Get the `Component`s DOM element\n *\n * @return {Element}\n * The DOM element for this `Component`.\n */\n ;\n\n _proto.el = function el() {\n return this.el_;\n }\n /**\n * Create the `Component`s DOM element.\n *\n * @param {string} [tagName]\n * Element's DOM node type. e.g. 'div'\n *\n * @param {Object} [properties]\n * An object of properties that should be set.\n *\n * @param {Object} [attributes]\n * An object of attributes that should be set.\n *\n * @return {Element}\n * The element that gets created.\n */\n ;\n\n _proto.createEl = function createEl$1(tagName, properties, attributes) {\n return createEl(tagName, properties, attributes);\n }\n /**\n * Localize a string given the string in english.\n *\n * If tokens are provided, it'll try and run a simple token replacement on the provided string.\n * The tokens it looks for look like `{1}` with the index being 1-indexed into the tokens array.\n *\n * If a `defaultValue` is provided, it'll use that over `string`,\n * if a value isn't found in provided language files.\n * This is useful if you want to have a descriptive key for token replacement\n * but have a succinct localized string and not require `en.json` to be included.\n *\n * Currently, it is used for the progress bar timing.\n * ```js\n * {\n * \"progress bar timing: currentTime={1} duration={2}\": \"{1} of {2}\"\n * }\n * ```\n * It is then used like so:\n * ```js\n * this.localize('progress bar timing: currentTime={1} duration{2}',\n * [this.player_.currentTime(), this.player_.duration()],\n * '{1} of {2}');\n * ```\n *\n * Which outputs something like: `01:23 of 24:56`.\n *\n *\n * @param {string} string\n * The string to localize and the key to lookup in the language files.\n * @param {string[]} [tokens]\n * If the current item has token replacements, provide the tokens here.\n * @param {string} [defaultValue]\n * Defaults to `string`. Can be a default value to use for token replacement\n * if the lookup key is needed to be separate.\n *\n * @return {string}\n * The localized string or if no localization exists the english string.\n */\n ;\n\n _proto.localize = function localize(string, tokens, defaultValue) {\n if (defaultValue === void 0) {\n defaultValue = string;\n }\n\n var code = this.player_.language && this.player_.language();\n var languages = this.player_.languages && this.player_.languages();\n var language = languages && languages[code];\n var primaryCode = code && code.split('-')[0];\n var primaryLang = languages && languages[primaryCode];\n var localizedString = defaultValue;\n\n if (language && language[string]) {\n localizedString = language[string];\n } else if (primaryLang && primaryLang[string]) {\n localizedString = primaryLang[string];\n }\n\n if (tokens) {\n localizedString = localizedString.replace(/\\{(\\d+)\\}/g, function (match, index) {\n var value = tokens[index - 1];\n var ret = value;\n\n if (typeof value === 'undefined') {\n ret = match;\n }\n\n return ret;\n });\n }\n\n return localizedString;\n }\n /**\n * Handles language change for the player in components. Should be overriden by sub-components.\n *\n * @abstract\n */\n ;\n\n _proto.handleLanguagechange = function handleLanguagechange() {}\n /**\n * Return the `Component`s DOM element. This is where children get inserted.\n * This will usually be the the same as the element returned in {@link Component#el}.\n *\n * @return {Element}\n * The content element for this `Component`.\n */\n ;\n\n _proto.contentEl = function contentEl() {\n return this.contentEl_ || this.el_;\n }\n /**\n * Get this `Component`s ID\n *\n * @return {string}\n * The id of this `Component`\n */\n ;\n\n _proto.id = function id() {\n return this.id_;\n }\n /**\n * Get the `Component`s name. The name gets used to reference the `Component`\n * and is set during registration.\n *\n * @return {string}\n * The name of this `Component`.\n */\n ;\n\n _proto.name = function name() {\n return this.name_;\n }\n /**\n * Get an array of all child components\n *\n * @return {Array}\n * The children\n */\n ;\n\n _proto.children = function children() {\n return this.children_;\n }\n /**\n * Returns the child `Component` with the given `id`.\n *\n * @param {string} id\n * The id of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `id` or undefined.\n */\n ;\n\n _proto.getChildById = function getChildById(id) {\n return this.childIndex_[id];\n }\n /**\n * Returns the child `Component` with the given `name`.\n *\n * @param {string} name\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The child `Component` with the given `name` or undefined.\n */\n ;\n\n _proto.getChild = function getChild(name) {\n if (!name) {\n return;\n }\n\n return this.childNameIndex_[name];\n }\n /**\n * Returns the descendant `Component` following the givent\n * descendant `names`. For instance ['foo', 'bar', 'baz'] would\n * try to get 'foo' on the current component, 'bar' on the 'foo'\n * component and 'baz' on the 'bar' component and return undefined\n * if any of those don't exist.\n *\n * @param {...string[]|...string} names\n * The name of the child `Component` to get.\n *\n * @return {Component|undefined}\n * The descendant `Component` following the given descendant\n * `names` or undefined.\n */\n ;\n\n _proto.getDescendant = function getDescendant() {\n for (var _len = arguments.length, names = new Array(_len), _key = 0; _key < _len; _key++) {\n names[_key] = arguments[_key];\n }\n\n // flatten array argument into the main array\n names = names.reduce(function (acc, n) {\n return acc.concat(n);\n }, []);\n var currentChild = this;\n\n for (var i = 0; i < names.length; i++) {\n currentChild = currentChild.getChild(names[i]);\n\n if (!currentChild || !currentChild.getChild) {\n return;\n }\n }\n\n return currentChild;\n }\n /**\n * Add a child `Component` inside the current `Component`.\n *\n *\n * @param {string|Component} child\n * The name or instance of a child to add.\n *\n * @param {Object} [options={}]\n * The key/value store of options that will get passed to children of\n * the child.\n *\n * @param {number} [index=this.children_.length]\n * The index to attempt to add a child into.\n *\n * @return {Component}\n * The `Component` that gets added as a child. When using a string the\n * `Component` will get created by this process.\n */\n ;\n\n _proto.addChild = function addChild(child, options, index) {\n if (options === void 0) {\n options = {};\n }\n\n if (index === void 0) {\n index = this.children_.length;\n }\n\n var component;\n var componentName; // If child is a string, create component with options\n\n if (typeof child === 'string') {\n componentName = toTitleCase$1(child);\n var componentClassName = options.componentClass || componentName; // Set name through options\n\n options.name = componentName; // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n\n var ComponentClass = Component.getComponent(componentClassName);\n\n if (!ComponentClass) {\n throw new Error(\"Component \" + componentClassName + \" does not exist\");\n } // data stored directly on the videojs object may be\n // misidentified as a component to retain\n // backwards-compatibility with 4.x. check to make sure the\n // component class can be instantiated.\n\n\n if (typeof ComponentClass !== 'function') {\n return null;\n }\n\n component = new ComponentClass(this.player_ || this, options); // child is a component instance\n } else {\n component = child;\n }\n\n if (component.parentComponent_) {\n component.parentComponent_.removeChild(component);\n }\n\n this.children_.splice(index, 0, component);\n component.parentComponent_ = this;\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n } // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n\n\n componentName = componentName || component.name && toTitleCase$1(component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n this.childNameIndex_[toLowerCase(componentName)] = component;\n } // Add the UI object's element to the container div (box)\n // Having an element is not required\n\n\n if (typeof component.el === 'function' && component.el()) {\n // If inserting before a component, insert before that component's element\n var refNode = null;\n\n if (this.children_[index + 1]) {\n // Most children are components, but the video tech is an HTML element\n if (this.children_[index + 1].el_) {\n refNode = this.children_[index + 1].el_;\n } else if (isEl(this.children_[index + 1])) {\n refNode = this.children_[index + 1];\n }\n }\n\n this.contentEl().insertBefore(component.el(), refNode);\n } // Return so it can stored on parent object if desired.\n\n\n return component;\n }\n /**\n * Remove a child `Component` from this `Component`s list of children. Also removes\n * the child `Component`s element from this `Component`s element.\n *\n * @param {Component} component\n * The child `Component` to remove.\n */\n ;\n\n _proto.removeChild = function removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n var childFound = false;\n\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n component.parentComponent_ = null;\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[toTitleCase$1(component.name())] = null;\n this.childNameIndex_[toLowerCase(component.name())] = null;\n var compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n /**\n * Add and initialize default child `Component`s based upon options.\n */\n ;\n\n _proto.initChildren = function initChildren() {\n var _this2 = this;\n\n var children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n var parentOptions = this.options_;\n\n var handleAdd = function handleAdd(child) {\n var name = child.name;\n var opts = child.opts; // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n } // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n\n\n if (opts === false) {\n return;\n } // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n\n\n if (opts === true) {\n opts = {};\n } // We also want to pass the original player options\n // to each component as well so they don't need to\n // reach back into the player for options later.\n\n\n opts.playerOptions = _this2.options_.playerOptions; // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n\n var newChild = _this2.addChild(name, opts);\n\n if (newChild) {\n _this2[name] = newChild;\n }\n }; // Allow for an array of children details to passed in the options\n\n\n var workingChildren;\n var Tech = Component.getComponent('Tech');\n\n if (Array.isArray(children)) {\n workingChildren = children;\n } else {\n workingChildren = Object.keys(children);\n }\n\n workingChildren // children that are in this.options_ but also in workingChildren would\n // give us extra children we do not want. So, we want to filter them out.\n .concat(Object.keys(this.options_).filter(function (child) {\n return !workingChildren.some(function (wchild) {\n if (typeof wchild === 'string') {\n return child === wchild;\n }\n\n return child === wchild.name;\n });\n })).map(function (child) {\n var name;\n var opts;\n\n if (typeof child === 'string') {\n name = child;\n opts = children[name] || _this2.options_[name] || {};\n } else {\n name = child.name;\n opts = child;\n }\n\n return {\n name: name,\n opts: opts\n };\n }).filter(function (child) {\n // we have to make sure that child.name isn't in the techOrder since\n // techs are registerd as Components but can't aren't compatible\n // See https://github.com/videojs/video.js/issues/2772\n var c = Component.getComponent(child.opts.componentClass || toTitleCase$1(child.name));\n return c && !Tech.isTech(c);\n }).forEach(handleAdd);\n }\n }\n /**\n * Builds the default DOM class name. Should be overriden by sub-components.\n *\n * @return {string}\n * The DOM class name for this object.\n *\n * @abstract\n */\n ;\n\n _proto.buildCSSClass = function buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @return {Component}\n * Returns itself; method can be chained.\n */\n ;\n\n _proto.ready = function ready(fn, sync) {\n if (sync === void 0) {\n sync = false;\n }\n\n if (!fn) {\n return;\n }\n\n if (!this.isReady_) {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n return;\n }\n\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n }\n /**\n * Trigger all the ready listeners for this `Component`.\n *\n * @fires Component#ready\n */\n ;\n\n _proto.triggerReady = function triggerReady() {\n this.isReady_ = true; // Ensure ready is triggered asynchronously\n\n this.setTimeout(function () {\n var readyQueue = this.readyQueue_; // Reset Ready Queue\n\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function (fn) {\n fn.call(this);\n }, this);\n } // Allow for using event listeners also\n\n /**\n * Triggered when a `Component` is ready.\n *\n * @event Component#ready\n * @type {EventTarget~Event}\n */\n\n\n this.trigger('ready');\n }, 1);\n }\n /**\n * Find a single DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelector`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {Element|null}\n * the dom element that was found, or null\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n ;\n\n _proto.$ = function $$1(selector, context) {\n return $(selector, context || this.contentEl());\n }\n /**\n * Finds all DOM element matching a `selector`. This can be within the `Component`s\n * `contentEl()` or another custom context.\n *\n * @param {string} selector\n * A valid CSS selector, which will be passed to `querySelectorAll`.\n *\n * @param {Element|string} [context=this.contentEl()]\n * A DOM element within which to query. Can also be a selector string in\n * which case the first matching element will get used as context. If\n * missing `this.contentEl()` gets used. If `this.contentEl()` returns\n * nothing it falls back to `document`.\n *\n * @return {NodeList}\n * a list of dom elements that were found\n *\n * @see [Information on CSS Selectors](https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_Started/Selectors)\n */\n ;\n\n _proto.$$ = function $$$1(selector, context) {\n return $$(selector, context || this.contentEl());\n }\n /**\n * Check if a component's element has a CSS class name.\n *\n * @param {string} classToCheck\n * CSS class name to check.\n *\n * @return {boolean}\n * - True if the `Component` has the class.\n * - False if the `Component` does not have the class`\n */\n ;\n\n _proto.hasClass = function hasClass$1(classToCheck) {\n return hasClass(this.el_, classToCheck);\n }\n /**\n * Add a CSS class name to the `Component`s element.\n *\n * @param {string} classToAdd\n * CSS class name to add\n */\n ;\n\n _proto.addClass = function addClass$1(classToAdd) {\n addClass(this.el_, classToAdd);\n }\n /**\n * Remove a CSS class name from the `Component`s element.\n *\n * @param {string} classToRemove\n * CSS class name to remove\n */\n ;\n\n _proto.removeClass = function removeClass$1(classToRemove) {\n removeClass(this.el_, classToRemove);\n }\n /**\n * Add or remove a CSS class name from the component's element.\n * - `classToToggle` gets added when {@link Component#hasClass} would return false.\n * - `classToToggle` gets removed when {@link Component#hasClass} would return true.\n *\n * @param {string} classToToggle\n * The class to add or remove based on (@link Component#hasClass}\n *\n * @param {boolean|Dom~predicate} [predicate]\n * An {@link Dom~predicate} function or a boolean\n */\n ;\n\n _proto.toggleClass = function toggleClass$1(classToToggle, predicate) {\n toggleClass(this.el_, classToToggle, predicate);\n }\n /**\n * Show the `Component`s element if it is hidden by removing the\n * 'vjs-hidden' class name from it.\n */\n ;\n\n _proto.show = function show() {\n this.removeClass('vjs-hidden');\n }\n /**\n * Hide the `Component`s element if it is currently showing by adding the\n * 'vjs-hidden` class name to it.\n */\n ;\n\n _proto.hide = function hide() {\n this.addClass('vjs-hidden');\n }\n /**\n * Lock a `Component`s element in its visible state by adding the 'vjs-lock-showing'\n * class name to it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n ;\n\n _proto.lockShowing = function lockShowing() {\n this.addClass('vjs-lock-showing');\n }\n /**\n * Unlock a `Component`s element from its visible state by removing the 'vjs-lock-showing'\n * class name from it. Used during fadeIn/fadeOut.\n *\n * @private\n */\n ;\n\n _proto.unlockShowing = function unlockShowing() {\n this.removeClass('vjs-lock-showing');\n }\n /**\n * Get the value of an attribute on the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to get the value from.\n *\n * @return {string|null}\n * - The value of the attribute that was asked for.\n * - Can be an empty string on some browsers if the attribute does not exist\n * or has no value\n * - Most browsers will return null if the attibute does not exist or has\n * no value.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute}\n */\n ;\n\n _proto.getAttribute = function getAttribute$1(attribute) {\n return getAttribute(this.el_, attribute);\n }\n /**\n * Set the value of an attribute on the `Component`'s element\n *\n * @param {string} attribute\n * Name of the attribute to set.\n *\n * @param {string} value\n * Value to set the attribute to.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute}\n */\n ;\n\n _proto.setAttribute = function setAttribute$1(attribute, value) {\n setAttribute(this.el_, attribute, value);\n }\n /**\n * Remove an attribute from the `Component`s element.\n *\n * @param {string} attribute\n * Name of the attribute to remove.\n *\n * @see [DOM API]{@link https://developer.mozilla.org/en-US/docs/Web/API/Element/removeAttribute}\n */\n ;\n\n _proto.removeAttribute = function removeAttribute$1(attribute) {\n removeAttribute(this.el_, attribute);\n }\n /**\n * Get or set the width of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The width that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n ;\n\n _proto.width = function width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n /**\n * Get or set the height of the component based upon the CSS styles.\n * See {@link Component#dimension} for more detailed information.\n *\n * @param {number|string} [num]\n * The height that you want to set postfixed with '%', 'px' or nothing.\n *\n * @param {boolean} [skipListeners]\n * Skip the componentresize event trigger\n *\n * @return {number|string}\n * The width when getting, zero if there is no width. Can be a string\n * postpixed with '%' or 'px'.\n */\n ;\n\n _proto.height = function height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n /**\n * Set both the width and height of the `Component` element at the same time.\n *\n * @param {number|string} width\n * Width to set the `Component`s element to.\n *\n * @param {number|string} height\n * Height to set the `Component`s element to.\n */\n ;\n\n _proto.dimensions = function dimensions(width, height) {\n // Skip componentresize listeners on width for optimization\n this.width(width, true);\n this.height(height);\n }\n /**\n * Get or set width or height of the `Component` element. This is the shared code\n * for the {@link Component#width} and {@link Component#height}.\n *\n * Things to know:\n * - If the width or height in an number this will return the number postfixed with 'px'.\n * - If the width/height is a percent this will return the percent postfixed with '%'\n * - Hidden elements have a width of 0 with `window.getComputedStyle`. This function\n * defaults to the `Component`s `style.width` and falls back to `window.getComputedStyle`.\n * See [this]{@link http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/}\n * for more information\n * - If you want the computed style of the component, use {@link Component#currentWidth}\n * and {@link {Component#currentHeight}\n *\n * @fires Component#componentresize\n *\n * @param {string} widthOrHeight\n 8 'width' or 'height'\n *\n * @param {number|string} [num]\n 8 New dimension\n *\n * @param {boolean} [skipListeners]\n * Skip componentresize event trigger\n *\n * @return {number}\n * The dimension when getting or 0 if unset\n */\n ;\n\n _proto.dimension = function dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n } // Check if using css width/height (% or px) and adjust\n\n\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n } // skipListeners allows us to avoid triggering the resize event when setting both width and height\n\n\n if (!skipListeners) {\n /**\n * Triggered when a component is resized.\n *\n * @event Component#componentresize\n * @type {EventTarget~Event}\n */\n this.trigger('componentresize');\n }\n\n return;\n } // Not setting a value, so getting it\n // Make sure element exists\n\n\n if (!this.el_) {\n return 0;\n } // Get dimension value from style\n\n\n var val = this.el_.style[widthOrHeight];\n var pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n } // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n\n\n return parseInt(this.el_['offset' + toTitleCase$1(widthOrHeight)], 10);\n }\n /**\n * Get the computed width or the height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @param {string} widthOrHeight\n * A string containing 'width' or 'height'. Whichever one you want to get.\n *\n * @return {number}\n * The dimension that gets asked for or 0 if nothing was set\n * for that dimension.\n */\n ;\n\n _proto.currentDimension = function currentDimension(widthOrHeight) {\n var computedWidthOrHeight = 0;\n\n if (widthOrHeight !== 'width' && widthOrHeight !== 'height') {\n throw new Error('currentDimension only accepts width or height value');\n }\n\n computedWidthOrHeight = computedStyle(this.el_, widthOrHeight); // remove 'px' from variable and parse as integer\n\n computedWidthOrHeight = parseFloat(computedWidthOrHeight); // if the computed value is still 0, it's possible that the browser is lying\n // and we want to check the offset values.\n // This code also runs wherever getComputedStyle doesn't exist.\n\n if (computedWidthOrHeight === 0 || isNaN(computedWidthOrHeight)) {\n var rule = \"offset\" + toTitleCase$1(widthOrHeight);\n computedWidthOrHeight = this.el_[rule];\n }\n\n return computedWidthOrHeight;\n }\n /**\n * An object that contains width and height values of the `Component`s\n * computed style. Uses `window.getComputedStyle`.\n *\n * @typedef {Object} Component~DimensionObject\n *\n * @property {number} width\n * The width of the `Component`s computed style.\n *\n * @property {number} height\n * The height of the `Component`s computed style.\n */\n\n /**\n * Get an object that contains computed width and height values of the\n * component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {Component~DimensionObject}\n * The computed dimensions of the component's element.\n */\n ;\n\n _proto.currentDimensions = function currentDimensions() {\n return {\n width: this.currentDimension('width'),\n height: this.currentDimension('height')\n };\n }\n /**\n * Get the computed width of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed width of the component's element.\n */\n ;\n\n _proto.currentWidth = function currentWidth() {\n return this.currentDimension('width');\n }\n /**\n * Get the computed height of the component's element.\n *\n * Uses `window.getComputedStyle`.\n *\n * @return {number}\n * The computed height of the component's element.\n */\n ;\n\n _proto.currentHeight = function currentHeight() {\n return this.currentDimension('height');\n }\n /**\n * Set the focus to this component\n */\n ;\n\n _proto.focus = function focus() {\n this.el_.focus();\n }\n /**\n * Remove the focus from this component\n */\n ;\n\n _proto.blur = function blur() {\n this.el_.blur();\n }\n /**\n * When this Component receives a `keydown` event which it does not process,\n * it passes the event to the Player for handling.\n *\n * @param {EventTarget~Event} event\n * The `keydown` event that caused this function to be called.\n */\n ;\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n if (this.player_) {\n // We only stop propagation here because we want unhandled events to fall\n // back to the browser. Exclude Tab for focus trapping.\n if (!keycode.isEventKey(event, 'Tab')) {\n event.stopPropagation();\n }\n\n this.player_.handleKeyDown(event);\n }\n }\n /**\n * Many components used to have a `handleKeyPress` method, which was poorly\n * named because it listened to a `keydown` event. This method name now\n * delegates to `handleKeyDown`. This means anyone calling `handleKeyPress`\n * will not see their method calls stop working.\n *\n * @param {EventTarget~Event} event\n * The event that caused this function to be called.\n */\n ;\n\n _proto.handleKeyPress = function handleKeyPress(event) {\n this.handleKeyDown(event);\n }\n /**\n * Emit a 'tap' events when touch event support gets detected. This gets used to\n * support toggling the controls through a tap on the video. They get enabled\n * because every sub-component would have extra overhead otherwise.\n *\n * @private\n * @fires Component#tap\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchleave\n * @listens Component#touchcancel\n * @listens Component#touchend\n */\n ;\n\n _proto.emitTapEvents = function emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n var touchStart = 0;\n var firstTouch = null; // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15,\n // so 10 seems like a nice, round number.\n\n var tapMovementThreshold = 10; // The maximum length a touch can be while still being considered a tap\n\n var touchTimeThreshold = 200;\n var couldBeTap;\n this.on('touchstart', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy pageX/pageY from the object\n firstTouch = {\n pageX: event.touches[0].pageX,\n pageY: event.touches[0].pageY\n }; // Record start time so we can detect a tap vs. \"touch and hold\"\n\n touchStart = window$1.performance.now(); // Reset couldBeTap tracking\n\n couldBeTap = true;\n }\n });\n this.on('touchmove', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n var xdiff = event.touches[0].pageX - firstTouch.pageX;\n var ydiff = event.touches[0].pageY - firstTouch.pageY;\n var touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n var noTap = function noTap() {\n couldBeTap = false;\n }; // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n\n\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap); // When the touch ends, measure how long it took and trigger the appropriate\n // event\n\n this.on('touchend', function (event) {\n firstTouch = null; // Proceed only if the touchmove/leave/cancel event didn't happen\n\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n var touchTime = window$1.performance.now() - touchStart; // Make sure the touch was less than the threshold to be considered a tap\n\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n /**\n * Triggered when a `Component` is tapped.\n *\n * @event Component#tap\n * @type {EventTarget~Event}\n */\n\n this.trigger('tap'); // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n /**\n * This function reports user activity whenever touch events happen. This can get\n * turned off by any sub-components that wants touch events to act another way.\n *\n * Report user touch activity when touch events occur. User activity gets used to\n * determine when controls should show/hide. It is simple when it comes to mouse\n * events, because any mouse event should show the controls. So we capture mouse\n * events that bubble up to the player and report activity when that happens.\n * With touch events it isn't as easy as `touchstart` and `touchend` toggle player\n * controls. So touch events can't help us at the player level either.\n *\n * User activity gets checked asynchronously. So what could happen is a tap event\n * on the video turns the controls off. Then the `touchend` event bubbles up to\n * the player. Which, if it reported user activity, would turn the controls right\n * back on. We also don't want to completely block touch events from bubbling up.\n * Furthermore a `touchmove` event and anything other than a tap, should not turn\n * controls back on.\n *\n * @listens Component#touchstart\n * @listens Component#touchmove\n * @listens Component#touchend\n * @listens Component#touchcancel\n */\n ;\n\n _proto.enableTouchActivity = function enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n } // listener for reporting that the user is active\n\n\n var report = bind(this.player(), this.player().reportUserActivity);\n var touchHolding;\n this.on('touchstart', function () {\n report(); // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n\n this.clearInterval(touchHolding); // report at the same interval as activityCheck\n\n touchHolding = this.setInterval(report, 250);\n });\n\n var touchEnd = function touchEnd(event) {\n report(); // stop the interval that maintains activity if the touch is holding\n\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n /**\n * A callback that has no parameters and is bound into `Component`s context.\n *\n * @callback Component~GenericCallback\n * @this Component\n */\n\n /**\n * Creates a function that runs after an `x` millisecond timeout. This function is a\n * wrapper around `window.setTimeout`. There are a few reasons to use this one\n * instead though:\n * 1. It gets cleared via {@link Component#clearTimeout} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will gets turned into a {@link Component~GenericCallback}\n *\n * > Note: You can't use `window.clearTimeout` on the id returned by this function. This\n * will cause its dispose listener not to get cleaned up! Please use\n * {@link Component#clearTimeout} or {@link Component#dispose} instead.\n *\n * @param {Component~GenericCallback} fn\n * The function that will be run after `timeout`.\n *\n * @param {number} timeout\n * Timeout in milliseconds to delay before executing the specified function.\n *\n * @return {number}\n * Returns a timeout ID that gets used to identify the timeout. It can also\n * get used in {@link Component#clearTimeout} to clear the timeout that\n * was set.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout}\n */\n ;\n\n _proto.setTimeout = function setTimeout(fn, timeout) {\n var _this3 = this;\n\n // declare as variables so they are properly available in timeout function\n // eslint-disable-next-line\n var timeoutId;\n fn = bind(this, fn);\n this.clearTimersOnDispose_();\n timeoutId = window$1.setTimeout(function () {\n if (_this3.setTimeoutIds_.has(timeoutId)) {\n _this3.setTimeoutIds_[\"delete\"](timeoutId);\n }\n\n fn();\n }, timeout);\n this.setTimeoutIds_.add(timeoutId);\n return timeoutId;\n }\n /**\n * Clears a timeout that gets created via `window.setTimeout` or\n * {@link Component#setTimeout}. If you set a timeout via {@link Component#setTimeout}\n * use this function instead of `window.clearTimout`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} timeoutId\n * The id of the timeout to clear. The return value of\n * {@link Component#setTimeout} or `window.setTimeout`.\n *\n * @return {number}\n * Returns the timeout id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearTimeout}\n */\n ;\n\n _proto.clearTimeout = function clearTimeout(timeoutId) {\n if (this.setTimeoutIds_.has(timeoutId)) {\n this.setTimeoutIds_[\"delete\"](timeoutId);\n window$1.clearTimeout(timeoutId);\n }\n\n return timeoutId;\n }\n /**\n * Creates a function that gets run every `x` milliseconds. This function is a wrapper\n * around `window.setInterval`. There are a few reasons to use this one instead though.\n * 1. It gets cleared via {@link Component#clearInterval} when\n * {@link Component#dispose} gets called.\n * 2. The function callback will be a {@link Component~GenericCallback}\n *\n * @param {Component~GenericCallback} fn\n * The function to run every `x` seconds.\n *\n * @param {number} interval\n * Execute the specified function every `x` milliseconds.\n *\n * @return {number}\n * Returns an id that can be used to identify the interval. It can also be be used in\n * {@link Component#clearInterval} to clear the interval.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setInterval}\n */\n ;\n\n _proto.setInterval = function setInterval(fn, interval) {\n fn = bind(this, fn);\n this.clearTimersOnDispose_();\n var intervalId = window$1.setInterval(fn, interval);\n this.setIntervalIds_.add(intervalId);\n return intervalId;\n }\n /**\n * Clears an interval that gets created via `window.setInterval` or\n * {@link Component#setInterval}. If you set an inteval via {@link Component#setInterval}\n * use this function instead of `window.clearInterval`. If you don't your dispose\n * listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} intervalId\n * The id of the interval to clear. The return value of\n * {@link Component#setInterval} or `window.setInterval`.\n *\n * @return {number}\n * Returns the interval id that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/clearInterval}\n */\n ;\n\n _proto.clearInterval = function clearInterval(intervalId) {\n if (this.setIntervalIds_.has(intervalId)) {\n this.setIntervalIds_[\"delete\"](intervalId);\n window$1.clearInterval(intervalId);\n }\n\n return intervalId;\n }\n /**\n * Queues up a callback to be passed to requestAnimationFrame (rAF), but\n * with a few extra bonuses:\n *\n * - Supports browsers that do not support rAF by falling back to\n * {@link Component#setTimeout}.\n *\n * - The callback is turned into a {@link Component~GenericCallback} (i.e.\n * bound to the component).\n *\n * - Automatic cancellation of the rAF callback is handled if the component\n * is disposed before it is called.\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n *\n * @return {number}\n * Returns an rAF ID that gets used to identify the timeout. It can\n * also be used in {@link Component#cancelAnimationFrame} to cancel\n * the animation frame callback.\n *\n * @listens Component#dispose\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame}\n */\n ;\n\n _proto.requestAnimationFrame = function requestAnimationFrame(fn) {\n var _this4 = this;\n\n // Fall back to using a timer.\n if (!this.supportsRaf_) {\n return this.setTimeout(fn, 1000 / 60);\n }\n\n this.clearTimersOnDispose_(); // declare as variables so they are properly available in rAF function\n // eslint-disable-next-line\n\n var id;\n fn = bind(this, fn);\n id = window$1.requestAnimationFrame(function () {\n if (_this4.rafIds_.has(id)) {\n _this4.rafIds_[\"delete\"](id);\n }\n\n fn();\n });\n this.rafIds_.add(id);\n return id;\n }\n /**\n * Request an animation frame, but only one named animation\n * frame will be queued. Another will never be added until\n * the previous one finishes.\n *\n * @param {string} name\n * The name to give this requestAnimationFrame\n *\n * @param {Component~GenericCallback} fn\n * A function that will be bound to this component and executed just\n * before the browser's next repaint.\n */\n ;\n\n _proto.requestNamedAnimationFrame = function requestNamedAnimationFrame(name, fn) {\n var _this5 = this;\n\n if (this.namedRafs_.has(name)) {\n return;\n }\n\n this.clearTimersOnDispose_();\n fn = bind(this, fn);\n var id = this.requestAnimationFrame(function () {\n fn();\n\n if (_this5.namedRafs_.has(name)) {\n _this5.namedRafs_[\"delete\"](name);\n }\n });\n this.namedRafs_.set(name, id);\n return name;\n }\n /**\n * Cancels a current named animation frame if it exists.\n *\n * @param {string} name\n * The name of the requestAnimationFrame to cancel.\n */\n ;\n\n _proto.cancelNamedAnimationFrame = function cancelNamedAnimationFrame(name) {\n if (!this.namedRafs_.has(name)) {\n return;\n }\n\n this.cancelAnimationFrame(this.namedRafs_.get(name));\n this.namedRafs_[\"delete\"](name);\n }\n /**\n * Cancels a queued callback passed to {@link Component#requestAnimationFrame}\n * (rAF).\n *\n * If you queue an rAF callback via {@link Component#requestAnimationFrame},\n * use this function instead of `window.cancelAnimationFrame`. If you don't,\n * your dispose listener will not get cleaned up until {@link Component#dispose}!\n *\n * @param {number} id\n * The rAF ID to clear. The return value of {@link Component#requestAnimationFrame}.\n *\n * @return {number}\n * Returns the rAF ID that was cleared.\n *\n * @see [Similar to]{@link https://developer.mozilla.org/en-US/docs/Web/API/window/cancelAnimationFrame}\n */\n ;\n\n _proto.cancelAnimationFrame = function cancelAnimationFrame(id) {\n // Fall back to using a timer.\n if (!this.supportsRaf_) {\n return this.clearTimeout(id);\n }\n\n if (this.rafIds_.has(id)) {\n this.rafIds_[\"delete\"](id);\n window$1.cancelAnimationFrame(id);\n }\n\n return id;\n }\n /**\n * A function to setup `requestAnimationFrame`, `setTimeout`,\n * and `setInterval`, clearing on dispose.\n *\n * > Previously each timer added and removed dispose listeners on it's own.\n * For better performance it was decided to batch them all, and use `Set`s\n * to track outstanding timer ids.\n *\n * @private\n */\n ;\n\n _proto.clearTimersOnDispose_ = function clearTimersOnDispose_() {\n var _this6 = this;\n\n if (this.clearingTimersOnDispose_) {\n return;\n }\n\n this.clearingTimersOnDispose_ = true;\n this.one('dispose', function () {\n [['namedRafs_', 'cancelNamedAnimationFrame'], ['rafIds_', 'cancelAnimationFrame'], ['setTimeoutIds_', 'clearTimeout'], ['setIntervalIds_', 'clearInterval']].forEach(function (_ref) {\n var idName = _ref[0],\n cancelName = _ref[1];\n\n // for a `Set` key will actually be the value again\n // so forEach((val, val) =>` but for maps we want to use\n // the key.\n _this6[idName].forEach(function (val, key) {\n return _this6[cancelName](key);\n });\n });\n _this6.clearingTimersOnDispose_ = false;\n });\n }\n /**\n * Register a `Component` with `videojs` given the name and the component.\n *\n * > NOTE: {@link Tech}s should not be registered as a `Component`. {@link Tech}s\n * should be registered using {@link Tech.registerTech} or\n * {@link videojs:videojs.registerTech}.\n *\n * > NOTE: This function can also be seen on videojs as\n * {@link videojs:videojs.registerComponent}.\n *\n * @param {string} name\n * The name of the `Component` to register.\n *\n * @param {Component} ComponentToRegister\n * The `Component` class to register.\n *\n * @return {Component}\n * The `Component` that was registered.\n */\n ;\n\n Component.registerComponent = function registerComponent(name, ComponentToRegister) {\n if (typeof name !== 'string' || !name) {\n throw new Error(\"Illegal component name, \\\"\" + name + \"\\\"; must be a non-empty string.\");\n }\n\n var Tech = Component.getComponent('Tech'); // We need to make sure this check is only done if Tech has been registered.\n\n var isTech = Tech && Tech.isTech(ComponentToRegister);\n var isComp = Component === ComponentToRegister || Component.prototype.isPrototypeOf(ComponentToRegister.prototype);\n\n if (isTech || !isComp) {\n var reason;\n\n if (isTech) {\n reason = 'techs must be registered using Tech.registerTech()';\n } else {\n reason = 'must be a Component subclass';\n }\n\n throw new Error(\"Illegal component, \\\"\" + name + \"\\\"; \" + reason + \".\");\n }\n\n name = toTitleCase$1(name);\n\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n var Player = Component.getComponent('Player');\n\n if (name === 'Player' && Player && Player.players) {\n var players = Player.players;\n var playerNames = Object.keys(players); // If we have players that were disposed, then their name will still be\n // in Players.players. So, we must loop through and verify that the value\n // for each item is not null. This allows registration of the Player component\n // after all players have been disposed or before any were created.\n\n if (players && playerNames.length > 0 && playerNames.map(function (pname) {\n return players[pname];\n }).every(Boolean)) {\n throw new Error('Can not register Player component after player has been created.');\n }\n }\n\n Component.components_[name] = ComponentToRegister;\n Component.components_[toLowerCase(name)] = ComponentToRegister;\n return ComponentToRegister;\n }\n /**\n * Get a `Component` based on the name it was registered with.\n *\n * @param {string} name\n * The Name of the component to get.\n *\n * @return {Component}\n * The `Component` that got registered under the given name.\n */\n ;\n\n Component.getComponent = function getComponent(name) {\n if (!name || !Component.components_) {\n return;\n }\n\n return Component.components_[name];\n };\n\n return Component;\n}();\n/**\n * Whether or not this component supports `requestAnimationFrame`.\n *\n * This is exposed primarily for testing purposes.\n *\n * @private\n * @type {Boolean}\n */\n\n\nComponent$1.prototype.supportsRaf_ = typeof window$1.requestAnimationFrame === 'function' && typeof window$1.cancelAnimationFrame === 'function';\nComponent$1.registerComponent('Component', Component$1);\n\n/**\n * @file time-ranges.js\n * @module time-ranges\n */\n/**\n * Returns the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @typedef {Function} TimeRangeIndex\n *\n * @param {number} [index=0]\n * The range number to return the time for.\n *\n * @return {number}\n * The time offset at the specified index.\n *\n * @deprecated The index argument must be provided.\n * In the future, leaving it out will throw an error.\n */\n\n/**\n * An object that contains ranges of time.\n *\n * @typedef {Object} TimeRange\n *\n * @property {number} length\n * The number of time ranges represented by this object.\n *\n * @property {module:time-ranges~TimeRangeIndex} start\n * Returns the time offset at which a specified time range begins.\n *\n * @property {module:time-ranges~TimeRangeIndex} end\n * Returns the time offset at which a specified time range ends.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges\n */\n\n/**\n * Check if any of the time ranges are over the maximum index.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {number} index\n * The index to check\n *\n * @param {number} maxIndex\n * The maximum possible index\n *\n * @throws {Error} if the timeRanges provided are over the maxIndex\n */\n\nfunction rangeCheck(fnName, index, maxIndex) {\n if (typeof index !== 'number' || index < 0 || index > maxIndex) {\n throw new Error(\"Failed to execute '\" + fnName + \"' on 'TimeRanges': The index provided (\" + index + \") is non-numeric or out of bounds (0-\" + maxIndex + \").\");\n }\n}\n/**\n * Get the time for the specified index at the start or end\n * of a TimeRange object.\n *\n * @private\n * @param {string} fnName\n * The function name to use for logging\n *\n * @param {string} valueIndex\n * The property that should be used to get the time. should be\n * 'start' or 'end'\n *\n * @param {Array} ranges\n * An array of time ranges\n *\n * @param {Array} [rangeIndex=0]\n * The index to start the search at\n *\n * @return {number}\n * The time that offset at the specified index.\n *\n * @deprecated rangeIndex must be set to a value, in the future this will throw an error.\n * @throws {Error} if rangeIndex is more than the length of ranges\n */\n\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n/**\n * Create a time range object given ranges of time.\n *\n * @private\n * @param {Array} [ranges]\n * An array of time ranges.\n */\n\n\nfunction createTimeRangesObj(ranges) {\n var timeRangesObj;\n\n if (ranges === undefined || ranges.length === 0) {\n timeRangesObj = {\n length: 0,\n start: function start() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function end() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n } else {\n timeRangesObj = {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n }\n\n if (window$1.Symbol && window$1.Symbol.iterator) {\n timeRangesObj[window$1.Symbol.iterator] = function () {\n return (ranges || []).values();\n };\n }\n\n return timeRangesObj;\n}\n/**\n * Create a `TimeRange` object which mimics an\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/TimeRanges|HTML5 TimeRanges instance}.\n *\n * @param {number|Array[]} start\n * The start of a single range (a number) or an array of ranges (an\n * array of arrays of two numbers each).\n *\n * @param {number} end\n * The end of a single range. Cannot be used with the array form of\n * the `start` argument.\n */\n\n\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n\n return createTimeRangesObj([[start, end]]);\n}\n\n/**\n * @file buffer.js\n * @module buffer\n */\n/**\n * Compute the percentage of the media that has been buffered.\n *\n * @param {TimeRange} buffered\n * The current `TimeRange` object representing buffered time ranges\n *\n * @param {number} duration\n * Total duration of the media\n *\n * @return {number}\n * Percent buffered of the total duration in decimal form.\n */\n\nfunction bufferedPercent(buffered, duration) {\n var bufferedDuration = 0;\n var start;\n var end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRanges(0, 0);\n }\n\n for (var i = 0; i < buffered.length; i++) {\n start = buffered.start(i);\n end = buffered.end(i); // buffered end can be bigger than duration by a very small fraction\n\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n\n/**\n * @file media-error.js\n */\n/**\n * A Custom `MediaError` class which mimics the standard HTML5 `MediaError` class.\n *\n * @param {number|string|Object|MediaError} value\n * This can be of multiple types:\n * - number: should be a standard error code\n * - string: an error message (the code will be 0)\n * - Object: arbitrary properties\n * - `MediaError` (native): used to populate a video.js `MediaError` object\n * - `MediaError` (video.js): will return itself if it's already a\n * video.js `MediaError` object.\n *\n * @see [MediaError Spec]{@link https://dev.w3.org/html5/spec-author-view/video.html#mediaerror}\n * @see [Encrypted MediaError Spec]{@link https://www.w3.org/TR/2013/WD-encrypted-media-20130510/#error-codes}\n *\n * @class MediaError\n */\n\nfunction MediaError(value) {\n // Allow redundant calls to this constructor to avoid having `instanceof`\n // checks peppered around the code.\n if (value instanceof MediaError) {\n return value;\n }\n\n if (typeof value === 'number') {\n this.code = value;\n } else if (typeof value === 'string') {\n // default code is zero, so this is a custom error\n this.message = value;\n } else if (isObject(value)) {\n // We assign the `code` property manually because native `MediaError` objects\n // do not expose it as an own/enumerable property of the object.\n if (typeof value.code === 'number') {\n this.code = value.code;\n }\n\n assign(this, value);\n }\n\n if (!this.message) {\n this.message = MediaError.defaultMessages[this.code] || '';\n }\n}\n/**\n * The error code that refers two one of the defined `MediaError` types\n *\n * @type {Number}\n */\n\n\nMediaError.prototype.code = 0;\n/**\n * An optional message that to show with the error. Message is not part of the HTML5\n * video spec but allows for more informative custom errors.\n *\n * @type {String}\n */\n\nMediaError.prototype.message = '';\n/**\n * An optional status code that can be set by plugins to allow even more detail about\n * the error. For example a plugin might provide a specific HTTP status code and an\n * error message for that code. Then when the plugin gets that error this class will\n * know how to display an error message for it. This allows a custom message to show\n * up on the `Player` error overlay.\n *\n * @type {Array}\n */\n\nMediaError.prototype.status = null;\n/**\n * Errors indexed by the W3C standard. The order **CANNOT CHANGE**! See the\n * specification listed under {@link MediaError} for more information.\n *\n * @enum {array}\n * @readonly\n * @property {string} 0 - MEDIA_ERR_CUSTOM\n * @property {string} 1 - MEDIA_ERR_ABORTED\n * @property {string} 2 - MEDIA_ERR_NETWORK\n * @property {string} 3 - MEDIA_ERR_DECODE\n * @property {string} 4 - MEDIA_ERR_SRC_NOT_SUPPORTED\n * @property {string} 5 - MEDIA_ERR_ENCRYPTED\n */\n\nMediaError.errorTypes = ['MEDIA_ERR_CUSTOM', 'MEDIA_ERR_ABORTED', 'MEDIA_ERR_NETWORK', 'MEDIA_ERR_DECODE', 'MEDIA_ERR_SRC_NOT_SUPPORTED', 'MEDIA_ERR_ENCRYPTED'];\n/**\n * The default `MediaError` messages based on the {@link MediaError.errorTypes}.\n *\n * @type {Array}\n * @constant\n */\n\nMediaError.defaultMessages = {\n 1: 'You aborted the media playback',\n 2: 'A network error caused the media download to fail part-way.',\n 3: 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.',\n 4: 'The media could not be loaded, either because the server or network failed or because the format is not supported.',\n 5: 'The media is encrypted and we do not have the keys to decrypt it.'\n}; // Add types as properties on MediaError\n// e.g. MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\n\nfor (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {\n MediaError[MediaError.errorTypes[errNum]] = errNum; // values should be accessible on both the class and instance\n\n MediaError.prototype[MediaError.errorTypes[errNum]] = errNum;\n} // jsdocs for instance/static members added above\n\n/**\n * Returns whether an object is `Promise`-like (i.e. has a `then` method).\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n *\n * @return {boolean}\n * Whether or not the object is `Promise`-like.\n */\nfunction isPromise(value) {\n return value !== undefined && value !== null && typeof value.then === 'function';\n}\n/**\n * Silence a Promise-like object.\n *\n * This is useful for avoiding non-harmful, but potentially confusing \"uncaught\n * play promise\" rejection error messages.\n *\n * @param {Object} value\n * An object that may or may not be `Promise`-like.\n */\n\nfunction silencePromise(value) {\n if (isPromise(value)) {\n value.then(null, function (e) {});\n }\n}\n\n/**\n * @file text-track-list-converter.js Utilities for capturing text track state and\n * re-creating tracks based on a capture.\n *\n * @module text-track-list-converter\n */\n\n/**\n * Examine a single {@link TextTrack} and return a JSON-compatible javascript object that\n * represents the {@link TextTrack}'s state.\n *\n * @param {TextTrack} track\n * The text track to query.\n *\n * @return {Object}\n * A serializable javascript representation of the TextTrack.\n * @private\n */\nvar trackToJson_ = function trackToJson_(track) {\n var ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce(function (acc, prop, i) {\n if (track[prop]) {\n acc[prop] = track[prop];\n }\n\n return acc;\n }, {\n cues: track.cues && Array.prototype.map.call(track.cues, function (cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n })\n });\n return ret;\n};\n/**\n * Examine a {@link Tech} and return a JSON-compatible javascript array that represents the\n * state of all {@link TextTrack}s currently configured. The return array is compatible with\n * {@link text-track-list-converter:jsonToTextTracks}.\n *\n * @param {Tech} tech\n * The tech object to query\n *\n * @return {Array}\n * A serializable javascript representation of the {@link Tech}s\n * {@link TextTrackList}.\n */\n\n\nvar textTracksToJson = function textTracksToJson(tech) {\n var trackEls = tech.$$('track');\n var trackObjs = Array.prototype.map.call(trackEls, function (t) {\n return t.track;\n });\n var tracks = Array.prototype.map.call(trackEls, function (trackEl) {\n var json = trackToJson_(trackEl.track);\n\n if (trackEl.src) {\n json.src = trackEl.src;\n }\n\n return json;\n });\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n/**\n * Create a set of remote {@link TextTrack}s on a {@link Tech} based on an array of javascript\n * object {@link TextTrack} representations.\n *\n * @param {Array} json\n * An array of `TextTrack` representation objects, like those that would be\n * produced by `textTracksToJson`.\n *\n * @param {Tech} tech\n * The `Tech` to create the `TextTrack`s on.\n */\n\n\nvar jsonToTextTracks = function jsonToTextTracks(json, tech) {\n json.forEach(function (track) {\n var addedTrack = tech.addRemoteTextTrack(track).track;\n\n if (!track.src && track.cues) {\n track.cues.forEach(function (cue) {\n return addedTrack.addCue(cue);\n });\n }\n });\n return tech.textTracks();\n};\n\nvar textTrackConverter = {\n textTracksToJson: textTracksToJson,\n jsonToTextTracks: jsonToTextTracks,\n trackToJson_: trackToJson_\n};\n\nvar MODAL_CLASS_NAME = 'vjs-modal-dialog';\n/**\n * The `ModalDialog` displays over the video and its controls, which blocks\n * interaction with the player until it is closed.\n *\n * Modal dialogs include a \"Close\" button and will close when that button\n * is activated - or when ESC is pressed anywhere.\n *\n * @extends Component\n */\n\nvar ModalDialog = /*#__PURE__*/function (_Component) {\n _inheritsLoose(ModalDialog, _Component);\n\n /**\n * Create an instance of this class.\n *\n * @param {Player} player\n * The `Player` that this class should be attached to.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Mixed} [options.content=undefined]\n * Provide customized content for this modal.\n *\n * @param {string} [options.description]\n * A text description for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.fillAlways=false]\n * Normally, modals are automatically filled only the first time\n * they open. This tells the modal to refresh its content\n * every time it opens.\n *\n * @param {string} [options.label]\n * A text label for the modal, primarily for accessibility.\n *\n * @param {boolean} [options.pauseOnOpen=true]\n * If `true`, playback will will be paused if playing when\n * the modal opens, and resumed when it closes.\n *\n * @param {boolean} [options.temporary=true]\n * If `true`, the modal can only be opened once; it will be\n * disposed as soon as it's closed.\n *\n * @param {boolean} [options.uncloseable=false]\n * If `true`, the user will not be able to close the modal\n * through the UI in the normal ways. Programmatic closing is\n * still possible.\n */\n function ModalDialog(player, options) {\n var _this;\n\n _this = _Component.call(this, player, options) || this;\n\n _this.handleKeyDown_ = function (e) {\n return _this.handleKeyDown(e);\n };\n\n _this.close_ = function (e) {\n return _this.close(e);\n };\n\n _this.opened_ = _this.hasBeenOpened_ = _this.hasBeenFilled_ = false;\n\n _this.closeable(!_this.options_.uncloseable);\n\n _this.content(_this.options_.content); // Make sure the contentEl is defined AFTER any children are initialized\n // because we only want the contents of the modal in the contentEl\n // (not the UI elements like the close button).\n\n\n _this.contentEl_ = createEl('div', {\n className: MODAL_CLASS_NAME + \"-content\"\n }, {\n role: 'document'\n });\n _this.descEl_ = createEl('p', {\n className: MODAL_CLASS_NAME + \"-description vjs-control-text\",\n id: _this.el().getAttribute('aria-describedby')\n });\n textContent(_this.descEl_, _this.description());\n\n _this.el_.appendChild(_this.descEl_);\n\n _this.el_.appendChild(_this.contentEl_);\n\n return _this;\n }\n /**\n * Create the `ModalDialog`'s DOM element\n *\n * @return {Element}\n * The DOM element that gets created.\n */\n\n\n var _proto = ModalDialog.prototype;\n\n _proto.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: this.buildCSSClass(),\n tabIndex: -1\n }, {\n 'aria-describedby': this.id() + \"_description\",\n 'aria-hidden': 'true',\n 'aria-label': this.label(),\n 'role': 'dialog'\n });\n };\n\n _proto.dispose = function dispose() {\n this.contentEl_ = null;\n this.descEl_ = null;\n this.previouslyActiveEl_ = null;\n\n _Component.prototype.dispose.call(this);\n }\n /**\n * Builds the default DOM `className`.\n *\n * @return {string}\n * The DOM `className` for this object.\n */\n ;\n\n _proto.buildCSSClass = function buildCSSClass() {\n return MODAL_CLASS_NAME + \" vjs-hidden \" + _Component.prototype.buildCSSClass.call(this);\n }\n /**\n * Returns the label string for this modal. Primarily used for accessibility.\n *\n * @return {string}\n * the localized or raw label of this modal.\n */\n ;\n\n _proto.label = function label() {\n return this.localize(this.options_.label || 'Modal Window');\n }\n /**\n * Returns the description string for this modal. Primarily used for\n * accessibility.\n *\n * @return {string}\n * The localized or raw description of this modal.\n */\n ;\n\n _proto.description = function description() {\n var desc = this.options_.description || this.localize('This is a modal window.'); // Append a universal closeability message if the modal is closeable.\n\n if (this.closeable()) {\n desc += ' ' + this.localize('This modal can be closed by pressing the Escape key or activating the close button.');\n }\n\n return desc;\n }\n /**\n * Opens the modal.\n *\n * @fires ModalDialog#beforemodalopen\n * @fires ModalDialog#modalopen\n */\n ;\n\n _proto.open = function open() {\n if (!this.opened_) {\n var player = this.player();\n /**\n * Fired just before a `ModalDialog` is opened.\n *\n * @event ModalDialog#beforemodalopen\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalopen');\n this.opened_ = true; // Fill content if the modal has never opened before and\n // never been filled.\n\n if (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) {\n this.fill();\n } // If the player was playing, pause it and take note of its previously\n // playing state.\n\n\n this.wasPlaying_ = !player.paused();\n\n if (this.options_.pauseOnOpen && this.wasPlaying_) {\n player.pause();\n }\n\n this.on('keydown', this.handleKeyDown_); // Hide controls and note if they were enabled.\n\n this.hadControls_ = player.controls();\n player.controls(false);\n this.show();\n this.conditionalFocus_();\n this.el().setAttribute('aria-hidden', 'false');\n /**\n * Fired just after a `ModalDialog` is opened.\n *\n * @event ModalDialog#modalopen\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalopen');\n this.hasBeenOpened_ = true;\n }\n }\n /**\n * If the `ModalDialog` is currently open or closed.\n *\n * @param {boolean} [value]\n * If given, it will open (`true`) or close (`false`) the modal.\n *\n * @return {boolean}\n * the current open state of the modaldialog\n */\n ;\n\n _proto.opened = function opened(value) {\n if (typeof value === 'boolean') {\n this[value ? 'open' : 'close']();\n }\n\n return this.opened_;\n }\n /**\n * Closes the modal, does nothing if the `ModalDialog` is\n * not open.\n *\n * @fires ModalDialog#beforemodalclose\n * @fires ModalDialog#modalclose\n */\n ;\n\n _proto.close = function close() {\n if (!this.opened_) {\n return;\n }\n\n var player = this.player();\n /**\n * Fired just before a `ModalDialog` is closed.\n *\n * @event ModalDialog#beforemodalclose\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalclose');\n this.opened_ = false;\n\n if (this.wasPlaying_ && this.options_.pauseOnOpen) {\n player.play();\n }\n\n this.off('keydown', this.handleKeyDown_);\n\n if (this.hadControls_) {\n player.controls(true);\n }\n\n this.hide();\n this.el().setAttribute('aria-hidden', 'true');\n /**\n * Fired just after a `ModalDialog` is closed.\n *\n * @event ModalDialog#modalclose\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalclose');\n this.conditionalBlur_();\n\n if (this.options_.temporary) {\n this.dispose();\n }\n }\n /**\n * Check to see if the `ModalDialog` is closeable via the UI.\n *\n * @param {boolean} [value]\n * If given as a boolean, it will set the `closeable` option.\n *\n * @return {boolean}\n * Returns the final value of the closable option.\n */\n ;\n\n _proto.closeable = function closeable(value) {\n if (typeof value === 'boolean') {\n var closeable = this.closeable_ = !!value;\n var close = this.getChild('closeButton'); // If this is being made closeable and has no close button, add one.\n\n if (closeable && !close) {\n // The close button should be a child of the modal - not its\n // content element, so temporarily change the content element.\n var temp = this.contentEl_;\n this.contentEl_ = this.el_;\n close = this.addChild('closeButton', {\n controlText: 'Close Modal Dialog'\n });\n this.contentEl_ = temp;\n this.on(close, 'close', this.close_);\n } // If this is being made uncloseable and has a close button, remove it.\n\n\n if (!closeable && close) {\n this.off(close, 'close', this.close_);\n this.removeChild(close);\n close.dispose();\n }\n }\n\n return this.closeable_;\n }\n /**\n * Fill the modal's content element with the modal's \"content\" option.\n * The content element will be emptied before this change takes place.\n */\n ;\n\n _proto.fill = function fill() {\n this.fillWith(this.content());\n }\n /**\n * Fill the modal's content element with arbitrary content.\n * The content element will be emptied before this change takes place.\n *\n * @fires ModalDialog#beforemodalfill\n * @fires ModalDialog#modalfill\n *\n * @param {Mixed} [content]\n * The same rules apply to this as apply to the `content` option.\n */\n ;\n\n _proto.fillWith = function fillWith(content) {\n var contentEl = this.contentEl();\n var parentEl = contentEl.parentNode;\n var nextSiblingEl = contentEl.nextSibling;\n /**\n * Fired just before a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#beforemodalfill\n * @type {EventTarget~Event}\n */\n\n this.trigger('beforemodalfill');\n this.hasBeenFilled_ = true; // Detach the content element from the DOM before performing\n // manipulation to avoid modifying the live DOM multiple times.\n\n parentEl.removeChild(contentEl);\n this.empty();\n insertContent(contentEl, content);\n /**\n * Fired just after a `ModalDialog` is filled with content.\n *\n * @event ModalDialog#modalfill\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalfill'); // Re-inject the re-filled content element.\n\n if (nextSiblingEl) {\n parentEl.insertBefore(contentEl, nextSiblingEl);\n } else {\n parentEl.appendChild(contentEl);\n } // make sure that the close button is last in the dialog DOM\n\n\n var closeButton = this.getChild('closeButton');\n\n if (closeButton) {\n parentEl.appendChild(closeButton.el_);\n }\n }\n /**\n * Empties the content element. This happens anytime the modal is filled.\n *\n * @fires ModalDialog#beforemodalempty\n * @fires ModalDialog#modalempty\n */\n ;\n\n _proto.empty = function empty() {\n /**\n * Fired just before a `ModalDialog` is emptied.\n *\n * @event ModalDialog#beforemodalempty\n * @type {EventTarget~Event}\n */\n this.trigger('beforemodalempty');\n emptyEl(this.contentEl());\n /**\n * Fired just after a `ModalDialog` is emptied.\n *\n * @event ModalDialog#modalempty\n * @type {EventTarget~Event}\n */\n\n this.trigger('modalempty');\n }\n /**\n * Gets or sets the modal content, which gets normalized before being\n * rendered into the DOM.\n *\n * This does not update the DOM or fill the modal, but it is called during\n * that process.\n *\n * @param {Mixed} [value]\n * If defined, sets the internal content value to be used on the\n * next call(s) to `fill`. This value is normalized before being\n * inserted. To \"clear\" the internal content value, pass `null`.\n *\n * @return {Mixed}\n * The current content of the modal dialog\n */\n ;\n\n _proto.content = function content(value) {\n if (typeof value !== 'undefined') {\n this.content_ = value;\n }\n\n return this.content_;\n }\n /**\n * conditionally focus the modal dialog if focus was previously on the player.\n *\n * @private\n */\n ;\n\n _proto.conditionalFocus_ = function conditionalFocus_() {\n var activeEl = document.activeElement;\n var playerEl = this.player_.el_;\n this.previouslyActiveEl_ = null;\n\n if (playerEl.contains(activeEl) || playerEl === activeEl) {\n this.previouslyActiveEl_ = activeEl;\n this.focus();\n }\n }\n /**\n * conditionally blur the element and refocus the last focused element\n *\n * @private\n */\n ;\n\n _proto.conditionalBlur_ = function conditionalBlur_() {\n if (this.previouslyActiveEl_) {\n this.previouslyActiveEl_.focus();\n this.previouslyActiveEl_ = null;\n }\n }\n /**\n * Keydown handler. Attached when modal is focused.\n *\n * @listens keydown\n */\n ;\n\n _proto.handleKeyDown = function handleKeyDown(event) {\n // Do not allow keydowns to reach out of the modal dialog.\n event.stopPropagation();\n\n if (keycode.isEventKey(event, 'Escape') && this.closeable()) {\n event.preventDefault();\n this.close();\n return;\n } // exit early if it isn't a tab key\n\n\n if (!keycode.isEventKey(event, 'Tab')) {\n return;\n }\n\n var focusableEls = this.focusableEls_();\n var activeEl = this.el_.querySelector(':focus');\n var focusIndex;\n\n for (var i = 0; i < focusableEls.length; i++) {\n if (activeEl === focusableEls[i]) {\n focusIndex = i;\n break;\n }\n }\n\n if (document.activeElement === this.el_) {\n focusIndex = 0;\n }\n\n if (event.shiftKey && focusIndex === 0) {\n focusableEls[focusableEls.length - 1].focus();\n event.preventDefault();\n } else if (!event.shiftKey && focusIndex === focusableEls.length - 1) {\n focusableEls[0].focus();\n event.preventDefault();\n }\n }\n /**\n * get all focusable elements\n *\n * @private\n */\n ;\n\n _proto.focusableEls_ = function focusableEls_() {\n var allChildren = this.el_.querySelectorAll('*');\n return Array.prototype.filter.call(allChildren, function (child) {\n return (child instanceof window$1.HTMLAnchorElement || child instanceof window$1.HTMLAreaElement) && child.hasAttribute('href') || (child instanceof window$1.HTMLInputElement || child instanceof window$1.HTMLSelectElement || child instanceof window$1.HTMLTextAreaElement || child instanceof window$1.HTMLButtonElement) && !child.hasAttribute('disabled') || child instanceof window$1.HTMLIFrameElement || child instanceof window$1.HTMLObjectElement || child instanceof window$1.HTMLEmbedElement || child.hasAttribute('tabindex') && child.getAttribute('tabindex') !== -1 || child.hasAttribute('contenteditable');\n });\n };\n\n return ModalDialog;\n}(Component$1);\n/**\n * Default options for `ModalDialog` default options.\n *\n * @type {Object}\n * @private\n */\n\n\nModalDialog.prototype.options_ = {\n pauseOnOpen: true,\n temporary: true\n};\nComponent$1.registerComponent('ModalDialog', ModalDialog);\n\n/**\n * Common functionaliy between {@link TextTrackList}, {@link AudioTrackList}, and\n * {@link VideoTrackList}\n *\n * @extends EventTarget\n */\n\nvar TrackList = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(TrackList, _EventTarget);\n\n /**\n * Create an instance of this class\n *\n * @param {Track[]} tracks\n * A list of tracks to initialize the list with.\n *\n * @abstract\n */\n function TrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n _this = _EventTarget.call(this) || this;\n _this.tracks_ = [];\n /**\n * @memberof TrackList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'length', {\n get: function get() {\n return this.tracks_.length;\n }\n });\n\n for (var i = 0; i < tracks.length; i++) {\n _this.addTrack(tracks[i]);\n }\n\n return _this;\n }\n /**\n * Add a {@link Track} to the `TrackList`\n *\n * @param {Track} track\n * The audio, video, or text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = TrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n var index = this.tracks_.length;\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.tracks_[index];\n }\n });\n } // Do not add duplicate tracks\n\n\n if (this.tracks_.indexOf(track) === -1) {\n this.tracks_.push(track);\n /**\n * Triggered when a track is added to a track list.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n\n this.trigger({\n track: track,\n type: 'addtrack',\n target: this\n });\n }\n /**\n * Triggered when a track label is changed.\n *\n * @event TrackList#addtrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was added.\n */\n\n\n track.labelchange_ = function () {\n _this2.trigger({\n track: track,\n type: 'labelchange',\n target: _this2\n });\n };\n\n if (isEvented(track)) {\n track.addEventListener('labelchange', track.labelchange_);\n }\n }\n /**\n * Remove a {@link Track} from the `TrackList`\n *\n * @param {Track} rtrack\n * The audio, video, or text track to remove from the list.\n *\n * @fires TrackList#removetrack\n */\n ;\n\n _proto.removeTrack = function removeTrack(rtrack) {\n var track;\n\n for (var i = 0, l = this.length; i < l; i++) {\n if (this[i] === rtrack) {\n track = this[i];\n\n if (track.off) {\n track.off();\n }\n\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n if (!track) {\n return;\n }\n /**\n * Triggered when a track is removed from track list.\n *\n * @event TrackList#removetrack\n * @type {EventTarget~Event}\n * @property {Track} track\n * A reference to track that was removed.\n */\n\n\n this.trigger({\n track: track,\n type: 'removetrack',\n target: this\n });\n }\n /**\n * Get a Track from the TrackList by a tracks id\n *\n * @param {string} id - the id of the track to get\n * @method getTrackById\n * @return {Track}\n * @private\n */\n ;\n\n _proto.getTrackById = function getTrackById(id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var track = this[i];\n\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n };\n\n return TrackList;\n}(EventTarget$2);\n/**\n * Triggered when a different track is selected/enabled.\n *\n * @event TrackList#change\n * @type {EventTarget~Event}\n */\n\n/**\n * Events that can be called with on + eventName. See {@link EventHandler}.\n *\n * @property {Object} TrackList#allowedEvents_\n * @private\n */\n\n\nTrackList.prototype.allowedEvents_ = {\n change: 'change',\n addtrack: 'addtrack',\n removetrack: 'removetrack',\n labelchange: 'labelchange'\n}; // emulate attribute EventHandler support to allow for feature detection\n\nfor (var event in TrackList.prototype.allowedEvents_) {\n TrackList.prototype['on' + event] = null;\n}\n\n/**\n * Anywhere we call this function we diverge from the spec\n * as we only support one enabled audiotrack at a time\n *\n * @param {AudioTrackList} list\n * list to work on\n *\n * @param {AudioTrack} track\n * The track to skip\n *\n * @private\n */\n\nvar disableOthers$1 = function disableOthers(list, track) {\n for (var i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n } // another audio track is enabled, disable it\n\n\n list[i].enabled = false;\n }\n};\n/**\n * The current list of {@link AudioTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotracklist}\n * @extends TrackList\n */\n\n\nvar AudioTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(AudioTrackList, _TrackList);\n\n /**\n * Create an instance of this class.\n *\n * @param {AudioTrack[]} [tracks=[]]\n * A list of `AudioTrack` to instantiate the list with.\n */\n function AudioTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (var i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].enabled) {\n disableOthers$1(tracks, tracks[i]);\n break;\n }\n }\n\n _this = _TrackList.call(this, tracks) || this;\n _this.changing_ = false;\n return _this;\n }\n /**\n * Add an {@link AudioTrack} to the `AudioTrackList`.\n *\n * @param {AudioTrack} track\n * The AudioTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = AudioTrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n if (track.enabled) {\n disableOthers$1(this, track);\n }\n\n _TrackList.prototype.addTrack.call(this, track); // native tracks don't have this\n\n\n if (!track.addEventListener) {\n return;\n }\n\n track.enabledChange_ = function () {\n // when we are disabling other tracks (since we don't support\n // more than one track at a time) we will set changing_\n // to true so that we don't trigger additional change events\n if (_this2.changing_) {\n return;\n }\n\n _this2.changing_ = true;\n disableOthers$1(_this2, track);\n _this2.changing_ = false;\n\n _this2.trigger('change');\n };\n /**\n * @listens AudioTrack#enabledchange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('enabledchange', track.enabledChange_);\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack);\n\n if (rtrack.removeEventListener && rtrack.enabledChange_) {\n rtrack.removeEventListener('enabledchange', rtrack.enabledChange_);\n rtrack.enabledChange_ = null;\n }\n };\n\n return AudioTrackList;\n}(TrackList);\n\n/**\n * Un-select all other {@link VideoTrack}s that are selected.\n *\n * @param {VideoTrackList} list\n * list to work on\n *\n * @param {VideoTrack} track\n * The track to skip\n *\n * @private\n */\n\nvar disableOthers = function disableOthers(list, track) {\n for (var i = 0; i < list.length; i++) {\n if (!Object.keys(list[i]).length || track.id === list[i].id) {\n continue;\n } // another video track is enabled, disable it\n\n\n list[i].selected = false;\n }\n};\n/**\n * The current list of {@link VideoTrack} for a video.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotracklist}\n * @extends TrackList\n */\n\n\nvar VideoTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(VideoTrackList, _TrackList);\n\n /**\n * Create an instance of this class.\n *\n * @param {VideoTrack[]} [tracks=[]]\n * A list of `VideoTrack` to instantiate the list with.\n */\n function VideoTrackList(tracks) {\n var _this;\n\n if (tracks === void 0) {\n tracks = [];\n }\n\n // make sure only 1 track is enabled\n // sorted from last index to first index\n for (var i = tracks.length - 1; i >= 0; i--) {\n if (tracks[i].selected) {\n disableOthers(tracks, tracks[i]);\n break;\n }\n }\n\n _this = _TrackList.call(this, tracks) || this;\n _this.changing_ = false;\n /**\n * @member {number} VideoTrackList#selectedIndex\n * The current index of the selected {@link VideoTrack`}.\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'selectedIndex', {\n get: function get() {\n for (var _i = 0; _i < this.length; _i++) {\n if (this[_i].selected) {\n return _i;\n }\n }\n\n return -1;\n },\n set: function set() {}\n });\n return _this;\n }\n /**\n * Add a {@link VideoTrack} to the `VideoTrackList`.\n *\n * @param {VideoTrack} track\n * The VideoTrack to add to the list\n *\n * @fires TrackList#addtrack\n */\n\n\n var _proto = VideoTrackList.prototype;\n\n _proto.addTrack = function addTrack(track) {\n var _this2 = this;\n\n if (track.selected) {\n disableOthers(this, track);\n }\n\n _TrackList.prototype.addTrack.call(this, track); // native tracks don't have this\n\n\n if (!track.addEventListener) {\n return;\n }\n\n track.selectedChange_ = function () {\n if (_this2.changing_) {\n return;\n }\n\n _this2.changing_ = true;\n disableOthers(_this2, track);\n _this2.changing_ = false;\n\n _this2.trigger('change');\n };\n /**\n * @listens VideoTrack#selectedchange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('selectedchange', track.selectedChange_);\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack);\n\n if (rtrack.removeEventListener && rtrack.selectedChange_) {\n rtrack.removeEventListener('selectedchange', rtrack.selectedChange_);\n rtrack.selectedChange_ = null;\n }\n };\n\n return VideoTrackList;\n}(TrackList);\n\n/**\n * The current list of {@link TextTrack} for a media file.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist}\n * @extends TrackList\n */\n\nvar TextTrackList = /*#__PURE__*/function (_TrackList) {\n _inheritsLoose(TextTrackList, _TrackList);\n\n function TextTrackList() {\n return _TrackList.apply(this, arguments) || this;\n }\n\n var _proto = TextTrackList.prototype;\n\n /**\n * Add a {@link TextTrack} to the `TextTrackList`\n *\n * @param {TextTrack} track\n * The text track to add to the list.\n *\n * @fires TrackList#addtrack\n */\n _proto.addTrack = function addTrack(track) {\n var _this = this;\n\n _TrackList.prototype.addTrack.call(this, track);\n\n if (!this.queueChange_) {\n this.queueChange_ = function () {\n return _this.queueTrigger('change');\n };\n }\n\n if (!this.triggerSelectedlanguagechange) {\n this.triggerSelectedlanguagechange_ = function () {\n return _this.trigger('selectedlanguagechange');\n };\n }\n /**\n * @listens TextTrack#modechange\n * @fires TrackList#change\n */\n\n\n track.addEventListener('modechange', this.queueChange_);\n var nonLanguageTextTrackKind = ['metadata', 'chapters'];\n\n if (nonLanguageTextTrackKind.indexOf(track.kind) === -1) {\n track.addEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n };\n\n _proto.removeTrack = function removeTrack(rtrack) {\n _TrackList.prototype.removeTrack.call(this, rtrack); // manually remove the event handlers we added\n\n\n if (rtrack.removeEventListener) {\n if (this.queueChange_) {\n rtrack.removeEventListener('modechange', this.queueChange_);\n }\n\n if (this.selectedlanguagechange_) {\n rtrack.removeEventListener('modechange', this.triggerSelectedlanguagechange_);\n }\n }\n };\n\n return TextTrackList;\n}(TrackList);\n\n/**\n * @file html-track-element-list.js\n */\n\n/**\n * The current list of {@link HtmlTrackElement}s.\n */\nvar HtmlTrackElementList = /*#__PURE__*/function () {\n /**\n * Create an instance of this class.\n *\n * @param {HtmlTrackElement[]} [tracks=[]]\n * A list of `HtmlTrackElement` to instantiate the list with.\n */\n function HtmlTrackElementList(trackElements) {\n if (trackElements === void 0) {\n trackElements = [];\n }\n\n this.trackElements_ = [];\n /**\n * @memberof HtmlTrackElementList\n * @member {number} length\n * The current number of `Track`s in the this Trackist.\n * @instance\n */\n\n Object.defineProperty(this, 'length', {\n get: function get() {\n return this.trackElements_.length;\n }\n });\n\n for (var i = 0, length = trackElements.length; i < length; i++) {\n this.addTrackElement_(trackElements[i]);\n }\n }\n /**\n * Add an {@link HtmlTrackElement} to the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to add to the list.\n *\n * @private\n */\n\n\n var _proto = HtmlTrackElementList.prototype;\n\n _proto.addTrackElement_ = function addTrackElement_(trackElement) {\n var index = this.trackElements_.length;\n\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.trackElements_[index];\n }\n });\n } // Do not add duplicate elements\n\n\n if (this.trackElements_.indexOf(trackElement) === -1) {\n this.trackElements_.push(trackElement);\n }\n }\n /**\n * Get an {@link HtmlTrackElement} from the `HtmlTrackElementList` given an\n * {@link TextTrack}.\n *\n * @param {TextTrack} track\n * The track associated with a track element.\n *\n * @return {HtmlTrackElement|undefined}\n * The track element that was found or undefined.\n *\n * @private\n */\n ;\n\n _proto.getTrackElementByTrack_ = function getTrackElementByTrack_(track) {\n var trackElement_;\n\n for (var i = 0, length = this.trackElements_.length; i < length; i++) {\n if (track === this.trackElements_[i].track) {\n trackElement_ = this.trackElements_[i];\n break;\n }\n }\n\n return trackElement_;\n }\n /**\n * Remove a {@link HtmlTrackElement} from the `HtmlTrackElementList`\n *\n * @param {HtmlTrackElement} trackElement\n * The track element to remove from the list.\n *\n * @private\n */\n ;\n\n _proto.removeTrackElement_ = function removeTrackElement_(trackElement) {\n for (var i = 0, length = this.trackElements_.length; i < length; i++) {\n if (trackElement === this.trackElements_[i]) {\n if (this.trackElements_[i].track && typeof this.trackElements_[i].track.off === 'function') {\n this.trackElements_[i].track.off();\n }\n\n if (typeof this.trackElements_[i].off === 'function') {\n this.trackElements_[i].off();\n }\n\n this.trackElements_.splice(i, 1);\n break;\n }\n }\n };\n\n return HtmlTrackElementList;\n}();\n\n/**\n * @file text-track-cue-list.js\n */\n\n/**\n * @typedef {Object} TextTrackCueList~TextTrackCue\n *\n * @property {string} id\n * The unique id for this text track cue\n *\n * @property {number} startTime\n * The start time for this text track cue\n *\n * @property {number} endTime\n * The end time for this text track cue\n *\n * @property {boolean} pauseOnExit\n * Pause when the end time is reached if true.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcue}\n */\n\n/**\n * A List of TextTrackCues.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist}\n */\nvar TextTrackCueList = /*#__PURE__*/function () {\n /**\n * Create an instance of this class..\n *\n * @param {Array} cues\n * A list of cues to be initialized with\n */\n function TextTrackCueList(cues) {\n TextTrackCueList.prototype.setCues_.call(this, cues);\n /**\n * @memberof TextTrackCueList\n * @member {number} length\n * The current number of `TextTrackCue`s in the TextTrackCueList.\n * @instance\n */\n\n Object.defineProperty(this, 'length', {\n get: function get() {\n return this.length_;\n }\n });\n }\n /**\n * A setter for cues in this list. Creates getters\n * an an index for the cues.\n *\n * @param {Array} cues\n * An array of cues to set\n *\n * @private\n */\n\n\n var _proto = TextTrackCueList.prototype;\n\n _proto.setCues_ = function setCues_(cues) {\n var oldLength = this.length || 0;\n var i = 0;\n var l = cues.length;\n this.cues_ = cues;\n this.length_ = cues.length;\n\n var defineProp = function defineProp(index) {\n if (!('' + index in this)) {\n Object.defineProperty(this, '' + index, {\n get: function get() {\n return this.cues_[index];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for (; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n }\n /**\n * Get a `TextTrackCue` that is currently in the `TextTrackCueList` by id.\n *\n * @param {string} id\n * The id of the cue that should be searched for.\n *\n * @return {TextTrackCueList~TextTrackCue|null}\n * A single cue or null if none was found.\n */\n ;\n\n _proto.getCueById = function getCueById(id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var cue = this[i];\n\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n };\n\n return TextTrackCueList;\n}();\n\n/**\n * @file track-kinds.js\n */\n\n/**\n * All possible `VideoTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-videotrack-kind\n * @typedef VideoTrack~Kind\n * @enum\n */\nvar VideoTrackKind = {\n alternative: 'alternative',\n captions: 'captions',\n main: 'main',\n sign: 'sign',\n subtitles: 'subtitles',\n commentary: 'commentary'\n};\n/**\n * All possible `AudioTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-audiotrack-kind\n * @typedef AudioTrack~Kind\n * @enum\n */\n\nvar AudioTrackKind = {\n 'alternative': 'alternative',\n 'descriptions': 'descriptions',\n 'main': 'main',\n 'main-desc': 'main-desc',\n 'translation': 'translation',\n 'commentary': 'commentary'\n};\n/**\n * All possible `TextTrackKind`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-texttrack-kind\n * @typedef TextTrack~Kind\n * @enum\n */\n\nvar TextTrackKind = {\n subtitles: 'subtitles',\n captions: 'captions',\n descriptions: 'descriptions',\n chapters: 'chapters',\n metadata: 'metadata'\n};\n/**\n * All possible `TextTrackMode`s\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n * @typedef TextTrack~Mode\n * @enum\n */\n\nvar TextTrackMode = {\n disabled: 'disabled',\n hidden: 'hidden',\n showing: 'showing'\n};\n\n/**\n * A Track class that contains all of the common functionality for {@link AudioTrack},\n * {@link VideoTrack}, and {@link TextTrack}.\n *\n * > Note: This class should not be used directly\n *\n * @see {@link https://html.spec.whatwg.org/multipage/embedded-content.html}\n * @extends EventTarget\n * @abstract\n */\n\nvar Track = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(Track, _EventTarget);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid kind for the track type you are creating.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @abstract\n */\n function Track(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _EventTarget.call(this) || this;\n var trackProps = {\n id: options.id || 'vjs_track_' + newGUID(),\n kind: options.kind || '',\n language: options.language || ''\n };\n var label = options.label || '';\n /**\n * @memberof Track\n * @member {string} id\n * The id of this track. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} kind\n * The kind of track that this is. Cannot be changed after creation.\n * @instance\n *\n * @readonly\n */\n\n /**\n * @memberof Track\n * @member {string} language\n * The two letter language code for this track. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n\n var _loop = function _loop(key) {\n Object.defineProperty(_assertThisInitialized(_this), key, {\n get: function get() {\n return trackProps[key];\n },\n set: function set() {}\n });\n };\n\n for (var key in trackProps) {\n _loop(key);\n }\n /**\n * @memberof Track\n * @member {string} label\n * The label of this track. Cannot be changed after creation.\n * @instance\n *\n * @fires Track#labelchange\n */\n\n\n Object.defineProperty(_assertThisInitialized(_this), 'label', {\n get: function get() {\n return label;\n },\n set: function set(newLabel) {\n if (newLabel !== label) {\n label = newLabel;\n /**\n * An event that fires when label changes on this track.\n *\n * > Note: This is not part of the spec!\n *\n * @event Track#labelchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('labelchange');\n }\n }\n });\n return _this;\n }\n\n return Track;\n}(EventTarget$2);\n\n/**\n * @file url.js\n * @module url\n */\n/**\n * @typedef {Object} url:URLObject\n *\n * @property {string} protocol\n * The protocol of the url that was parsed.\n *\n * @property {string} hostname\n * The hostname of the url that was parsed.\n *\n * @property {string} port\n * The port of the url that was parsed.\n *\n * @property {string} pathname\n * The pathname of the url that was parsed.\n *\n * @property {string} search\n * The search query of the url that was parsed.\n *\n * @property {string} hash\n * The hash of the url that was parsed.\n *\n * @property {string} host\n * The host of the url that was parsed.\n */\n\n/**\n * Resolve and parse the elements of a URL.\n *\n * @function\n * @param {String} url\n * The url to parse\n *\n * @return {url:URLObject}\n * An object of url details\n */\n\nvar parseUrl = function parseUrl(url) {\n // This entire method can be replace with URL once we are able to drop IE11\n var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host']; // add the url to an anchor and let the browser parse the URL\n\n var a = document.createElement('a');\n a.href = url; // Copy the specific URL properties to a new object\n // This is also needed for IE because the anchor loses its\n // properties when it's removed from the dom\n\n var details = {};\n\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n } // IE adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n\n\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (!details.protocol) {\n details.protocol = window$1.location.protocol;\n }\n /* istanbul ignore if */\n\n\n if (!details.host) {\n details.host = window$1.location.host;\n }\n\n return details;\n};\n/**\n * Get absolute version of relative URL. Used to tell Flash the correct URL.\n *\n * @function\n * @param {string} url\n * URL to make absolute\n *\n * @return {string}\n * Absolute URL\n *\n * @see http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n */\n\nvar getAbsoluteURL = function getAbsoluteURL(url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n // add the url to an anchor and let the browser parse the URL\n var a = document.createElement('a');\n a.href = url;\n url = a.href;\n }\n\n return url;\n};\n/**\n * Returns the extension of the passed file name. It will return an empty string\n * if passed an invalid path.\n *\n * @function\n * @param {string} path\n * The fileName path like '/path/to/file.mp4'\n *\n * @return {string}\n * The extension in lower case or an empty string if no\n * extension could be found.\n */\n\nvar getFileExtension = function getFileExtension(path) {\n if (typeof path === 'string') {\n var splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/;\n var pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @function\n * @param {string} url\n * The url to check.\n *\n * @param {Object} [winLoc]\n * the domain to check the url against, defaults to window.location\n *\n * @param {string} [winLoc.protocol]\n * The window location protocol defaults to window.location.protocol\n *\n * @param {string} [winLoc.host]\n * The window location host defaults to window.location.host\n *\n * @return {boolean}\n * Whether it is a cross domain request or not.\n */\n\nvar isCrossOrigin = function isCrossOrigin(url, winLoc) {\n if (winLoc === void 0) {\n winLoc = window$1.location;\n }\n\n var urlInfo = parseUrl(url); // IE8 protocol relative urls will return ':' for protocol\n\n var srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol; // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n\n var crossOrigin = srcProtocol + urlInfo.host !== winLoc.protocol + winLoc.host;\n return crossOrigin;\n};\n\nvar Url = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parseUrl: parseUrl,\n getAbsoluteURL: getAbsoluteURL,\n getFileExtension: getFileExtension,\n isCrossOrigin: isCrossOrigin\n});\n\n/**\n * Takes a webvtt file contents and parses it into cues\n *\n * @param {string} srcContent\n * webVTT file contents\n *\n * @param {TextTrack} track\n * TextTrack to add cues to. Cues come from the srcContent.\n *\n * @private\n */\n\nvar parseCues = function parseCues(srcContent, track) {\n var parser = new window$1.WebVTT.Parser(window$1, window$1.vttjs, window$1.WebVTT.StringDecoder());\n var errors = [];\n\n parser.oncue = function (cue) {\n track.addCue(cue);\n };\n\n parser.onparsingerror = function (error) {\n errors.push(error);\n };\n\n parser.onflush = function () {\n track.trigger({\n type: 'loadeddata',\n target: track\n });\n };\n\n parser.parse(srcContent);\n\n if (errors.length > 0) {\n if (window$1.console && window$1.console.groupCollapsed) {\n window$1.console.groupCollapsed(\"Text Track parsing errors for \" + track.src);\n }\n\n errors.forEach(function (error) {\n return log$1.error(error);\n });\n\n if (window$1.console && window$1.console.groupEnd) {\n window$1.console.groupEnd();\n }\n }\n\n parser.flush();\n};\n/**\n * Load a `TextTrack` from a specified url.\n *\n * @param {string} src\n * Url to load track from.\n *\n * @param {TextTrack} track\n * Track to add cues to. Comes from the content at the end of `url`.\n *\n * @private\n */\n\n\nvar loadTrack = function loadTrack(src, track) {\n var opts = {\n uri: src\n };\n var crossOrigin = isCrossOrigin(src);\n\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n var withCredentials = track.tech_.crossOrigin() === 'use-credentials';\n\n if (withCredentials) {\n opts.withCredentials = withCredentials;\n }\n\n XHR(opts, bind(this, function (err, response, responseBody) {\n if (err) {\n return log$1.error(err, response);\n }\n\n track.loaded_ = true; // Make sure that vttjs has loaded, otherwise, wait till it finished loading\n // NOTE: this is only used for the alt/video.novtt.js build\n\n if (typeof window$1.WebVTT !== 'function') {\n if (track.tech_) {\n // to prevent use before define eslint error, we define loadHandler\n // as a let here\n track.tech_.any(['vttjsloaded', 'vttjserror'], function (event) {\n if (event.type === 'vttjserror') {\n log$1.error(\"vttjs failed to load, stopping trying to process \" + track.src);\n return;\n }\n\n return parseCues(responseBody, track);\n });\n }\n } else {\n parseCues(responseBody, track);\n }\n }));\n};\n/**\n * A representation of a single `TextTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack}\n * @extends Track\n */\n\n\nvar TextTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(TextTrack, _Track);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this TextTrack.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n function TextTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n var settings = mergeOptions$3(options, {\n kind: TextTrackKind[options.kind] || 'subtitles',\n language: options.language || options.srclang || ''\n });\n var mode = TextTrackMode[settings.mode] || 'disabled';\n var default_ = settings[\"default\"];\n\n if (settings.kind === 'metadata' || settings.kind === 'chapters') {\n mode = 'hidden';\n }\n\n _this = _Track.call(this, settings) || this;\n _this.tech_ = settings.tech;\n _this.cues_ = [];\n _this.activeCues_ = [];\n _this.preload_ = _this.tech_.preloadTextTracks !== false;\n var cues = new TextTrackCueList(_this.cues_);\n var activeCues = new TextTrackCueList(_this.activeCues_);\n var changed = false;\n _this.timeupdateHandler = bind(_assertThisInitialized(_this), function (event) {\n if (event === void 0) {\n event = {};\n }\n\n if (this.tech_.isDisposed()) {\n return;\n }\n\n if (!this.tech_.isReady_) {\n if (event.type !== 'timeupdate') {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n }\n\n return;\n } // Accessing this.activeCues for the side-effects of updating itself\n // due to its nature as a getter function. Do not remove or cues will\n // stop updating!\n // Use the setter to prevent deletion from uglify (pure_getters rule)\n\n\n this.activeCues = this.activeCues;\n\n if (changed) {\n this.trigger('cuechange');\n changed = false;\n }\n\n if (event.type !== 'timeupdate') {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\n }\n });\n\n var disposeHandler = function disposeHandler() {\n _this.stopTracking();\n };\n\n _this.tech_.one('dispose', disposeHandler);\n\n if (mode !== 'disabled') {\n _this.startTracking();\n }\n\n Object.defineProperties(_assertThisInitialized(_this), {\n /**\n * @memberof TextTrack\n * @member {boolean} default\n * If this track was set to be on or off by default. Cannot be changed after\n * creation.\n * @instance\n *\n * @readonly\n */\n \"default\": {\n get: function get() {\n return default_;\n },\n set: function set() {}\n },\n\n /**\n * @memberof TextTrack\n * @member {string} mode\n * Set the mode of this TextTrack to a valid {@link TextTrack~Mode}. Will\n * not be set if setting to an invalid mode.\n * @instance\n *\n * @fires TextTrack#modechange\n */\n mode: {\n get: function get() {\n return mode;\n },\n set: function set(newMode) {\n if (!TextTrackMode[newMode]) {\n return;\n }\n\n if (mode === newMode) {\n return;\n }\n\n mode = newMode;\n\n if (!this.preload_ && mode !== 'disabled' && this.cues.length === 0) {\n // On-demand load.\n loadTrack(this.src, this);\n }\n\n this.stopTracking();\n\n if (mode !== 'disabled') {\n this.startTracking();\n }\n /**\n * An event that fires when mode changes on this track. This allows\n * the TextTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec!\n *\n * @event TextTrack#modechange\n * @type {EventTarget~Event}\n */\n\n\n this.trigger('modechange');\n }\n },\n\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} cues\n * The text track cue list for this TextTrack.\n * @instance\n */\n cues: {\n get: function get() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: function set() {}\n },\n\n /**\n * @memberof TextTrack\n * @member {TextTrackCueList} activeCues\n * The list text track cues that are currently active for this TextTrack.\n * @instance\n */\n activeCues: {\n get: function get() {\n if (!this.loaded_) {\n return null;\n } // nothing to do\n\n\n if (this.cues.length === 0) {\n return activeCues;\n }\n\n var ct = this.tech_.currentTime();\n var active = [];\n\n for (var i = 0, l = this.cues.length; i < l; i++) {\n var cue = this.cues[i];\n\n if (cue.startTime <= ct && cue.endTime >= ct) {\n active.push(cue);\n } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (var _i = 0; _i < active.length; _i++) {\n if (this.activeCues_.indexOf(active[_i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n return activeCues;\n },\n // /!\\ Keep this setter empty (see the timeupdate handler above)\n set: function set() {}\n }\n });\n\n if (settings.src) {\n _this.src = settings.src;\n\n if (!_this.preload_) {\n // Tracks will load on-demand.\n // Act like we're loaded for other purposes.\n _this.loaded_ = true;\n }\n\n if (_this.preload_ || settings.kind !== 'subtitles' && settings.kind !== 'captions') {\n loadTrack(_this.src, _assertThisInitialized(_this));\n }\n } else {\n _this.loaded_ = true;\n }\n\n return _this;\n }\n\n var _proto = TextTrack.prototype;\n\n _proto.startTracking = function startTracking() {\n // More precise cues based on requestVideoFrameCallback with a requestAnimationFram fallback\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler); // Also listen to timeupdate in case rVFC/rAF stops (window in background, audio in video el)\n\n this.tech_.on('timeupdate', this.timeupdateHandler);\n };\n\n _proto.stopTracking = function stopTracking() {\n if (this.rvf_) {\n this.tech_.cancelVideoFrameCallback(this.rvf_);\n this.rvf_ = undefined;\n }\n\n this.tech_.off('timeupdate', this.timeupdateHandler);\n }\n /**\n * Add a cue to the internal list of cues.\n *\n * @param {TextTrack~Cue} cue\n * The cue to add to our internal list\n */\n ;\n\n _proto.addCue = function addCue(originalCue) {\n var cue = originalCue;\n\n if (window$1.vttjs && !(originalCue instanceof window$1.vttjs.VTTCue)) {\n cue = new window$1.vttjs.VTTCue(originalCue.startTime, originalCue.endTime, originalCue.text);\n\n for (var prop in originalCue) {\n if (!(prop in cue)) {\n cue[prop] = originalCue[prop];\n }\n } // make sure that `id` is copied over\n\n\n cue.id = originalCue.id;\n cue.originalCue_ = originalCue;\n }\n\n var tracks = this.tech_.textTracks();\n\n for (var i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n\n this.cues_.push(cue);\n this.cues.setCues_(this.cues_);\n }\n /**\n * Remove a cue from our internal list\n *\n * @param {TextTrack~Cue} removeCue\n * The cue to remove from our internal list\n */\n ;\n\n _proto.removeCue = function removeCue(_removeCue) {\n var i = this.cues_.length;\n\n while (i--) {\n var cue = this.cues_[i];\n\n if (cue === _removeCue || cue.originalCue_ && cue.originalCue_ === _removeCue) {\n this.cues_.splice(i, 1);\n this.cues.setCues_(this.cues_);\n break;\n }\n }\n };\n\n return TextTrack;\n}(Track);\n/**\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\n\n\nTextTrack.prototype.allowedEvents_ = {\n cuechange: 'cuechange'\n};\n\n/**\n * A representation of a single `AudioTrack`. If it is part of an {@link AudioTrackList}\n * only one `AudioTrack` in the list will be enabled at a time.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#audiotrack}\n * @extends Track\n */\n\nvar AudioTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(AudioTrack, _Track);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {AudioTrack~Kind} [options.kind='']\n * A valid audio track kind\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.enabled]\n * If this track is the one that is currently playing. If this track is part of\n * an {@link AudioTrackList}, only one {@link AudioTrack} will be enabled.\n */\n function AudioTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n var settings = mergeOptions$3(options, {\n kind: AudioTrackKind[options.kind] || ''\n });\n _this = _Track.call(this, settings) || this;\n var enabled = false;\n /**\n * @memberof AudioTrack\n * @member {boolean} enabled\n * If this `AudioTrack` is enabled or not. When setting this will\n * fire {@link AudioTrack#enabledchange} if the state of enabled is changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'enabled', {\n get: function get() {\n return enabled;\n },\n set: function set(newEnabled) {\n // an invalid or unchanged value\n if (typeof newEnabled !== 'boolean' || newEnabled === enabled) {\n return;\n }\n\n enabled = newEnabled;\n /**\n * An event that fires when enabled changes on this track. This allows\n * the AudioTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event AudioTrack#enabledchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('enabledchange');\n }\n }); // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n\n if (settings.enabled) {\n _this.enabled = settings.enabled;\n }\n\n _this.loaded_ = true;\n return _this;\n }\n\n return AudioTrack;\n}(Track);\n\n/**\n * A representation of a single `VideoTrack`.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#videotrack}\n * @extends Track\n */\n\nvar VideoTrack = /*#__PURE__*/function (_Track) {\n _inheritsLoose(VideoTrack, _Track);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} [options={}]\n * Object of option names and values\n *\n * @param {string} [options.kind='']\n * A valid {@link VideoTrack~Kind}\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this AudioTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {boolean} [options.selected]\n * If this track is the one that is currently playing.\n */\n function VideoTrack(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n var settings = mergeOptions$3(options, {\n kind: VideoTrackKind[options.kind] || ''\n });\n _this = _Track.call(this, settings) || this;\n var selected = false;\n /**\n * @memberof VideoTrack\n * @member {boolean} selected\n * If this `VideoTrack` is selected or not. When setting this will\n * fire {@link VideoTrack#selectedchange} if the state of selected changed.\n * @instance\n *\n * @fires VideoTrack#selectedchange\n */\n\n Object.defineProperty(_assertThisInitialized(_this), 'selected', {\n get: function get() {\n return selected;\n },\n set: function set(newSelected) {\n // an invalid or unchanged value\n if (typeof newSelected !== 'boolean' || newSelected === selected) {\n return;\n }\n\n selected = newSelected;\n /**\n * An event that fires when selected changes on this track. This allows\n * the VideoTrackList that holds this track to act accordingly.\n *\n * > Note: This is not part of the spec! Native tracks will do\n * this internally without an event.\n *\n * @event VideoTrack#selectedchange\n * @type {EventTarget~Event}\n */\n\n this.trigger('selectedchange');\n }\n }); // if the user sets this track to selected then\n // set selected to that true value otherwise\n // we keep it false\n\n if (settings.selected) {\n _this.selected = settings.selected;\n }\n\n return _this;\n }\n\n return VideoTrack;\n}(Track);\n\n/**\n * @memberof HTMLTrackElement\n * @typedef {HTMLTrackElement~ReadyState}\n * @enum {number}\n */\n\nvar NONE = 0;\nvar LOADING = 1;\nvar LOADED = 2;\nvar ERROR = 3;\n/**\n * A single track represented in the DOM.\n *\n * @see [Spec]{@link https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement}\n * @extends EventTarget\n */\n\nvar HTMLTrackElement = /*#__PURE__*/function (_EventTarget) {\n _inheritsLoose(HTMLTrackElement, _EventTarget);\n\n /**\n * Create an instance of this class.\n *\n * @param {Object} options={}\n * Object of option names and values\n *\n * @param {Tech} options.tech\n * A reference to the tech that owns this HTMLTrackElement.\n *\n * @param {TextTrack~Kind} [options.kind='subtitles']\n * A valid text track kind.\n *\n * @param {TextTrack~Mode} [options.mode='disabled']\n * A valid text track mode.\n *\n * @param {string} [options.id='vjs_track_' + Guid.newGUID()]\n * A unique id for this TextTrack.\n *\n * @param {string} [options.label='']\n * The menu label for this track.\n *\n * @param {string} [options.language='']\n * A valid two character language code.\n *\n * @param {string} [options.srclang='']\n * A valid two character language code. An alternative, but deprioritized\n * version of `options.language`\n *\n * @param {string} [options.src]\n * A url to TextTrack cues.\n *\n * @param {boolean} [options.default]\n * If this track should default to on or off.\n */\n function HTMLTrackElement(options) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n _this = _EventTarget.call(this) || this;\n var readyState;\n var track = new TextTrack(options);\n _this.kind = track.kind;\n _this.src = track.src;\n _this.srclang = track.language;\n _this.label = track.label;\n _this[\"default\"] = track[\"default\"];\n Object.defineProperties(_assertThisInitialized(_this), {\n /**\n * @memberof HTMLTrackElement\n * @member {HTMLTrackElement~ReadyState} readyState\n * The current ready state of the track element.\n * @instance\n */\n readyState: {\n get: function get() {\n return readyState;\n }\n },\n\n /**\n * @memberof HTMLTrackElement\n * @member {TextTrack} track\n * The underlying TextTrack object.\n * @instance\n *\n */\n track: {\n get: function get() {\n return track;\n }\n }\n });\n readyState = NONE;\n /**\n * @listens TextTrack#loadeddata\n * @fires HTMLTrackElement#load\n */\n\n track.addEventListener('loadeddata', function () {\n readyState = LOADED;\n\n _this.trigger({\n type: 'load',\n target: _assertThisInitialized(_this)\n });\n });\n return _this;\n }\n\n return HTMLTrackElement;\n}(EventTarget$2);\n\nHTMLTrackElement.prototype.allowedEvents_ = {\n load: 'load'\n};\nHTMLTrackElement.NONE = NONE;\nHTMLTrackElement.LOADING = LOADING;\nHTMLTrackElement.LOADED = LOADED;\nHTMLTrackElement.ERROR = ERROR;\n\n/*\n * This file contains all track properties that are used in\n * player.js, tech.js, html5.js and possibly other techs in the future.\n */\n\nvar NORMAL = {\n audio: {\n ListClass: AudioTrackList,\n TrackClass: AudioTrack,\n capitalName: 'Audio'\n },\n video: {\n ListClass: VideoTrackList,\n TrackClass: VideoTrack,\n capitalName: 'Video'\n },\n text: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'Text'\n }\n};\nObject.keys(NORMAL).forEach(function (type) {\n NORMAL[type].getterName = type + \"Tracks\";\n NORMAL[type].privateName = type + \"Tracks_\";\n});\nvar REMOTE = {\n remoteText: {\n ListClass: TextTrackList,\n TrackClass: TextTrack,\n capitalName: 'RemoteText',\n getterName: 'remoteTextTracks',\n privateName: 'remoteTextTracks_'\n },\n remoteTextEl: {\n ListClass: HtmlTrackElementList,\n TrackClass: HTMLTrackElement,\n capitalName: 'RemoteTextTrackEls',\n getterName: 'remoteTextTrackEls',\n privateName: 'remoteTextTrackEls_'\n }\n};\n\nvar ALL = _extends({}, NORMAL, REMOTE);\n\nREMOTE.names = Object.keys(REMOTE);\nNORMAL.names = Object.keys(NORMAL);\nALL.names = [].concat(REMOTE.names).concat(NORMAL.names);\n\n/**\n * An Object containing a structure like: `{src: 'url', type: 'mimetype'}` or string\n * that just contains the src url alone.\n * * `var SourceObject = {src: 'http://ex.com/video.mp4', type: 'video/mp4'};`\n * `var SourceString = 'http://example.com/some-video.mp4';`\n *\n * @typedef {Object|string} Tech~SourceObject\n *\n * @property {string} src\n * The url to the source\n *\n * @property {string} type\n * The mime type of the source\n */\n\n/**\n * A function used by {@link Tech} to create a new {@link TextTrack}.\n *\n * @private\n *\n * @param {Tech} self\n * An instance of the Tech class.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @param {Object} [options={}]\n * An object with additional text track options\n *\n * @return {TextTrack}\n * The text track that was created.\n */\n\nfunction createTrackHelper(self, kind, label, language, options) {\n if (options === void 0) {\n options = {};\n }\n\n var tracks = self.textTracks();\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n\n if (language) {\n options.language = language;\n }\n\n options.tech = self;\n var track = new ALL.text.TrackClass(options);\n tracks.addTrack(track);\n return track;\n}\n/**\n * This is the base class for media playback technology controllers, such as\n * {@link HTML5}\n *\n * @extends Component\n */\n\n\nvar Tech = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Tech, _Component);\n\n /**\n * Create an instance of this Tech.\n *\n * @param {Object} [options]\n * The key/value store of player options.\n *\n * @param {Component~ReadyCallback} ready\n * Callback function to call when the `HTML5` Tech is ready.\n */\n function Tech(options, ready) {\n var _this;\n\n if (options === void 0) {\n options = {};\n }\n\n if (ready === void 0) {\n ready = function ready() {};\n }\n\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n _this = _Component.call(this, null, options, ready) || this;\n\n _this.onDurationChange_ = function (e) {\n return _this.onDurationChange(e);\n };\n\n _this.trackProgress_ = function (e) {\n return _this.trackProgress(e);\n };\n\n _this.trackCurrentTime_ = function (e) {\n return _this.trackCurrentTime(e);\n };\n\n _this.stopTrackingCurrentTime_ = function (e) {\n return _this.stopTrackingCurrentTime(e);\n };\n\n _this.disposeSourceHandler_ = function (e) {\n return _this.disposeSourceHandler(e);\n };\n\n _this.queuedHanders_ = new Set(); // keep track of whether the current source has played at all to\n // implement a very limited played()\n\n _this.hasStarted_ = false;\n\n _this.on('playing', function () {\n this.hasStarted_ = true;\n });\n\n _this.on('loadstart', function () {\n this.hasStarted_ = false;\n });\n\n ALL.names.forEach(function (name) {\n var props = ALL[name];\n\n if (options && options[props.getterName]) {\n _this[props.privateName] = options[props.getterName];\n }\n }); // Manually track progress in cases where the browser/tech doesn't report it.\n\n if (!_this.featuresProgressEvents) {\n _this.manualProgressOn();\n } // Manually track timeupdates in cases where the browser/tech doesn't report it.\n\n\n if (!_this.featuresTimeupdateEvents) {\n _this.manualTimeUpdatesOn();\n }\n\n ['Text', 'Audio', 'Video'].forEach(function (track) {\n if (options[\"native\" + track + \"Tracks\"] === false) {\n _this[\"featuresNative\" + track + \"Tracks\"] = false;\n }\n });\n\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\n _this.featuresNativeTextTracks = false;\n } else if (options.nativeCaptions === true || options.nativeTextTracks === true) {\n _this.featuresNativeTextTracks = true;\n }\n\n if (!_this.featuresNativeTextTracks) {\n _this.emulateTextTracks();\n }\n\n _this.preloadTextTracks = options.preloadTextTracks !== false;\n _this.autoRemoteTextTracks_ = new ALL.text.ListClass();\n\n _this.initTrackListeners(); // Turn on component tap events only if not using native controls\n\n\n if (!options.nativeControlsForTouch) {\n _this.emitTapEvents();\n }\n\n if (_this.constructor) {\n _this.name_ = _this.constructor.name || 'Unknown Tech';\n }\n\n return _this;\n }\n /**\n * A special function to trigger source set in a way that will allow player\n * to re-trigger if the player or tech are not ready yet.\n *\n * @fires Tech#sourceset\n * @param {string} src The source string at the time of the source changing.\n */\n\n\n var _proto = Tech.prototype;\n\n _proto.triggerSourceset = function triggerSourceset(src) {\n var _this2 = this;\n\n if (!this.isReady_) {\n // on initial ready we have to trigger source set\n // 1ms after ready so that player can watch for it.\n this.one('ready', function () {\n return _this2.setTimeout(function () {\n return _this2.triggerSourceset(src);\n }, 1);\n });\n }\n /**\n * Fired when the source is set on the tech causing the media element\n * to reload.\n *\n * @see {@link Player#event:sourceset}\n * @event Tech#sourceset\n * @type {EventTarget~Event}\n */\n\n\n this.trigger({\n src: src,\n type: 'sourceset'\n });\n }\n /* Fallbacks for unsupported event types\n ================================================================================ */\n\n /**\n * Polyfill the `progress` event for browsers that don't support it natively.\n *\n * @see {@link Tech#trackProgress}\n */\n ;\n\n _proto.manualProgressOn = function manualProgressOn() {\n this.on('durationchange', this.onDurationChange_);\n this.manualProgress = true; // Trigger progress watching when a source begins loading\n\n this.one('ready', this.trackProgress_);\n }\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n */\n ;\n\n _proto.manualProgressOff = function manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n this.off('durationchange', this.onDurationChange_);\n }\n /**\n * This is used to trigger a `progress` event when the buffered percent changes. It\n * sets an interval function that will be called every 500 milliseconds to check if the\n * buffer end percent has changed.\n *\n * > This function is called by {@link Tech#manualProgressOn}\n *\n * @param {EventTarget~Event} event\n * The `ready` event that caused this to run.\n *\n * @listens Tech#ready\n * @fires Tech#progress\n */\n ;\n\n _proto.trackProgress = function trackProgress(event) {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(bind(this, function () {\n // Don't trigger unless buffered amount is greater than last time\n var numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n /**\n * See {@link Player#progress}\n *\n * @event Tech#progress\n * @type {EventTarget~Event}\n */\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n /**\n * Update our internal duration on a `durationchange` event by calling\n * {@link Tech#duration}.\n *\n * @param {EventTarget~Event} event\n * The `durationchange` event that caused this to run.\n *\n * @listens Tech#durationchange\n */\n ;\n\n _proto.onDurationChange = function onDurationChange(event) {\n this.duration_ = this.duration();\n }\n /**\n * Get and create a `TimeRange` object for buffering.\n *\n * @return {TimeRange}\n * The time range object that was created.\n */\n ;\n\n _proto.buffered = function buffered() {\n return createTimeRanges(0, 0);\n }\n /**\n * Get the percentage of the current video that is currently buffered.\n *\n * @return {number}\n * A number from 0 to 1 that represents the decimal percentage of the\n * video that is buffered.\n *\n */\n ;\n\n _proto.bufferedPercent = function bufferedPercent$1() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n /**\n * Turn off the polyfill for `progress` events that was created in\n * {@link Tech#manualProgressOn}\n * Stop manually tracking progress events by clearing the interval that was set in\n * {@link Tech#trackProgress}.\n */\n ;\n\n _proto.stopTrackingProgress = function stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n /**\n * Polyfill the `timeupdate` event for browsers that don't support it.\n *\n * @see {@link Tech#trackCurrentTime}\n */\n ;\n\n _proto.manualTimeUpdatesOn = function manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n this.on('play', this.trackCurrentTime_);\n this.on('pause', this.stopTrackingCurrentTime_);\n }\n /**\n * Turn off the polyfill for `timeupdate` events that was created in\n * {@link Tech#manualTimeUpdatesOn}\n */\n ;\n\n _proto.manualTimeUpdatesOff = function manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime_);\n this.off('pause', this.stopTrackingCurrentTime_);\n }\n /**\n * Sets up an interval function to track current time and trigger `timeupdate` every\n * 250 milliseconds.\n *\n * @listens Tech#play\n * @triggers Tech#timeupdate\n */\n ;\n\n _proto.trackCurrentTime = function trackCurrentTime() {\n if (this.currentTimeInterval) {\n this.stopTrackingCurrentTime();\n }\n\n this.currentTimeInterval = this.setInterval(function () {\n /**\n * Triggered at an interval of 250ms to indicated that time is passing in the video.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n }); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }, 250);\n }\n /**\n * Stop the interval function created in {@link Tech#trackCurrentTime} so that the\n * `timeupdate` event is no longer triggered.\n *\n * @listens {Tech#pause}\n */\n ;\n\n _proto.stopTrackingCurrentTime = function stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval); // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n /**\n * Turn off all event polyfills, clear the `Tech`s {@link AudioTrackList},\n * {@link VideoTrackList}, and {@link TextTrackList}, and dispose of this Tech.\n *\n * @fires Component#dispose\n */\n ;\n\n _proto.dispose = function dispose() {\n // clear out all tracks because we can't reuse them between techs\n this.clearTracks(NORMAL.names); // Turn off any manual progress or timeupdate tracking\n\n if (this.manualProgress) {\n this.manualProgressOff();\n }\n\n if (this.manualTimeUpdates) {\n this.manualTimeUpdatesOff();\n }\n\n _Component.prototype.dispose.call(this);\n }\n /**\n * Clear out a single `TrackList` or an array of `TrackLists` given their names.\n *\n * > Note: Techs without source handlers should call this between sources for `video`\n * & `audio` tracks. You don't want to use them between tracks!\n *\n * @param {string[]|string} types\n * TrackList names to clear, valid names are `video`, `audio`, and\n * `text`.\n */\n ;\n\n _proto.clearTracks = function clearTracks(types) {\n var _this3 = this;\n\n types = [].concat(types); // clear out all tracks because we can't reuse them between techs\n\n types.forEach(function (type) {\n var list = _this3[type + \"Tracks\"]() || [];\n var i = list.length;\n\n while (i--) {\n var track = list[i];\n\n if (type === 'text') {\n _this3.removeRemoteTextTrack(track);\n }\n\n list.removeTrack(track);\n }\n });\n }\n /**\n * Remove any TextTracks added via addRemoteTextTrack that are\n * flagged for automatic garbage collection\n */\n ;\n\n _proto.cleanupAutoTextTracks = function cleanupAutoTextTracks() {\n var list = this.autoRemoteTextTracks_ || [];\n var i = list.length;\n\n while (i--) {\n var track = list[i];\n this.removeRemoteTextTrack(track);\n }\n }\n /**\n * Reset the tech, which will removes all sources and reset the internal readyState.\n *\n * @abstract\n */\n ;\n\n _proto.reset = function reset() {}\n /**\n * Get the value of `crossOrigin` from the tech.\n *\n * @abstract\n *\n * @see {Html5#crossOrigin}\n */\n ;\n\n _proto.crossOrigin = function crossOrigin() {}\n /**\n * Set the value of `crossOrigin` on the tech.\n *\n * @abstract\n *\n * @param {string} crossOrigin the crossOrigin value\n * @see {Html5#setCrossOrigin}\n */\n ;\n\n _proto.setCrossOrigin = function setCrossOrigin() {}\n /**\n * Get or set an error on the Tech.\n *\n * @param {MediaError} [err]\n * Error to set on the Tech\n *\n * @return {MediaError|null}\n * The current error object on the tech, or null if there isn't one.\n */\n ;\n\n _proto.error = function error(err) {\n if (err !== undefined) {\n this.error_ = new MediaError(err);\n this.trigger('error');\n }\n\n return this.error_;\n }\n /**\n * Returns the `TimeRange`s that have been played through for the current source.\n *\n * > NOTE: This implementation is incomplete. It does not track the played `TimeRange`.\n * It only checks whether the source has played at all or not.\n *\n * @return {TimeRange}\n * - A single time range if this video has played\n * - An empty set of ranges if not.\n */\n ;\n\n _proto.played = function played() {\n if (this.hasStarted_) {\n return createTimeRanges(0, 0);\n }\n\n return createTimeRanges();\n }\n /**\n * Start playback\n *\n * @abstract\n *\n * @see {Html5#play}\n */\n ;\n\n _proto.play = function play() {}\n /**\n * Set whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#setScrubbing}\n */\n ;\n\n _proto.setScrubbing = function setScrubbing() {}\n /**\n * Get whether we are scrubbing or not\n *\n * @abstract\n *\n * @see {Html5#scrubbing}\n */\n ;\n\n _proto.scrubbing = function scrubbing() {}\n /**\n * Causes a manual time update to occur if {@link Tech#manualTimeUpdatesOn} was\n * previously called.\n *\n * @fires Tech#timeupdate\n */\n ;\n\n _proto.setCurrentTime = function setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) {\n /**\n * A manual `timeupdate` event.\n *\n * @event Tech#timeupdate\n * @type {EventTarget~Event}\n */\n this.trigger({\n type: 'timeupdate',\n target: this,\n manuallyTriggered: true\n });\n }\n }\n /**\n * Turn on listeners for {@link VideoTrackList}, {@link {AudioTrackList}, and\n * {@link TextTrackList} events.\n *\n * This adds {@link EventTarget~EventListeners} for `addtrack`, and `removetrack`.\n *\n * @fires Tech#audiotrackchange\n * @fires Tech#videotrackchange\n * @fires Tech#texttrackchange\n */\n ;\n\n _proto.initTrackListeners = function initTrackListeners() {\n var _this4 = this;\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link AudioTrackList}\n *\n * @event Tech#audiotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link VideoTrackList}\n *\n * @event Tech#videotrackchange\n * @type {EventTarget~Event}\n */\n\n /**\n * Triggered when tracks are added or removed on the Tech {@link TextTrackList}\n *\n * @event Tech#texttrackchange\n * @type {EventTarget~Event}\n */\n NORMAL.names.forEach(function (name) {\n var props = NORMAL[name];\n\n var trackListChanges = function trackListChanges() {\n _this4.trigger(name + \"trackchange\");\n };\n\n var tracks = _this4[props.getterName]();\n\n tracks.addEventListener('removetrack', trackListChanges);\n tracks.addEventListener('addtrack', trackListChanges);\n\n _this4.on('dispose', function () {\n tracks.removeEventListener('removetrack', trackListChanges);\n tracks.removeEventListener('addtrack', trackListChanges);\n });\n });\n }\n /**\n * Emulate TextTracks using vtt.js if necessary\n *\n * @fires Tech#vttjsloaded\n * @fires Tech#vttjserror\n */\n ;\n\n _proto.addWebVttScript_ = function addWebVttScript_() {\n var _this5 = this;\n\n if (window$1.WebVTT) {\n return;\n } // Initially, Tech.el_ is a child of a dummy-div wait until the Component system\n // signals that the Tech is ready at which point Tech.el_ is part of the DOM\n // before inserting the WebVTT script\n\n\n if (document.body.contains(this.el())) {\n // load via require if available and vtt.js script location was not passed in\n // as an option. novtt builds will turn the above require call into an empty object\n // which will cause this if check to always fail.\n if (!this.options_['vtt.js'] && isPlain(vtt) && Object.keys(vtt).length > 0) {\n this.trigger('vttjsloaded');\n return;\n } // load vtt.js via the script location option or the cdn of no location was\n // passed in\n\n\n var script = document.createElement('script');\n script.src = this.options_['vtt.js'] || 'https://vjs.zencdn.net/vttjs/0.14.1/vtt.min.js';\n\n script.onload = function () {\n /**\n * Fired when vtt.js is loaded.\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n _this5.trigger('vttjsloaded');\n };\n\n script.onerror = function () {\n /**\n * Fired when vtt.js was not loaded due to an error\n *\n * @event Tech#vttjsloaded\n * @type {EventTarget~Event}\n */\n _this5.trigger('vttjserror');\n };\n\n this.on('dispose', function () {\n script.onload = null;\n script.onerror = null;\n }); // but have not loaded yet and we set it to true before the inject so that\n // we don't overwrite the injected window.WebVTT if it loads right away\n\n window$1.WebVTT = true;\n this.el().parentNode.appendChild(script);\n } else {\n this.ready(this.addWebVttScript_);\n }\n }\n /**\n * Emulate texttracks\n *\n */\n ;\n\n _proto.emulateTextTracks = function emulateTextTracks() {\n var _this6 = this;\n\n var tracks = this.textTracks();\n var remoteTracks = this.remoteTextTracks();\n\n var handleAddTrack = function handleAddTrack(e) {\n return tracks.addTrack(e.track);\n };\n\n var handleRemoveTrack = function handleRemoveTrack(e) {\n return tracks.removeTrack(e.track);\n };\n\n remoteTracks.on('addtrack', handleAddTrack);\n remoteTracks.on('removetrack', handleRemoveTrack);\n this.addWebVttScript_();\n\n var updateDisplay = function updateDisplay() {\n return _this6.trigger('texttrackchange');\n };\n\n var textTracksChanges = function textTracksChanges() {\n updateDisplay();\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n };\n\n textTracksChanges();\n tracks.addEventListener('change', textTracksChanges);\n tracks.addEventListener('addtrack', textTracksChanges);\n tracks.addEventListener('removetrack', textTracksChanges);\n this.on('dispose', function () {\n remoteTracks.off('addtrack', handleAddTrack);\n remoteTracks.off('removetrack', handleRemoveTrack);\n tracks.removeEventListener('change', textTracksChanges);\n tracks.removeEventListener('addtrack', textTracksChanges);\n tracks.removeEventListener('removetrack', textTracksChanges);\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n }\n });\n }\n /**\n * Create and returns a remote {@link TextTrack} object.\n *\n * @param {string} kind\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata)\n *\n * @param {string} [label]\n * Label to identify the text track\n *\n * @param {string} [language]\n * Two letter language abbreviation\n *\n * @return {TextTrack}\n * The TextTrack that gets created.\n */\n ;\n\n _proto.addTextTrack = function addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n /**\n * Create an emulated TextTrack for use by addRemoteTextTrack\n *\n * This is intended to be overridden by classes that inherit from\n * Tech in order to create native or custom TextTracks.\n *\n * @param {Object} options\n * The object should contain the options to initialize the TextTrack with.\n *\n * @param {string} [options.kind]\n * `TextTrack` kind (subtitles, captions, descriptions, chapters, or metadata).\n *\n * @param {string} [options.label].\n * Label to identify the text track\n *\n * @param {string} [options.language]\n * Two letter language abbreviation.\n *\n * @return {HTMLTrackElement}\n * The track element that gets created.\n */\n ;\n\n _proto.createRemoteTextTrack = function createRemoteTextTrack(options) {\n var track = mergeOptions$3(options, {\n tech: this\n });\n return new REMOTE.remoteTextEl.TrackClass(track);\n }\n /**\n * Creates a remote text track object and returns an html track element.\n *\n * > Note: This can be an emulated {@link HTMLTrackElement} or a native one.\n *\n * @param {Object} options\n * See {@link Tech#createRemoteTextTrack} for more detailed properties.\n *\n * @param {boolean} [manualCleanup=true]\n * - When false: the TextTrack will be automatically removed from the video\n * element whenever the source changes\n * - When True: The TextTrack will have to be cleaned up manually\n *\n * @return {HTMLTrackElement}\n * An Html Track Element.\n *\n * @deprecated The default functionality for this function will be equivalent\n * to \"manualCleanup=false\" in the future. The manualCleanup parameter will\n * also be removed.\n */\n ;\n\n _proto.addRemoteTextTrack = function addRemoteTextTrack(options, manualCleanup) {\n var _this7 = this;\n\n if (options === void 0) {\n options = {};\n }\n\n var htmlTrackElement = this.createRemoteTextTrack(options);\n\n if (manualCleanup !== true && manualCleanup !== false) {\n // deprecation warning\n log$1.warn('Calling addRemoteTextTrack without explicitly setting the \"manualCleanup\" parameter to `true` is deprecated and default to `false` in future version of video.js');\n manualCleanup = true;\n } // store HTMLTrackElement and TextTrack to remote list\n\n\n this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);\n this.remoteTextTracks().addTrack(htmlTrackElement.track);\n\n if (manualCleanup !== true) {\n // create the TextTrackList if it doesn't exist\n this.ready(function () {\n return _this7.autoRemoteTextTracks_.addTrack(htmlTrackElement.track);\n });\n }\n\n return htmlTrackElement;\n }\n /**\n * Remove a remote text track from the remote `TextTrackList`.\n *\n * @param {TextTrack} track\n * `TextTrack` to remove from the `TextTrackList`\n */\n ;\n\n _proto.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\n var trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track); // remove HTMLTrackElement and TextTrack from remote list\n\n this.remoteTextTrackEls().removeTrackElement_(trackElement);\n this.remoteTextTracks().removeTrack(track);\n this.autoRemoteTextTracks_.removeTrack(track);\n }\n /**\n * Gets available media playback quality metrics as specified by the W3C's Media\n * Playback Quality API.\n *\n * @see [Spec]{@link https://wicg.github.io/media-playback-quality}\n *\n * @return {Object}\n * An object with supported media playback quality metrics\n *\n * @abstract\n */\n ;\n\n _proto.getVideoPlaybackQuality = function getVideoPlaybackQuality() {\n return {};\n }\n /**\n * Attempt to create a floating video window always on top of other windows\n * so that users may continue consuming media while they interact with other\n * content sites, or applications on their device.\n *\n * @see [Spec]{@link https://wicg.github.io/picture-in-picture}\n *\n * @return {Promise|undefined}\n * A promise with a Picture-in-Picture window if the browser supports\n * Promises (or one was passed in as an option). It returns undefined\n * otherwise.\n *\n * @abstract\n */\n ;\n\n _proto.requestPictureInPicture = function requestPictureInPicture() {\n var PromiseClass = this.options_.Promise || window$1.Promise;\n\n if (PromiseClass) {\n return PromiseClass.reject();\n }\n }\n /**\n * A method to check for the value of the 'disablePictureInPicture'