{"version":3,"sources":["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-contrib-ads/dist/videojs-contrib-ads.es.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/@videojs/vhs-utils/es/byte-helpers.js","webpack:///./node_modules/keycode/index.js","webpack:///./node_modules/react-share/es/EmailIcon.js","webpack:///./node_modules/@xmldom/xmldom/lib/sax.js","webpack:///./node_modules/videojs-ima/dist/videojs.ima.es.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:///./node_modules/react-share/es/utils/assert.js","webpack:///./node_modules/react-share/es/FacebookIcon.js","webpack:///./node_modules/@videojs/vhs-utils/es/codecs.js","webpack:///./node_modules/@xmldom/xmldom/lib/index.js","webpack:///./node_modules/react-share/es/PinterestShareButton.js","webpack:///./node_modules/videojs-vtt.js/lib/browser-index.js","webpack:///./node_modules/@videojs/vhs-utils/es/id3-helpers.js","webpack:///./node_modules/@videojs/xhr/lib/index.js","webpack:///./node_modules/react-share/es/ShareButton.js","webpack:///./node_modules/react-share/es/hocs/createShareButton.js","webpack:///./node_modules/mux.js/lib/utils/clock.js","webpack:///./node_modules/react-share/es/PinterestIcon.js","webpack:///./node_modules/react-share/es/WhatsappShareButton.js","webpack:///./node_modules/react-modal/lib/components/ModalPortal.js","webpack:///./node_modules/react-share/es/TwitterShareButton.js","webpack:///./node_modules/react-modal/lib/helpers/scopeTab.js","webpack:///./node_modules/classnames/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/react-share/es/EmailShareButton.js","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/react-share/es/FacebookShareButton.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:///./node_modules/react-18-image-lightbox/dist/index.es.js","webpack:///./node_modules/react-share/es/utils/objectToGetParams.js","webpack:///./node_modules/react-modal/lib/helpers/classList.js","webpack:///./node_modules/is-function/index.js","webpack:///./node_modules/mux.js/lib/tools/parse-sidx.js","webpack:///./node_modules/react-share/es/WhatsappIcon.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:///./node_modules/@videojs/xhr/lib/http-handler.js","webpack:///./node_modules/safe-json-parse/tuple.js","webpack:///./node_modules/react-outbrain-widget/build/index.js","webpack:///./node_modules/react-modal/lib/components/Modal.js","webpack:///./node_modules/mux.js/lib/utils/numbers.js","webpack:///./node_modules/react-spinners/esm/helpers/unitConverter.js","webpack:///./node_modules/react-spinners/esm/helpers/animation.js","webpack:///./node_modules/react-spinners/esm/PulseLoader.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/react-share/es/hocs/createIcon.js","webpack:///./node_modules/@xmldom/xmldom/lib/entities.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","webpack:///./node_modules/global/window.js"],"names":["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","module","exports","_width","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","defineProperties","this","enumerable","get","set","Error","TypeError","setting","toLowerCase","findScrollSetting","console","warn","cancelEvent","player","event","isImmediatePropagationStopped","cancelBubble","isPropagationStopped","prefixEvent","prefix","trigger","originalEvent","redispatch","ads","isInAdMode","isContentResuming","_contentEnding","handlePlaying","_contentHasEnded","stitchedAds","handleEnded","_hasThereBeenALoadStartDuringPlayerLife","_hasThereBeenALoadedData","_hasThereBeenALoadedMetaData","inAdBreak","currentSrc","contentSrc","handleLoadEvent","handlePlay","tcData","listenToTcf","_","dom","isInFrame","__tcfapi","cmpFrame","frame","cmpCallbacks","frames","__tcfapiLocator","ignore","top","parent","cmd","version","callback","arg","callId","Math","random","msg","__tcfapiCall","command","parameter","postMessage","addEventListener","json","JSON","parse","payload","__tcfapiReturn","returnValue","success","proxyTcfApi","uriEncodeIfNeeded","uriEncode","encodeURIComponent","customFields","mediainfo","macros","customFieldsName","fields","fieldNames","adMacroReplacement","string","customMacros","_this","defaults","replace","name","defaultVal","undefined","options_","id_","currentHeight","currentWidth","duration","referrer","location","href","playlistinfo","Date","getTime","floor","prop","key","gdprApplies","split","join","context","names","_i","log","String","cueTextTracks","processMetadataTrack","tracks","textTracks","setModeAndProcess","track","kind","setMetadataTrackMode","cue","cueAlreadySeen","cueId","includedCues","setCueAlreadySeen","cancelContentPlay","_shouldBlockPlay","paused","debug","pause","_cancelledPlay","processAdTrack","cues","processCue","cancelAdsHandler","cueData","getSupportedAdCue","isSupportedAdCue","getCueId","startTime","obj","videojsReference","isMiddlewareMediatorSupported","browser","IS_IOS","IS_ANDROID","use","middleware","TERMINATOR","playMiddleware","setSource","srcObj","next","callPlay","_playBlocked","play","terminated","playPromise","addClass","catch","e","IS_SAFARI","testHook","testVjs","States","getState","states_","registerState","StateToRegister","State","_getName","_proto","transitionTo","NewState","cleanup","newState","_state","constructor","_len","arguments","args","_key","init","onPlay","onPlaying","onEnded","onAdEnded","onAdsReady","onAdsError","onAdsCanceled","onAdTimeout","onAdStarted","onContentChanged","onContentResumed","onReadyForPostroll","onNoPreroll","onNoPostroll","startLinearAdMode","endLinearAdMode","skipLinearAdMode","isAdState","isWaitingForAdBreak","handleEvent","_inheritsLoose","subClass","superClass","create","__proto__","AdState","_State","contentResuming","waitingForAdBreak","ContentPlayback","_inLinearAdMode","ContentState","BeforePreroll","Preroll","_pausedOnContentupdate","tryToResumeTimeout_","AdsDone","_ContentState","obj$1","start","shouldTakeSnapshots","snapshot","currentTime","isLive","seekable","tech","$","suppressedTracks","snapshotObject","ended","sources","currentSources","src","tech_","currentType","style","getAttribute","mode","getPlayerSnapshot","shouldPlayContentBehindAd","preAdVolume_","volume","hasClass","removeClass","removeNativePoster","adType","disableNextSnapshotRestore","trackSnapshot","attempts","restoreTracks","resume","error","_playPromise","shouldRemoveAutoplay_","autoplay","tryToResume","off","clearTimeout","el","querySelector","readyState","setTimeout","setAttribute","videoElementRecycled","one","restorePlayerSnapshot","_AdState","adsReady","shouldResumeToContent","nopreroll_","resumeAfterNoPreroll","timeout","settings","prerollTimeout","_timeout","handleAdsReady","readyForPreroll","afterLoadStart","noPreroll","_this2","_this3","_this4","_this5","cleanupPartial","_playRequested","then","allowVjsAutoplay","Midroll","Postroll","nopostroll_","resumeContent","postrollTimeout","_postrollTimeout","abort","StitchedContentPlayback","StitchedAdRoll","isMiddlewareMediatorSupported$1","VIDEO_EVENTS","getTech","Events","contentIsLive","liveCuePoints","options","normalizeAutoplay","contribAdsPlugin","mergeOptions","videoEvents","eventName","on","initCancelContentPlay","hasStarted","VERSION","reset","srcChanged","currentSrcChanged","somePlayer","IOS_VERSION","isAdPlaying","removeAttribute","getAds","bind","_seenInitialLoadstart","oldValue","newValue","initializeContentupdate","textTrackChangeHandler","textTrackList","featuresNativeTextTracks","ready","removeEventListener","getPlugin","Boolean","Player","getComponent","hasAdsPlugin","registerPlugin","plugin","usingContribAdsMiddleware_","register","decodeB64ToUint8Array","b64Text","s","decodedString","atob","Buffer","from","toString","array","charCodeAt","document","_objCreate","F","o","ParsingError","errorData","message","code","parseTimeStamp","input","computeSeconds","h","m","f","Settings","values","parseOptions","keyValueDelim","groupDelim","groups","kv","parseCue","regionList","oInput","consumeTimeStamp","Errors","BadTimeStamp","skipWhitespace","substr","endTime","k","v","region","alt","vals","vals0","integer","percent","vertical","line","lineAlign","snapToLines","align","position","left","center","middle","right","positionAlign","consumeCueSettings","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","trim","rootDiv","tagStack","appendChild","createTextNode","innerHTML","textContent","pop","parentNode","node","createProcessingInstruction","classes","cl","bgColor","colorName","hasOwnProperty","propName","propValue","className","strongRTLRanges","isStrongRTLChar","charCode","currentRange","determineBidi","cueDiv","nodeStack","text","childNodes","pushNodes","nextTextNode","innerText","StyleBox","CueStyleBox","styleOptions","styles","color","backgroundColor","bottom","display","writingMode","unicodeBidi","applyStyles","div","direction","textAlign","font","whiteSpace","textPos","formatStyle","width","height","move","box","BoxPosition","lh","offsetHeight","offsetWidth","offsetTop","rects","getClientRects","getBoundingClientRect","max","lineHeight","moveBoxToLinePosition","styleBox","containerBox","boxPositions","boxPosition","linePos","mediaElement","trackList","count","computeLinePos","axis","step","round","maxPosition","initialAxis","abs","ceil","reverse","calculatedPercentage","bestPosition","specifiedPosition","percentage","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","findBestPosition","toCSSCompatValues","WebVTT","val","unit","toMove","overlaps","b2","boxes","container","min","reference","getSimpleBoxPosition","StringDecoder","decode","decodeURIComponent","convertCueToDOMTree","cuetext","processCues","overlay","firstChild","removeChild","paddedOverlay","margin","hasBeenReset","displayState","shouldCompute","fontSize","Parser","vttjs","decoder","state","buffer","TextDecoder","reportOrThrowError","onparsingerror","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","listener","index","splice","callbacks","_length","dispose","pipe","destination","_Stream","LineStream","nextNewline","TAB","fromCharCode","parseByterange","byterangeString","parseAttributes","attributes","attr","attrs","RegExp","ParseStream","customParsers","tagMappers","reduce","acc","mapper","mappedLine","newLine","tagType","title","number","playlistType","allowed","URI","uri","BYTERANGE","byterange","RESOLUTION","resolution","BANDWIDTH","dateTimeString","dateTimeObject","IV","Uint32Array","PRECISE","subkey","addParser","_ref","expression","customType","dataParser","segment","addTagMapper","_ref2","camelCaseKeys","str","toUpperCase","setHoldBack","manifest","serverControl","targetDuration","partTargetDuration","hb","phb","minTargetDuration","minPartDuration","lineStream","parseStream","currentMap","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","defineProperty","canUseDOM","SafeNodeList","SafeHTMLCollection","_exenv","EE","__esModule","SafeHTMLElement","HTMLElement","HTMLCollection","NodeList","padStart","repeat","isArrayBufferView","ArrayBuffer","isView","toUint8","byteOffset","byteLength","toHexString","toBinaryString","BigInt","Number","BYTE_TABLE","bytesToNumber","Uint16Array","_temp","_ref$signed","_ref$le","le","fn","total","exponent","numberToBytes","_temp2","_ref2$le","x","byteCount","countBits","byteIndex","bytesToString","escape","stringToBytes","stringIsBytes","unescape","view","concatTypedArrays","buffers","totalLen","buf","tempBuffer","bytesMatch","_temp3","_ref3","_ref3$offset","_ref3$mask","every","bByte","keyCode","searchInput","hasKeyCode","which","foundNamedKey","search","codes","aliases","isEventKey","nameOrCode","alias","EmailIcon","networkName","NAMESPACE","nameStartChar","nameChar","source","tagNamePattern","ParseError","locator","captureStackTrace","XMLReader","copyLocator","lineNumber","columnNumber","parseElementStartPart","currentNSMap","entityReplacer","errorHandler","addAttribute","qname","startIndex","attributeNames","fatalError","addValue","attrName","charAt","warning","setTagName","closed","isHTML","appendElement","domBuilder","localNSMap","qName","nsp","nsPrefix","_copy","XMLNS","startPrefixMapping","XML","ns","startElement","endElement","endPrefixMapping","parseHtmlSpecialContent","elStartEnd","elEndStart","characters","fixSelfClosed","closeMap","target","parseDCC","startCDATA","endCDATA","matchs","reg","lastIndex","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","PlayerWrapper","adsPluginSettings","controller","vjsPlayer","contentTrackingTimer","contentComplete","updateTimeIntervalHandle","updateTimeInterval","seekCheckIntervalHandle","seekCheckInterval","resizeCheckIntervalHandle","resizeCheckInterval","seekThreshold","contentEndedListeners","contentSource","contentSourceType","contentPlayheadTracker","previousTime","seeking","vjsPlayerDimensions","getPlayerWidth","getPlayerHeight","vjsControls","getChild","h5Player","setUpPlayerIntervals","boundContentEndedListener","localContentEndedListener","playerDisposedListener","onReadyForPreroll","onPlayerReady","getSettings","requestMode","requestAds","setInterval","updateCurrentTime","checkForSeeking","checkForResize","diff","onPlayerResize","onContentComplete","clearInterval","onPlayerDisposed","adTimeoutTimeout","intervalsToClear","onPlayerReadyForPreroll","getElementById","getPlayerId","getElementsByClassName","hasAttribute","setSetting","onVolumeChange","onFullscreenChange","isFullscreen","onPlayerEnterFullscreen","onPlayerExitFullscreen","newVolume","muted","onPlayerVolumeChanged","injectAdContainerDiv","adContainerDiv","getContentPlayer","getVolume","setVolume","unmute","mute","togglePlayback","getComputedStyle","getPlayerOptions","toggleFullscreen","exitFullscreen","requestFullscreen","getContentPlayheadTracker","onAdError","adErrorEvent","show","errorMessage","getError","stack","AdError","AdErrorEvent","onAdLog","adEvent","adData","getAdData","getMessage","AdEvent","onAdBreakStart","hide","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","remainingTime","adPosition","totalAds","remainingMinutes","remainingSeconds","podCount","adLabelNofN","playProgressPercent","getPlayerVolume","changeVolume","clientX","showAdContainer","hideAdContainer","getAd","getContentType","showControlsForJSAds","currentAd","getCurrentAd","isLinear","onLinearAdStart","onNonLinearAdLoad","disableAdControls","controlName","getClassRegexp","elementHasClass","classToAdd","classToRemove","classRegexp","getAdContainerDiv","setShowCountdown","showCountdownIn","pkg","_typeof","Symbol","iterator","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","Type","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","LOADED","onAdLoaded","STARTED","COMPLETE","onAdComplete","SKIPPED","LOG","PAUSED","onAdPaused","RESUMED","onAdResumed","initAdsManager","preventLateAdStart","adsManagerLoadedCallback","onErrorLoadingAds","destroy","initWidth","initHeight","ViewMode","NORMAL","initializeAdDisplayContainer","adError","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","playContent","onAdPlayheadTrackerInterval","onNonLinearAdStart","getRemainingTime","getDuration","getAdPodInfo","getAdPosition","getTotalAds","onAdPlayheadUpdated","getCuePoints","includes","resize","screen","FULLSCREEN","setAdBreakReadyListener","isAdMuted","pauseAds","resumeAds","initialize","playAdBreak","Controller","contentAndAdsEndedListeners","isMobile","navigator","userAgent","isIos","initWithSettings","contribAdsDefaults","extend","contribAdsSettings","adUi","IMA_DEFAULTS","warnAboutDeprecatedSettings","setContentWithAdTag","adTag","setContentWithAdsResponse","setContentWithAdsRequest","addContentAndAdsEndedListener","changeAdTag","pauseAd","resumeAd","adWillAutoplay","adWillPlayMuted","ImaPlugin","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","item","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","rtv","classNames","classNamesSet","base","nodeClassNames","matches","nodeClassNamesSet","createDocumentFragment","createComment","createCDATASection","createAttribute","specified","createEntityReference","pl","createAttributeNS","getAttributeNode","removeAttributeNode","_appendSingleChild","setAttributeNodeNS","removeAttributeNS","old","getAttributeNodeNS","hasAttributeNS","getAttributeNS","setAttributeNS","getElementsByTagName","getElementsByTagNameNS","substringData","insertData","replaceData","deleteData","splitText","newText","newNode","$$length","getTextContent","setPrototypeOf","writable","configurable","doccy","minDoc","topLevel","browserApi","hooks_","hooks","removeHook","FullscreenApi","prefixed","apiMap","specApi","history","log$1","createLogger$1","logByType","level","lvl","levels","lvlRegExp","unshift","info","LogByTypeFactory","createLogger","subname","all","fname","historyItem","clear","disable","enable","_len2","_key2","_len3","_key3","_len4","_key4","isObject","each","assign","isPlain","computedStyle","computedStyleValue","getPropertyValue","USER_AGENT","webkitVersionMap","appleWebkitVersion","IS_IPOD","ANDROID_VERSION","major","minor","IS_NATIVE_ANDROID","IS_FIREFOX","IS_EDGE","IS_CHROME","CHROME_VERSION","IE_VERSION","IS_WINDOWS","TOUCH_ENABLED","isReal","maxTouchPoints","DocumentTouch","IS_IPAD","IS_IPHONE","IS_ANY_SAFARI","freeze","isNonBlankString","throwIfWhitespace","isEl","createQuerier","selector","ctx","createEl","properties","content","getOwnPropertyNames","appendContent","prependTo","classToCheck","classList","contains","add","toggleClass","classToToggle","setAttributes","attrValue","getAttributes","knownBooleans","attrVal","attribute","blockTextSelection","body","focus","onselectstart","unblockTextSelection","rect","findPosition","offsetParent","fullscreenElement","offsetLeft","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","wait","vjs","setWindowLoaded","FakeWeakMap","createStyleElement","setTextContent","styleSheet","cssText","_guid","newGUID","WeakMap","vdata","performance","now","access","_supportsPassive","DomData","_cleanUpEvents","elem","handlers","dispatcher","detachEvent","disabled","_handleMultipleEvents","fixEvent","fixed_","returnTrue","returnFalse","preventDefault","srcElement","relatedTarget","fromElement","toElement","defaultPrevented","stopPropagation","stopImmediatePropagation","scrollLeft","clientLeft","clientY","scrollTop","clientTop","passiveEvents","guid","hash","handlersCopy","supportsPassive","passive","attachEvent","removeType","elemData","bubbles","targetData","func","any","EVENT_MAP","uid","bound","throttle","last","EventTarget$2","allowedEvents_","ael","dispatchEvent","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","changes","to","stateful","defaultState","handleStateChanged","w","toTitleCase$1","mergeOptions$3","MapSham","map_","thisArg","Map$1","SetSham","set_","Set$1","Set","Component$1","Component","player_","isDisposed_","parentComponent_","handleLanguagechange","children_","childIndex_","childNameIndex_","setTimeoutIds_","setIntervalIds_","rafIds_","namedRafs_","clearingTimersOnDispose_","initChildren","reportTouchActivity","enableTouchActivity","readyQueue_","isDisposed","localize","tokens","defaultValue","languages","primaryCode","primaryLang","localizedString","ret","contentEl","contentEl_","children","getChildById","getDescendant","currentChild","addChild","component","componentName","componentClassName","componentClass","ComponentClass","childFound","compEl","workingChildren","parentOptions","Tech","some","wchild","isTech","playerOptions","buildCSSClass","sync","isReady_","triggerReady","readyQueue","lockShowing","unlockShowing","num","skipListeners","dimension","dimensions","widthOrHeight","pxIndex","currentDimension","computedWidthOrHeight","rule","currentDimensions","blur","handleKeyDown","handleKeyPress","emitTapEvents","couldBeTap","touchStart","firstTouch","touches","xdiff","ydiff","sqrt","noTap","reportUserActivity","touchHolding","touchEnd","timeoutId","clearTimersOnDispose_","interval","intervalId","requestAnimationFrame","supportsRaf_","requestNamedAnimationFrame","cancelNamedAnimationFrame","cancelAnimationFrame","_this6","idName","cancelName","registerComponent","ComponentToRegister","reason","isComp","isPrototypeOf","components_","players","playerNames","pname","getRange","valueIndex","ranges","rangeIndex","maxIndex","rangeCheck","createTimeRangesObj","timeRangesObj","createTimeRanges","bufferedPercent","buffered","bufferedDuration","MediaError","defaultMessages","status","errorTypes","1","2","3","4","5","errNum","isPromise","silencePromise","trackToJson_","textTrackConverter","trackEls","trackObjs","trackEl","addedTrack","addRemoteTextTrack","addCue","ModalDialog","_Component","handleKeyDown_","close_","close","opened_","hasBeenOpened_","hasBeenFilled_","closeable","uncloseable","MODAL_CLASS_NAME","role","descEl_","description","tabIndex","label","previouslyActiveEl_","open","fillAlways","fill","wasPlaying_","pauseOnOpen","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_","addTrack","labelchange_","removeTrack","rtrack","l","getTrackById","change","addtrack","removetrack","labelchange","disableOthers$1","enabled","AudioTrackList","_TrackList","changing_","enabledChange_","disableOthers","selected","VideoTrackList","selectedChange_","TextTrackList","queueChange_","triggerSelectedlanguagechange","triggerSelectedlanguagechange_","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","props","details","protocol","host","getAbsoluteURL","getFileExtension","isCrossOrigin","winLoc","urlInfo","Url","parseCues","srcContent","errors","groupCollapsed","groupEnd","loadTrack","crossOrigin","cors","withCredentials","err","response","responseBody","loaded_","TextTrack","_Track","srclang","default_","activeCues_","preload_","preloadTextTracks","activeCues","changed","timeupdateHandler","rvf_","requestVideoFrameCallback","stopTracking","startTracking","newMode","ct","active","cancelVideoFrameCallback","originalCue","originalCue_","removeCue","_removeCue","cuechange","newEnabled","newSelected","HTMLTrackElement","load","NONE","LOADING","ERROR","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","emulateTextTracks","autoRemoteTextTracks_","initTrackListeners","nativeControlsForTouch","triggerSourceset","manualProgress","manualProgressOff","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","duration_","manualTimeUpdates","manualTimeUpdatesOff","currentTimeInterval","manuallyTriggered","clearTracks","removeRemoteTextTrack","cleanupAutoTextTracks","setCrossOrigin","error_","played","setScrubbing","scrubbing","setCurrentTime","trackListChanges","addWebVttScript_","script","onload","onerror","remoteTracks","remoteTextTracks","handleAddTrack","handleRemoveTrack","updateDisplay","textTracksChanges","addTextTrack","createTrackHelper","createRemoteTextTrack","manualCleanup","_this7","htmlTrackElement","remoteTextTrackEls","getVideoPlaybackQuality","requestPictureInPicture","PromiseClass","Promise","reject","disablePictureInPicture","setDisablePictureInPicture","cb","_this8","setPoster","playsinline","setPlaysinline","overrideNativeAudioTracks","overrideNativeVideoTracks","canPlayType","canPlaySource","registerTech","techs_","defaultTechOrder_","videojs","featuresVolumeControl","featuresMuteControl","featuresFullscreenResize","featuresPlaybackRate","featuresSourceset","featuresVideoFrameCallback","withSourceHandlers","_Tech","registerSourceHandler","handler","sourceHandlers","can","selectSourceHandler","canHandleSource","sh","originalFn","sourceHandler_","nativeSourceHandler","currentSource_","handleSource","middlewares","middlewareInstances","setSourceHelper","lastRun","_middleware","mwFactory","mwrest","mw","mws","_mws$i","mwf","mwi","getOrCreateFactory","_src","mediate","callMethod","middlewareValue","middlewareIterator","executeRight","allowedGetters","allowedSetters","setMuted","allowedMediators","MimetypesKind","opus","ogv","m4v","m4a","caf","oga","m3u8","mpd","jpg","jpeg","gif","png","svg","webp","getMimetype","ext","fixSource","mimetype","MediaLoader","j","techOrder","techName","loadTech_","ClickableComponent","handleMouseOver_","handleMouseOver","handleMouseOut_","handleMouseOut","handleClick_","handleClick","tabIndex_","createControlTextEl","controlTextEl_","controlText_","localizedText","nonIconControl","noUITitleAttributes","enabled_","clickHandler","PosterImage","_ClickableComponent","update","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","dir","Button","BigPlayButton","_Button","mouseused_","handleMouseDown","playToggle","playFocus","CloseButton","PlayToggle","replay","handlePause","handleSeeked","defaultImplementation","seconds","guide","gm","gh","formatTime","TimeDisplay","updateContent","updateTextNode_","span","labelText_","textNode_","time","formattedTime_","oldNode","CurrentTimeDisplay","_TimeDisplay","getCache","DurationDisplay","TimeDivider","RemainingTimeDisplay","displayNegative","remainingTimeDisplay","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_","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","audioPosterMode","audioOnlyMode","isInPictureInPicture","exitPictureInPicture","pictureInPictureEnabled","FullscreenToggle","handleFullscreenChange","fsApi_","fullscreenEnabled","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","createEvent","initEvent","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","localStorage","getItem","setItem","stringify","removeItem","ttDisplay","controlBar","subsCapsBtn","subsCapsButton","ccBtn","captionsButton","ResizeManager","RESIZE_OBSERVER_AVAILABLE","ResizeObserver","loadListener_","resizeObserver_","debouncedHandler_","immediate","debounced","_later","cancel","debounce","resizeHandler","observe","contentWindow","unloadListener_","unobserve","disconnect","resizeObserver","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","trackingInterval_","timeDiff","nextSeekedFromUser_","lastSeekEnd_","seekableEnds","sort","seekableStarts","behindLiveEdge","sourcesetLoad","srcUrls","innerHTMLDescriptorPolyfill","dummy","docFrag","getDescriptor","priority","descriptor","getOwnPropertyDescriptor","firstSourceWatch","resetSourceWatch_","innerDescriptor","HTMLMediaElement","getInnerHTMLDescriptor","appendWrapper","appendFn","retval","srcDescriptorPolyfill","setupSourceset","resetSourceset_","srcDescriptor","getSrcDescriptor","oldSetAttribute","oldLoad","defineLazyProperty","setter","Html5","crossoriginTracks","initNetworkState_","handleLateInit_","enableSourceset","setupSourcesetHandling_","isScrubbing_","nodes","nodesLength","removeNodes","proxyNativeTracks_","restoreMetadataTracksInIOSNativePlayer_","setControls","proxyWebkitFullscreen_","disposeMediaElement","metadataTracksPreFullscreenState","takeMetadataTrackSnapshot","storedMode","restoreTrackMode","storedTrack","overrideNative_","override","lowerCaseType","proxyNativeTracksForType_","elTracks","techTracks","currentTarget","removeOldTracks","removeTracks","found","playerElIngest","movingMediaElementInDOM","clone","techId","playerId","preload","settingsAttrs","networkState","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","isScrubbing","fastSeek","checkProgress","NaN","endFn","beginFn","webkitPresentationMode","nativeIOSFullscreen","supportsFullScreen","webkitEnterFullScreen","enterFullScreen","HAVE_METADATA","exitFullScreen","webkitDisplayingFullscreen","webkitExitFullScreen","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_","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_","techOptions","loop","techCanOverridePoster","TechClass","handleTechReady_","textTracksJson_","eventObj","handleTechLoadStart_","handleTechSourceset_","handleTechWaiting_","handleTechEnded_","handleTechSeeking_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechFullscreenError_","handleTechEnterPictureInPicture_","handleTechLeavePictureInPicture_","handleTechError_","handleTechPosterChange_","handleTechTextData_","handleTechRateChange_","usingNativeControls","addTechControlsListeners_","safety","removeTechControlsListeners_","manualAutoplay_","promise","resolveMuted","previouslyMuted","restoreMuted","mutedPromise","updateSourceCaches_","matchingSources","findMimetype","sourceElSources","sourceEls","matchingSourceEls","sourceObj","updateSourceCaches","playerSrc","currentSource","eventSrc","lastSource_","techSrc","techGet","request","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","resolve","play_","_this11","isSrcReady","waitToPlay_","runPlayTerminatedQueue_","runPlayCallbacks_","queue","q","percentAsDecimal","_muted","defaultMuted","_defaultMuted","isFS","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_","resetProgressBar_","resetPlaybackRate_","resetVolumeBar_","_this$controlBar","durationDisplay","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","markPluginAsActive","triggerSetupEvent","before","createPluginFactory","PluginSubClass","instance","getEventHash","Plugin","isBasic","basicPluginWrapper","createBasicPlugin","deregisterPlugin","getPlugins","getPluginVersion","BASE_PLUGIN_NAME","hasPlugin","normalizeId","getPlayer","defaultView","PlayerComponent","hook","hookOnce","original","getPlayers","nId","_tag","_player","getAllPlayers","comp","writeable","subClassMethods","methods","super_","addLanguage","_mergeOptions","createTimeRange","setFormatTime","customImplementation","resetFormatTime","EventTarget","xhr","resolveUrl","resolveManifestRedirect","handleManifestRedirect","req","responseURL","logger","filterRanges","timeRanges","findRange","TIME_FUDGE_FACTOR","findNextRange","printableRange","range","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","forEachMediaGroup","mediaType","groupKey","labelKey","mediaProperties","setupMediaPlaylist","playlistErrors_","addPropertiesToMaster","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","lastPart","lastDuration","PlaylistLoader","vhs","logger_","_options","_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","Range","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","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","compareSidxEntry","oldSidxMapping","newSidxMapping","currentSidxInfo","savedSidxInfo","sidxInfo","DashPlaylistLoader","srcUrlOrPlaylist","masterPlaylistLoader","masterPlaylistLoader_","isMaster_","refreshXml_","refreshMedia_","loadedPlaylists_","srcUrl","sidxMapping_","childPlaylist_","requestErrored_","addSidxSegments_","sidxKey","fin","sidxMapping","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_","done","utcTiming","clientOffset_","serverTime","oldMaster","newMaster","masterXml","clientOffset","previousManifest","manifestUri","parseMasterXml","noChanges","minimumUpdatePeriod","timelineStarts","playlistUpdate","group","_playlistUpdate","updateMaster","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","factory","objectUrl","createObjectURL","Blob","blob","BlobBuilder","getBlob","worker","Worker","objURL","terminate","revokeObjectURL","getWorkerString","TransmuxWorker","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","pow","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","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","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","idx","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","d","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","globalThis","global","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","table","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","onmessage","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","objects","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","cmp","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_","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_","updating","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","def","captionService","createCaptionsTrackIfNotExists","captionArray","addCaptionData","handleId3_","inBandMetadataTrackDispatchType","createMetadataTrackIfNotExists","processMetadataQueue_","callQueue","fun","loadQueue","getCurrentMediaInfo_","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","onError","_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","VTTSegmentLoader","_SegmentLoader","subtitlesTrack_","featuresNativeTextTracks_","combinedByteLength","combinedSegment","timestampOffsetForTimeline","skipEmptySegments_","stopForError","loadHandler","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","tables","encTable","decTable","sbox","sboxInv","th","precompute","_tables","keyLen","rcon","encKey","decKey","encrypted0","encrypted1","encrypted2","encrypted3","out","a2","c2","nInnerRounds","kIndex","table0","table1","table2","table3","AsyncStream","jobs","timeout_","processJob_","job","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","_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_","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","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","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","race","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","qualityLevels_","addQualityLevel","dash","convertToProgramTime","VhsSourceHandler","localOptions","_videojs$mergeOptions","_videojs$mergeOptions2","_videojs$mergeOptions3","_videojs$mergeOptions4","_videojs$mergeOptions5","legacyOverrideNative","supportedType","initPlugin","lastCalled","loadedMetadataHandler","cleanupEvents","reloadSourceOnError","_Modal","_Modal2","__extends","extendStatics","__","AssertionError","_super","assert","FacebookIcon","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","PinterestShareButton","_a","windowWidth","windowHeight","cueShim","regionShim","nativeVTTCue","nativeVTTRegion","shim","restore","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","onabort","ontimeout","username","password","setRequestHeader","send","forEachArray","__assign","__awaiter","_arguments","P","generator","fulfilled","rejected","__generator","g","sent","trys","ops","verb","op","__rest","getOwnPropertySymbols","propertyIsEnumerable","getBoxPositionOnWindowCenter","outerWidth","screenLeft","outerHeight","screenTop","getBoxPositionOnScreenCenter","windowOpen","onClose","configRest","toolbar","directories","menubar","scrollbars","resizable","centerscreen","chrome","shareDialog","interval_1","ShareButton","openShareDialog","link","onShareWindowClose","_b","_c","windowPosition","_d","beforeOnClick","networkLink","onClick","openShareDialogOnClick","returnVal","render","disabledStyle","forwardedRef","resetButtonStyle","rest","newClassName","newStyle","border","padding","cursor","ref","defaultProps","optsMap","CreatedButton","passedProps","displayName","PinterestIcon","WhatsappShareButton","_createClass","_react","_propTypes2","_interopRequireDefault","focusManager","_interopRequireWildcard","_scopeTab2","ariaAppHider","_safeHTMLElement","_safeHTMLElement2","_portalOpenInstances2","newObj","CLASS_NAMES","ariaHiddenInstances","ModalPortal","_classCallCheck","ReferenceError","_possibleConstructorReturn","getPrototypeOf","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","isOpen","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","_inherits","prevProps","prevState","_props","_props2","overlayClassName","defaultStyles","contentStyles","overlayStyles","overlayProps","onMouseDown","contentProps","onKeyDown","contentLabel","aria","testId","contentElement","overlayElement","propTypes","isRequired","shape","oneOfType","instanceOf","arrayOf","TwitterShareButton","via","hashtags","related","tabbable","_tabbable2","tail","getActiveElement","shadowRoot","checkSafari","_tabbable","hasOwn","argType","inner","portalOpenInstances","openInstances","resetState","PortalOpenInstances","openInstance","emit","subscribe","subscribers","eventType","subscriber","componentWillMount","getDerivedStateFromProps","componentWillReceiveProps","nextProps","componentWillUpdate","nextState","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","polyfill","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","newApiName","componentDidUpdate","maybeSnapshot","__suppressDeprecationWarning","focusLaterElements","handleFocus","toFocus","modalElement","needToFocus","_arr","after","instances","_arr2","check","_portalOpenInstances","parentElement","EmailShareButton","subject","baseUrl","relativeUrl","nativeURL","protocolLess","removeLocation","newUrl","globalElement","assertNodeList","setElement","useElement","validateElement","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","documentNotReadyOrSSRTesting","_warning","_warning2","nodeList","findTabbableDescendants","tabbableNode","hidesContents","zeroSize","displayValue","scrollWidth","scrollHeight","isNotOverflowing","exception","focusable","isTabIndexNotNaN","rootNode","getRootNode","isTabIndexNaN","FacebookShareButton","quote","hashtag","Reflect","construct","sham","Proxy","valueOf","ownKeys","enumerableOnly","symbols","sym","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","_getPrototypeOf","_assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","NewTarget","_slicedToArray","_arrayWithHoles","_s","_e","_n","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","minLen","arr2","translate","replaceStrings","placeholder","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","prevSrc","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","innerHeight","_clearTimeout","_x3","enableZoom","nextZoomLevel","imageBaseSize","currentZoomMultiplier","nextZoomMultiplier","boxRect","pointerX","pointerY","currentImageOffsetX","currentImageOffsetY","nextImageRealOffsetX","nextImageRealOffsetY","nextOffsetX","nextOffsetY","maxOffsets","getMaxOffsets","isAnimating","keyRepeatLimit","nextSrc","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","onCloseRequest","animationOnKeyInput","onMovePrevRequest","onMoveNextRequest","requestMove","clickOutsideToClose","discourageDownloads","imageTitle","toolbarButtons","reactModalStyle","_onAfterOpen","reactModalProps","_this$state","transitionStyle","transition","keyEndings","images","addImage","imageClass","transforms","bestImageInfo","imageStyle","getTransform","imageLoadErrorMessage","onDoubleClick","onWheel","onDragStart","draggable","loadingIcon","zoom","modalStyle","borderRadius","wrapperClassName","animationDirection","onTouchStart","onTouchMove","onKeyUp","prevLabel","nextLabel","zoomInLabel","zoomOutLabel","closeLabel","imageCaption","mouseEvent","touchPointer","pointerEvent","pointerId","_ref13","_ref13$x","_ref13$y","_ref13$zoom","nextX","scaleFactor","mainSrc","mainSrcThumbnail","prevSrcThumbnail","nextSrcThumbnail","objectToGetParams","entries","htmlElement","cls","htmlClassList","_cls","docBodyClassList","at","classString","classListRef","poll","incrementReference","decrementReference","alert","confirm","prompt","references","referenceId","earliestPresentationTime","firstOffset","referenceCount","getUint16","referenceType","referencedSize","subsegmentDuration","startsWithSap","sapType","sapDeltaTime","WhatsappIcon","merge","flatten","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","channel","easyReader","getLiveRValue","parseByTimeline","_attributes$minimumUp2","_attributes$media","sIndex","S","segmentTime","nextS","identifierPattern","constructTemplateUrl","identifierReplacement","templateValues","RepresentationID","Bandwidth","mapSegment","parseTemplateInfo","Time","presentationTimeOffset","segmentsFromList","_attributes$segmentUr","segmentUrls","segmentUrlMap","segmentUrlObject","segmentUrl","mediaRange","SegmentURLToSegmentObject","generateSegments","segmentAttributes","segmentsFn","template","segmentsInfo","_segmentAttributes","_segmentAttributes$ti","findChildren","getContent","parseDuration","_match$slice","year","month","day","hour","minute","second","parsers","mediaPresentationDuration","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","period","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","decodeResponseBody","charset","contentTypeHeader","_contentType$split","getCharset","reviver","767","OutbrainWidget","memo","dataSrc","dataWidgetId","obUserId","obInstallationKey","obInstallationType","obAppVer","isSecured","obContentUrl","obPortalUrl","obBundleUrl","obLanguage","I","obPsub","obAppId","O","externalId","useRef","useEffect","OBR","extern","renderSpaWidgets","703","resetWarningCache","symbol","elementType","objectOf","oneOf","exact","checkPropTypes","PropTypes","697","414","297","portalClassName","_react2","_reactDom2","_ModalPortal2","_reactLifecyclesCompat","isReact16","createPortal","createHTMLElement","getCreatePortal","unstable_renderSubtreeIntoContainer","getParentElement","Modal","removePortal","unmountComponentAtNode","portalRef","portal","renderPortal","prevParent","nextParent","background","WebkitOverflowScrolling","outline","cssUnit","cm","mm","in","px","pc","em","ex","ch","rem","vw","vh","vmin","vmax","cssValue","lengthWithunit","valueString","parseLengthAndUnit","pulse","loaderName","suffix","animationName","styleEl","sheet","keyFrames","insertRule","createAnimation","loading","speedMultiplier","cssOverride","_f","_g","additionalprops","animation","animationFillMode","directionSetting","alignSetting","findAlignSetting","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","findDirectionSetting","SyntaxError","getCueAsHTML","entities","sax","DOMHandler","cdata","_locator","_toString","chars","java","hander","xmlns","HTML_ENTITIES","XML_ENTITIES","setDocumentLocator","errorImpl","isCallback","Function","build","buildErrorHandler","documentURI","ins","ignorableWhitespace","charNode","skippedEntity","comm","impl","dt","__DOMHandler","isNativeReflectConstruct","_construct","Parent","createIcon","iconConfig","Icon","bgStyle","iconFillColor","viewBox","cx","cy","rx","ry","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","and","or","cap","cup","there4","sim","cong","asymp","ne","equiv","ge","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","_createForOfIteratorHelper","allowArrayLike","it","normalCompletion","didErr","_e2"],"mappings":"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","file":"static/js/7.45c522a9.chunk.js","sourcesContent":["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","/*! @name videojs-contrib-ads @version 6.9.0 @license Apache-2.0 */\nimport videojs from 'video.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\nvar version = \"6.9.0\";\n\n/*\n * Implements the public API available in `player.ads` as well as application state.\n */\nfunction getAds(player) {\n return {\n disableNextSnapshotRestore: false,\n // This is true if we have finished actual content playback but haven't\n // dealt with postrolls and officially ended yet\n _contentEnding: false,\n // This is set to true if the content has officially ended at least once.\n // After that, the user can seek backwards and replay content, but _contentHasEnded\n // remains true.\n _contentHasEnded: false,\n // Tracks if loadstart has happened yet for the initial source. It is not reset\n // on source changes because loadstart is the event that signals to the ad plugin\n // that the source has changed. Therefore, no special signaling is needed to know\n // that there has been one for subsequent sources.\n _hasThereBeenALoadStartDuringPlayerLife: false,\n // Tracks if loadeddata has happened yet for the current source.\n _hasThereBeenALoadedData: false,\n // Tracks if loadedmetadata has happened yet for the current source.\n _hasThereBeenALoadedMetaData: false,\n // Are we after startLinearAdMode and before endLinearAdMode?\n _inLinearAdMode: false,\n // Should we block calls to play on the content player?\n _shouldBlockPlay: false,\n // Was play blocked by the plugin's playMiddleware feature?\n _playBlocked: false,\n // Tracks whether play has been requested for this source,\n // either by the play method or user interaction\n _playRequested: false,\n // This is an estimation of the current ad type being played\n // This is experimental currently. Do not rely on its presence or behavior!\n adType: null,\n VERSION: version,\n reset: function reset() {\n player.ads.disableNextSnapshotRestore = false;\n player.ads._contentEnding = false;\n player.ads._contentHasEnded = false;\n player.ads.snapshot = null;\n player.ads.adType = null;\n player.ads._hasThereBeenALoadedData = false;\n player.ads._hasThereBeenALoadedMetaData = false;\n player.ads._cancelledPlay = false;\n player.ads._shouldBlockPlay = false;\n player.ads._playBlocked = false;\n player.ads.nopreroll_ = false;\n player.ads.nopostroll_ = false;\n player.ads._playRequested = false;\n },\n // Call this when an ad response has been received and there are\n // linear ads ready to be played.\n startLinearAdMode: function startLinearAdMode() {\n player.ads._state.startLinearAdMode();\n },\n // Call this when a linear ad pod has finished playing.\n endLinearAdMode: function endLinearAdMode() {\n player.ads._state.endLinearAdMode();\n },\n // Call this when an ad response has been received but there are no\n // linear ads to be played (i.e. no ads available, or overlays).\n // This has no effect if we are already in an ad break. Always\n // use endLinearAdMode() to exit from linear ad-playback state.\n skipLinearAdMode: function skipLinearAdMode() {\n player.ads._state.skipLinearAdMode();\n },\n // With no arguments, returns a boolean value indicating whether or not\n // contrib-ads is set to treat ads as stitched with content in a single\n // stream. With arguments, treated as a setter, but this behavior is\n // deprecated.\n stitchedAds: function stitchedAds(arg) {\n if (arg !== undefined) {\n videojs.log.warn('Using player.ads.stitchedAds() as a setter is deprecated, ' + 'it should be set as an option upon initialization of contrib-ads.'); // Keep the private property and the settings in sync. When this\n // setter is removed, we can probably stop using the private property.\n\n this.settings.stitchedAds = !!arg;\n }\n\n return this.settings.stitchedAds;\n },\n // Returns whether the video element has been modified since the\n // snapshot was taken.\n // We test both src and currentSrc because changing the src attribute to a URL that\n // AdBlocker is intercepting doesn't update currentSrc.\n videoElementRecycled: function videoElementRecycled() {\n if (player.ads.shouldPlayContentBehindAd(player)) {\n return false;\n }\n\n if (!this.snapshot) {\n throw new Error('You cannot use videoElementRecycled while there is no snapshot.');\n }\n\n var srcChanged = player.tech_.src() !== this.snapshot.src;\n var currentSrcChanged = player.currentSrc() !== this.snapshot.currentSrc;\n return srcChanged || currentSrcChanged;\n },\n // Returns a boolean indicating if given player is in live mode.\n // One reason for this: https://github.com/videojs/video.js/issues/3262\n // Also, some live content can have a duration.\n isLive: function isLive(somePlayer) {\n if (somePlayer === void 0) {\n somePlayer = player;\n }\n\n if (typeof somePlayer.ads.settings.contentIsLive === 'boolean') {\n return somePlayer.ads.settings.contentIsLive;\n } else if (somePlayer.duration() === Infinity) {\n return true;\n } else if (videojs.browser.IOS_VERSION === '8' && somePlayer.duration() === 0) {\n return true;\n }\n\n return false;\n },\n // Return true if content playback should mute and continue during ad breaks.\n // This is only done during live streams on platforms where it's supported.\n // This improves speed and accuracy when returning from an ad break.\n shouldPlayContentBehindAd: function shouldPlayContentBehindAd(somePlayer) {\n if (somePlayer === void 0) {\n somePlayer = player;\n }\n\n if (!somePlayer) {\n throw new Error('shouldPlayContentBehindAd requires a player as a param');\n } else if (!somePlayer.ads.settings.liveCuePoints) {\n return false;\n } else {\n return !videojs.browser.IS_IOS && !videojs.browser.IS_ANDROID && somePlayer.duration() === Infinity;\n }\n },\n // Return true if the ads plugin should save and restore snapshots of the\n // player state when moving into and out of ad mode.\n shouldTakeSnapshots: function shouldTakeSnapshots(somePlayer) {\n if (somePlayer === void 0) {\n somePlayer = player;\n }\n\n return !this.shouldPlayContentBehindAd(somePlayer) && !this.stitchedAds();\n },\n // Returns true if player is in ad mode.\n //\n // Ad mode definition:\n // If content playback is blocked by the ad plugin.\n //\n // Examples of ad mode:\n //\n // * Waiting to find out if an ad is going to play while content would normally be\n // playing.\n // * Waiting for an ad to start playing while content would normally be playing.\n // * An ad is playing (even if content is also playing)\n // * An ad has completed and content is about to resume, but content has not resumed\n // yet.\n //\n // Examples of not ad mode:\n //\n // * Content playback has not been requested\n // * Content playback is paused\n // * An asynchronous ad request is ongoing while content is playing\n // * A non-linear ad is active\n isInAdMode: function isInAdMode() {\n return this._state.isAdState();\n },\n // Returns true if in ad mode but an ad break hasn't started yet.\n isWaitingForAdBreak: function isWaitingForAdBreak() {\n return this._state.isWaitingForAdBreak();\n },\n // Returns true if content is resuming after an ad. This is part of ad mode.\n isContentResuming: function isContentResuming() {\n return this._state.isContentResuming();\n },\n // Deprecated because the name was misleading. Use inAdBreak instead.\n isAdPlaying: function isAdPlaying() {\n return this._state.inAdBreak();\n },\n // Returns true if an ad break is ongoing. This is part of ad mode.\n // An ad break is the time between startLinearAdMode and endLinearAdMode.\n inAdBreak: function inAdBreak() {\n return this._state.inAdBreak();\n },\n\n /*\n * Remove the poster attribute from the video element tech, if present. When\n * reusing a video element for multiple videos, the poster image will briefly\n * reappear while the new source loads. Removing the attribute ahead of time\n * prevents the poster from showing up between videos.\n *\n * @param {Object} player The videojs player object\n */\n removeNativePoster: function removeNativePoster() {\n var tech = player.$('.vjs-tech');\n\n if (tech) {\n tech.removeAttribute('poster');\n }\n },\n debug: function debug() {\n if (this.settings.debug) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && typeof args[0] === 'string') {\n videojs.log('ADS: ' + args[0]);\n } else {\n videojs.log.apply(videojs, ['ADS:'].concat(args));\n }\n }\n }\n };\n}\n\n/*\nThe goal of this feature is to make player events work as an integrator would\nexpect despite the presense of ads. For example, an integrator would expect\nan `ended` event to happen once the content is ended. If an `ended` event is sent\nas a result of a preroll ending, that is a bug. The `redispatch` method should recognize\nsuch `ended` events and prefix them so they are sent as `adended`, and so on with\nall other player events.\n*/\n// Cancel an event.\n// Video.js wraps native events. This technique stops propagation for the Video.js event\n// (AKA player event or wrapper event) while native events continue propagating.\nvar cancelEvent = function cancelEvent(player, event) {\n event.isImmediatePropagationStopped = function () {\n return true;\n };\n\n event.cancelBubble = true;\n\n event.isPropagationStopped = function () {\n return true;\n };\n}; // Redispatch an event with a prefix.\n// Cancels the event, then sends a new event with the type of the original\n// event with the given prefix added.\n// The inclusion of the \"state\" property should be removed in a future\n// major version update with instructions to migrate any code that relies on it.\n// It is an implementation detail and relying on it creates fragility.\n\n\nvar prefixEvent = function prefixEvent(player, prefix, event) {\n cancelEvent(player, event);\n player.trigger({\n type: prefix + event.type,\n originalEvent: event\n });\n}; // Playing event\n// Requirements:\n// * Normal playing event when there is no preroll\n// * No playing event before preroll\n// * At least one playing event after preroll\n\n\nvar handlePlaying = function handlePlaying(player, event) {\n if (player.ads.isInAdMode()) {\n if (player.ads.isContentResuming()) {\n // Prefix playing event when switching back to content after postroll.\n if (player.ads._contentEnding) {\n prefixEvent(player, 'content', event);\n } // Prefix all other playing events during ads.\n\n } else {\n prefixEvent(player, 'ad', event);\n }\n }\n}; // Ended event\n// Requirements:\n// * A single ended event when there is no postroll\n// * No ended event before postroll\n// * A single ended event after postroll\n\n\nvar handleEnded = function handleEnded(player, event) {\n if (player.ads.isInAdMode()) {\n // Cancel ended events during content resuming. Normally we would\n // prefix them, but `contentended` has a special meaning. In the\n // future we'd like to rename the existing `contentended` to\n // `readyforpostroll`, then we could remove the special `resumeended`\n // and do a conventional content prefix here.\n if (player.ads.isContentResuming()) {\n cancelEvent(player, event); // Important: do not use this event outside of videojs-contrib-ads.\n // It will be removed and your code will break.\n // Ideally this would simply be `contentended`, but until\n // `contentended` no longer has a special meaning it cannot be\n // changed.\n\n player.trigger('resumeended'); // Ad prefix in ad mode\n } else {\n prefixEvent(player, 'ad', event);\n } // Prefix ended due to content ending before postroll check\n\n } else if (!player.ads._contentHasEnded && !player.ads.stitchedAds()) {\n // This will change to cancelEvent after the contentended deprecation\n // period (contrib-ads 7)\n prefixEvent(player, 'content', event); // Content ended for the first time, time to check for postrolls\n\n player.trigger('readyforpostroll');\n }\n}; // handleLoadEvent is used for loadstart, loadeddata, and loadedmetadata\n// Requirements:\n// * Initial event is not prefixed\n// * Event due to ad loading is prefixed\n// * Event due to content source change is not prefixed\n// * Event due to content resuming is prefixed\n\n\nvar handleLoadEvent = function handleLoadEvent(player, event) {\n // Initial event\n if (event.type === 'loadstart' && !player.ads._hasThereBeenALoadStartDuringPlayerLife || event.type === 'loadeddata' && !player.ads._hasThereBeenALoadedData || event.type === 'loadedmetadata' && !player.ads._hasThereBeenALoadedMetaData) {\n return; // Ad playing\n } else if (player.ads.inAdBreak()) {\n prefixEvent(player, 'ad', event); // Source change\n } else if (player.currentSrc() !== player.ads.contentSrc) {\n return; // Content resuming\n } else {\n prefixEvent(player, 'content', event);\n }\n}; // Play event\n// Requirements:\n// * Play events have the \"ad\" prefix when an ad is playing\n// * Play events have the \"content\" prefix when content is resuming\n// Play requests are unique because they represent user intention to play. They happen\n// because the user clicked play, or someone called player.play(), etc. It could happen\n// multiple times during ad loading, regardless of where we are in the process. With our\n// current architecture, this could cause the content to start playing.\n// Therefore, contrib-ads must always either:\n// - cancelContentPlay if there is any possible chance the play caused the\n// content to start playing, even if we are technically in ad mode. In order for\n// that to happen, play events need to be unprefixed until the last possible moment.\n// - use playMiddleware to stop the play from reaching the Tech so there is no risk\n// of the content starting to play.\n// Currently, playMiddleware is only supported on desktop browsers with\n// video.js after version 6.7.1.\n\n\nvar handlePlay = function handlePlay(player, event) {\n if (player.ads.inAdBreak()) {\n prefixEvent(player, 'ad', event); // Content resuming\n } else if (player.ads.isContentResuming()) {\n prefixEvent(player, 'content', event);\n }\n}; // Handle a player event, either by redispatching it with a prefix, or by\n// letting it go on its way without any meddling.\n\n\nfunction redispatch(event) {\n // Events with special treatment\n if (event.type === 'playing') {\n handlePlaying(this, event);\n } else if (event.type === 'ended') {\n handleEnded(this, event);\n } else if (event.type === 'loadstart' || event.type === 'loadeddata' || event.type === 'loadedmetadata') {\n handleLoadEvent(this, event);\n } else if (event.type === 'play') {\n handlePlay(this, event); // Standard handling for all other events\n } else if (this.ads.isInAdMode()) {\n if (this.ads.isContentResuming()) {\n // Event came from snapshot restore after an ad, use \"content\" prefix\n prefixEvent(this, 'content', event);\n } else {\n // Event came from ad playback, use \"ad\" prefix\n prefixEvent(this, 'ad', event);\n }\n }\n}\n\n/*\nThis feature sends a `contentupdate` event when the player source changes.\n*/\n// Start sending contentupdate events\nfunction initializeContentupdate(player) {\n // Keep track of the current content source\n // If you want to change the src of the video without triggering\n // the ad workflow to restart, you can update this variable before\n // modifying the player's source\n player.ads.contentSrc = player.currentSrc();\n player.ads._seenInitialLoadstart = false; // Check if a new src has been set, if so, trigger contentupdate\n\n var checkSrc = function checkSrc() {\n if (!player.ads.inAdBreak()) {\n var src = player.currentSrc();\n\n if (src !== player.ads.contentSrc) {\n if (player.ads._seenInitialLoadstart) {\n player.trigger({\n type: 'contentchanged'\n });\n }\n\n player.trigger({\n type: 'contentupdate',\n oldValue: player.ads.contentSrc,\n newValue: src\n });\n player.ads.contentSrc = src;\n }\n\n player.ads._seenInitialLoadstart = true;\n }\n }; // loadstart reliably indicates a new src has been set\n\n\n player.on('loadstart', checkSrc);\n}\n\n/**\n * Current tcfData returned from CMP\n * Updated on event listener rather than having to make an asyc\n * check within the macro resolver\n */\n\nvar tcData = {};\n/**\n * Sets up a proxy for the TCF API in an iframed player, if a parent frame\n * that has implemented the TCF API is detected\n * https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#is-there-a-sample-iframe-script-call-to-the-cmp-api\n */\n\nvar proxyTcfApi = function proxyTcfApi(_) {\n if (videojs.dom.isInFrame() && typeof window.__tcfapi !== 'function') {\n var frame = window;\n var cmpFrame;\n var cmpCallbacks = {};\n\n while (frame) {\n try {\n if (frame.frames.__tcfapiLocator) {\n cmpFrame = frame;\n break;\n }\n } catch (ignore) {// empty\n }\n\n if (frame === window.top) {\n break;\n }\n\n frame = frame.parent;\n }\n\n if (!cmpFrame) {\n return;\n }\n\n window.__tcfapi = function (cmd, version, callback, arg) {\n var callId = Math.random() + '';\n var msg = {\n __tcfapiCall: {\n command: cmd,\n parameter: arg,\n version: version,\n callId: callId\n }\n };\n cmpCallbacks[callId] = callback;\n cmpFrame.postMessage(msg, '*');\n };\n\n window.addEventListener('message', function (event) {\n var json = {};\n\n try {\n json = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;\n } catch (ignore) {// empty\n }\n\n var payload = json.__tcfapiReturn;\n\n if (payload) {\n if (typeof cmpCallbacks[payload.callId] === 'function') {\n cmpCallbacks[payload.callId](payload.returnValue, payload.success);\n cmpCallbacks[payload.callId] = null;\n }\n }\n }, false);\n }\n};\n/**\n * Sets up event listener for changes to consent data.\n */\n\n\nvar listenToTcf = function listenToTcf() {\n proxyTcfApi();\n\n if (typeof window.__tcfapi === 'function') {\n window.__tcfapi('addEventListener', 2, function (data, success) {\n if (success) {\n tcData = data;\n }\n });\n }\n};\n\n/*\nThis feature provides an optional method for ad plugins to insert run-time values\ninto an ad server URL or configuration.\n*/\n\nvar uriEncodeIfNeeded = function uriEncodeIfNeeded(value, uriEncode) {\n if (uriEncode) {\n return encodeURIComponent(value);\n }\n\n return value;\n}; // Add custom field macros to macros object\n// based on given name for custom fields property of mediainfo object.\n\n\nvar customFields = function customFields(mediainfo, macros, customFieldsName) {\n if (mediainfo && mediainfo[customFieldsName]) {\n var fields = mediainfo[customFieldsName];\n var fieldNames = Object.keys(fields);\n\n for (var i = 0; i < fieldNames.length; i++) {\n var tag = '{mediainfo.' + customFieldsName + '.' + fieldNames[i] + '}';\n macros[tag] = fields[fieldNames[i]];\n }\n }\n}; // Public method that ad plugins use for ad macros.\n// \"string\" is any string with macros to be replaced\n// \"uriEncode\" if true will uri encode macro values when replaced\n// \"customMacros\" is a object with custom macros and values to map them to\n// - For example: {'{five}': 5}\n// Return value is is \"string\" with macros replaced\n// - For example: adMacroReplacement('{player.id}') returns a string of the player id\n\n\nfunction adMacroReplacement(string, uriEncode, customMacros) {\n var _this = this;\n\n var defaults = {}; // Get macros with defaults e.g. {x=y}, store values and replace with standard macros\n\n string = string.replace(/{([^}=]+)=([^}]+)}/g, function (match, name, defaultVal) {\n defaults[\"{\" + name + \"}\"] = defaultVal;\n return \"{\" + name + \"}\";\n });\n\n if (uriEncode === undefined) {\n uriEncode = false;\n }\n\n var macros = {};\n\n if (customMacros !== undefined) {\n macros = customMacros;\n } // Static macros\n\n\n macros['{player.id}'] = this.options_['data-player'] || this.id_;\n macros['{player.height}'] = this.currentHeight();\n macros['{player.width}'] = this.currentWidth();\n macros['{mediainfo.id}'] = this.mediainfo ? this.mediainfo.id : '';\n macros['{mediainfo.name}'] = this.mediainfo ? this.mediainfo.name : '';\n macros['{mediainfo.duration}'] = this.mediainfo ? this.mediainfo.duration : '';\n macros['{player.duration}'] = this.duration();\n macros['{player.pageUrl}'] = videojs.dom.isInFrame() ? document.referrer : window.location.href;\n macros['{playlistinfo.id}'] = this.playlistinfo ? this.playlistinfo.id : '';\n macros['{playlistinfo.name}'] = this.playlistinfo ? this.playlistinfo.name : '';\n macros['{timestamp}'] = new Date().getTime();\n macros['{document.referrer}'] = document.referrer;\n macros['{window.location.href}'] = window.location.href;\n macros['{random}'] = Math.floor(Math.random() * 1000000000000);\n ['description', 'tags', 'reference_id', 'ad_keys'].forEach(function (prop) {\n if (_this.mediainfo && _this.mediainfo[prop]) {\n macros[\"{mediainfo.\" + prop + \"}\"] = _this.mediainfo[prop];\n } else if (defaults[\"{mediainfo.\" + prop + \"}\"]) {\n macros[\"{mediainfo.\" + prop + \"}\"] = defaults[\"{mediainfo.\" + prop + \"}\"];\n } else {\n macros[\"{mediainfo.\" + prop + \"}\"] = '';\n }\n }); // Custom fields in mediainfo\n\n customFields(this.mediainfo, macros, 'custom_fields');\n customFields(this.mediainfo, macros, 'customFields'); // tcf macros\n\n Object.keys(tcData).forEach(function (key) {\n macros[\"{tcf.\" + key + \"}\"] = tcData[key];\n }); // Ad servers commonly want this bool as an int\n\n macros['{tcf.gdprAppliesInt}'] = tcData.gdprApplies ? 1 : 0; // Go through all the replacement macros and apply them to the string.\n // This will replace all occurrences of the replacement macros.\n\n for (var i in macros) {\n string = string.split(i).join(uriEncodeIfNeeded(macros[i], uriEncode));\n } // Page variables\n\n\n string = string.replace(/{pageVariable\\.([^}]+)}/g, function (match, name) {\n var value;\n var context = window;\n var names = name.split('.'); // Iterate down multiple levels of selector without using eval\n // This makes things like pageVariable.foo.bar work\n\n for (var _i = 0; _i < names.length; _i++) {\n if (_i === names.length - 1) {\n value = context[names[_i]];\n } else {\n context = context[names[_i]];\n }\n }\n\n var type = typeof value; // Only allow certain types of values. Anything else is probably a mistake.\n\n if (value === null) {\n return 'null';\n } else if (value === undefined) {\n if (defaults[\"{pageVariable.\" + name + \"}\"]) {\n return defaults[\"{pageVariable.\" + name + \"}\"];\n }\n\n videojs.log.warn(\"Page variable \\\"\" + name + \"\\\" not found\");\n return '';\n } else if (type !== 'string' && type !== 'number' && type !== 'boolean') {\n videojs.log.warn(\"Page variable \\\"\" + name + \"\\\" is not a supported type\");\n return '';\n }\n\n return uriEncodeIfNeeded(String(value), uriEncode);\n }); // Replace defaults\n\n for (var defaultVal in defaults) {\n string = string.replace(defaultVal, defaults[defaultVal]);\n }\n\n return string;\n}\n\n/*\n* This feature allows metadata text tracks to be manipulated once available\n* @see processMetadataTracks.\n* It also allows ad implementations to leverage ad cues coming through\n* text tracks, @see processAdTrack\n**/\nvar cueTextTracks = {};\n/*\n* This feature allows metadata text tracks to be manipulated once they are available,\n* usually after the 'loadstart' event is observed on the player\n* @param player A reference to a player\n* @param processMetadataTrack A callback that performs some operations on a\n* metadata text track\n**/\n\ncueTextTracks.processMetadataTracks = function (player, processMetadataTrack) {\n var tracks = player.textTracks();\n\n var setModeAndProcess = function setModeAndProcess(track) {\n if (track.kind === 'metadata') {\n player.ads.cueTextTracks.setMetadataTrackMode(track);\n processMetadataTrack(player, track);\n }\n }; // Text tracks are available\n\n\n for (var i = 0; i < tracks.length; i++) {\n setModeAndProcess(tracks[i]);\n } // Wait until text tracks are added\n\n\n tracks.addEventListener('addtrack', function (event) {\n setModeAndProcess(event.track);\n });\n};\n/*\n* Sets the track mode to one of 'disabled', 'hidden' or 'showing'\n* @see https://github.com/videojs/video.js/blob/master/docs/guides/text-tracks.md\n* Default behavior is to do nothing, @override if this is not desired\n* @param track The text track to set the mode on\n*/\n\n\ncueTextTracks.setMetadataTrackMode = function (track) {\n return;\n};\n/*\n* Determines whether cue is an ad cue and returns the cue data.\n* @param player A reference to the player\n* @param cue The full cue object\n* Returns the given cue by default @override if futher processing is required\n* @return {Object} a useable ad cue or null if not supported\n**/\n\n\ncueTextTracks.getSupportedAdCue = function (player, cue) {\n return cue;\n};\n/*\n* Defines whether a cue is supported or not, potentially\n* based on the player settings\n* @param player A reference to the player\n* @param cue The cue to be checked\n* Default behavior is to return true, @override if this is not desired\n* @return {Boolean}\n*/\n\n\ncueTextTracks.isSupportedAdCue = function (player, cue) {\n return true;\n};\n/*\n* Gets the id associated with a cue.\n* @param cue The cue to extract an ID from\n* @returns The first occurance of 'id' in the object,\n* @override if this is not the desired cue id\n**/\n\n\ncueTextTracks.getCueId = function (player, cue) {\n return cue.id;\n};\n/*\n* Checks whether a cue has already been used\n* @param cueId The Id associated with a cue\n**/\n\n\nvar cueAlreadySeen = function cueAlreadySeen(player, cueId) {\n return cueId !== undefined && player.ads.includedCues[cueId];\n};\n/*\n* Indicates that a cue has been used\n* @param cueId The Id associated with a cue\n**/\n\n\nvar setCueAlreadySeen = function setCueAlreadySeen(player, cueId) {\n if (cueId !== undefined && cueId !== '') {\n player.ads.includedCues[cueId] = true;\n }\n};\n/*\n* This feature allows ad metadata tracks to be manipulated in ad implementations\n* @param player A reference to the player\n* @param cues The set of cues to work with\n* @param processCue A method that uses a cue to make some\n* ad request in the ad implementation\n* @param [cancelAdsHandler] A method that dynamically cancels ads in the ad implementation\n**/\n\n\ncueTextTracks.processAdTrack = function (player, cues, processCue, cancelAdsHandler) {\n player.ads.includedCues = {}; // loop over set of cues\n\n for (var i = 0; i < cues.length; i++) {\n var cue = cues[i];\n var cueData = this.getSupportedAdCue(player, cue); // Exit if this is not a supported cue\n\n if (!this.isSupportedAdCue(player, cue)) {\n videojs.log.warn('Skipping as this is not a supported ad cue.', cue);\n return;\n } // Continue processing supported cue\n\n\n var cueId = this.getCueId(player, cue);\n var startTime = cue.startTime; // Skip ad if cue was already used\n\n if (cueAlreadySeen(player, cueId)) {\n videojs.log('Skipping ad already seen with ID ' + cueId);\n return;\n } // Optional dynamic ad cancellation\n\n\n if (cancelAdsHandler) {\n cancelAdsHandler(player, cueData, cueId, startTime);\n } // Process cue as an ad cue\n\n\n processCue(player, cueData, cueId, startTime); // Indicate that this cue has been used\n\n setCueAlreadySeen(player, cueId);\n }\n};\n\nfunction initCancelContentPlay(player, debug) {\n if (debug) {\n videojs.log('Using cancelContentPlay to block content playback');\n } // Listen to play events to \"cancel\" them afterward\n\n\n player.on('play', cancelContentPlay);\n}\n/*\nThis feature makes sure the player is paused during ad loading.\n\nIt does this by pausing the player immediately after a \"play\" where ads will be requested,\nthen signalling that we should play after the ad is done.\n*/\n\nfunction cancelContentPlay() {\n // this function is in the player's context\n if (this.ads._shouldBlockPlay === false) {\n // Only block play if the ad plugin is in a state when content\n // playback should be blocked. This currently means during\n // BeforePrerollState and PrerollState.\n return;\n } // pause playback so ads can be handled.\n\n\n if (!this.paused()) {\n this.ads.debug('Playback was canceled by cancelContentPlay');\n this.pause();\n } // When the 'content-playback' state is entered, this will let us know to play.\n // This is needed if there is no preroll or if it errors, times out, etc.\n\n\n this.ads._cancelledPlay = true;\n}\n\nvar obj = {}; // This reference allows videojs to be mocked in unit tests\n// while still using the available videojs import in the source code\n// @see obj.testHook\n\nvar videojsReference = videojs;\n/**\n * Checks if middleware mediators are available and\n * can be used on this platform.\n * Currently we can only use mediators on desktop platforms.\n */\n\nobj.isMiddlewareMediatorSupported = function () {\n if (videojsReference.browser.IS_IOS || videojsReference.browser.IS_ANDROID) {\n return false;\n } else if ( // added when middleware was introduced in video.js\n videojsReference.use && // added when mediators were introduced in video.js\n videojsReference.middleware && videojsReference.middleware.TERMINATOR) {\n return true;\n }\n\n return false;\n};\n\nobj.playMiddleware = function (player) {\n return {\n setSource: function setSource(srcObj, next) {\n next(null, srcObj);\n },\n callPlay: function callPlay() {\n // Block play calls while waiting for an ad, only if this is an\n // ad supported player\n if (player.ads && player.ads._shouldBlockPlay === true) {\n player.ads.debug('Using playMiddleware to block content playback');\n player.ads._playBlocked = true;\n return videojsReference.middleware.TERMINATOR;\n }\n },\n play: function play(terminated, playPromise) {\n if (player.ads && player.ads._playBlocked && terminated) {\n player.ads.debug('Play call to Tech was terminated.'); // Trigger play event to match the user's intent to play.\n // The call to play on the Tech has been blocked, so triggering\n // the event on the Player will not affect the Tech's playback state.\n\n player.trigger('play'); // At this point the player has technically started\n\n player.addClass('vjs-has-started'); // Reset playBlocked\n\n player.ads._playBlocked = false; // Safari issues a pause event when autoplay is blocked but other browsers\n // do not, so we send a pause for consistency in those cases. This keeps the\n // play button in the correct state if play is rejected.\n } else if (playPromise && playPromise.catch) {\n playPromise.catch(function (e) {\n if (e.name === 'NotAllowedError' && !videojs.browser.IS_SAFARI) {\n player.trigger('pause');\n }\n });\n }\n }\n };\n};\n\nobj.testHook = function (testVjs) {\n videojsReference = testVjs;\n};\n\nvar playMiddleware = obj.playMiddleware,\n isMiddlewareMediatorSupported = obj.isMiddlewareMediatorSupported;\n/**\n * Whether or not this copy of Video.js has the ads plugin.\n *\n * @return {boolean}\n * If `true`, has the plugin. `false` otherwise.\n */\n\nvar hasAdsPlugin = function hasAdsPlugin() {\n // Video.js 6 and 7 have a getPlugin method.\n if (videojs.getPlugin) {\n return Boolean(videojs.getPlugin('ads'));\n } // Video.js 5 does not have a getPlugin method, so check the player prototype.\n\n\n var Player = videojs.getComponent('Player');\n return Boolean(Player && Player.prototype.ads);\n};\n/**\n * Register contrib-ads with Video.js, but provide protection for duplicate\n * copies of the plugin. This could happen if, for example, a stitched ads\n * plugin and a client-side ads plugin are included simultaneously with their\n * own copies of contrib-ads.\n *\n * If contrib-ads detects a pre-existing duplicate, it will not register\n * itself.\n *\n * Ad plugins using contrib-ads and anticipating that this could come into\n * effect should verify that the contrib-ads they are using is of a compatible\n * version.\n *\n * @param {Function} contribAdsPlugin\n * The plugin function.\n *\n * @return {boolean}\n * When `true`, the plugin was registered. When `false`, the plugin\n * was not registered.\n */\n\n\nfunction register(contribAdsPlugin) {\n // If the ads plugin already exists, do not overwrite it.\n if (hasAdsPlugin(videojs)) {\n return false;\n } // Cross-compatibility with Video.js 6/7 and 5.\n\n\n var registerPlugin = videojs.registerPlugin || videojs.plugin; // Register this plugin with Video.js.\n\n registerPlugin('ads', contribAdsPlugin); // Register the play middleware with Video.js on script execution,\n // to avoid a new playMiddleware factory being added for each player.\n // The `usingContribAdsMiddleware_` flag is used to ensure that we only ever\n // register the middleware once - despite the ability to de-register and\n // re-register the plugin itself.\n\n if (isMiddlewareMediatorSupported() && !videojs.usingContribAdsMiddleware_) {\n // Register the play middleware\n videojs.use('*', playMiddleware);\n videojs.usingContribAdsMiddleware_ = true;\n videojs.log.debug('Play middleware has been registered with videojs');\n }\n\n return true;\n}\n\nvar States =\n/*#__PURE__*/\nfunction () {\n function States() {}\n\n States.getState = function getState(name) {\n if (!name) {\n return;\n }\n\n if (States.states_ && States.states_[name]) {\n return States.states_[name];\n }\n };\n\n States.registerState = function registerState(name, StateToRegister) {\n if (typeof name !== 'string' || !name) {\n throw new Error(\"Illegal state name, \\\"\" + name + \"\\\"; must be a non-empty string.\");\n }\n\n if (!States.states_) {\n States.states_ = {};\n }\n\n States.states_[name] = StateToRegister;\n return StateToRegister;\n };\n\n return States;\n}();\n\nvar State =\n/*#__PURE__*/\nfunction () {\n State._getName = function _getName() {\n return 'Anonymous State';\n };\n\n function State(player) {\n this.player = player;\n }\n /*\n * This is the only allowed way to perform state transitions. State transitions usually\n * happen in player event handlers. They can also happen recursively in `init`. They\n * should _not_ happen in `cleanup`.\n */\n\n\n var _proto = State.prototype;\n\n _proto.transitionTo = function transitionTo(NewState) {\n var player = this.player; // Since State is an abstract class, this will refer to\n // the state that is extending this class\n\n this.cleanup(player);\n var newState = new NewState(player);\n player.ads._state = newState;\n player.ads.debug(this.constructor._getName() + ' -> ' + newState.constructor._getName());\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n newState.init.apply(newState, [player].concat(args));\n }\n /*\n * Implemented by subclasses to provide initialization logic when transitioning\n * to a new state.\n */\n ;\n\n _proto.init = function init() {}\n /*\n * Implemented by subclasses to provide cleanup logic when transitioning\n * to a new state.\n */\n ;\n\n _proto.cleanup = function cleanup() {}\n /*\n * Default event handlers. Different states can override these to provide behaviors.\n */\n ;\n\n _proto.onPlay = function onPlay() {};\n\n _proto.onPlaying = function onPlaying() {};\n\n _proto.onEnded = function onEnded() {};\n\n _proto.onAdEnded = function onAdEnded() {};\n\n _proto.onAdsReady = function onAdsReady() {\n videojs.log.warn('Unexpected adsready event');\n };\n\n _proto.onAdsError = function onAdsError() {};\n\n _proto.onAdsCanceled = function onAdsCanceled() {};\n\n _proto.onAdTimeout = function onAdTimeout() {};\n\n _proto.onAdStarted = function onAdStarted() {};\n\n _proto.onContentChanged = function onContentChanged() {};\n\n _proto.onContentResumed = function onContentResumed() {};\n\n _proto.onReadyForPostroll = function onReadyForPostroll() {\n videojs.log.warn('Unexpected readyforpostroll event');\n };\n\n _proto.onNoPreroll = function onNoPreroll() {};\n\n _proto.onNoPostroll = function onNoPostroll() {}\n /*\n * Method handlers. Different states can override these to provide behaviors.\n */\n ;\n\n _proto.startLinearAdMode = function startLinearAdMode() {\n videojs.log.warn('Unexpected startLinearAdMode invocation ' + '(State via ' + this.constructor._getName() + ')');\n };\n\n _proto.endLinearAdMode = function endLinearAdMode() {\n videojs.log.warn('Unexpected endLinearAdMode invocation ' + '(State via ' + this.constructor._getName() + ')');\n };\n\n _proto.skipLinearAdMode = function skipLinearAdMode() {\n videojs.log.warn('Unexpected skipLinearAdMode invocation ' + '(State via ' + this.constructor._getName() + ')');\n }\n /*\n * Overridden by ContentState and AdState. Should not be overriden elsewhere.\n */\n ;\n\n _proto.isAdState = function isAdState() {\n throw new Error('isAdState unimplemented for ' + this.constructor._getName());\n }\n /*\n * Overridden by Preroll and Postroll. Midrolls jump right into the ad break\n * so there is no \"waiting\" state for them.\n */\n ;\n\n _proto.isWaitingForAdBreak = function isWaitingForAdBreak() {\n return false;\n }\n /*\n * Overridden by Preroll, Midroll, and Postroll.\n */\n ;\n\n _proto.isContentResuming = function isContentResuming() {\n return false;\n };\n\n _proto.inAdBreak = function inAdBreak() {\n return false;\n }\n /*\n * Invoke event handler methods when events come in.\n */\n ;\n\n _proto.handleEvent = function handleEvent(type) {\n var player = this.player;\n\n if (type === 'play') {\n this.onPlay(player);\n } else if (type === 'adsready') {\n this.onAdsReady(player);\n } else if (type === 'adserror') {\n this.onAdsError(player);\n } else if (type === 'adscanceled') {\n this.onAdsCanceled(player);\n } else if (type === 'adtimeout') {\n this.onAdTimeout(player);\n } else if (type === 'ads-ad-started') {\n this.onAdStarted(player);\n } else if (type === 'contentchanged') {\n this.onContentChanged(player);\n } else if (type === 'contentresumed') {\n this.onContentResumed(player);\n } else if (type === 'readyforpostroll') {\n this.onReadyForPostroll(player);\n } else if (type === 'playing') {\n this.onPlaying(player);\n } else if (type === 'ended') {\n this.onEnded(player);\n } else if (type === 'nopreroll') {\n this.onNoPreroll(player);\n } else if (type === 'nopostroll') {\n this.onNoPostroll(player);\n } else if (type === 'adended') {\n this.onAdEnded(player);\n }\n };\n\n return State;\n}();\n\nStates.registerState('State', State);\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\n/*\n * This class contains logic for all ads, be they prerolls, midrolls, or postrolls.\n * Primarily, this involves handling startLinearAdMode and endLinearAdMode.\n * It also handles content resuming.\n */\n\nvar AdState =\n/*#__PURE__*/\nfunction (_State) {\n _inheritsLoose(AdState, _State);\n\n function AdState(player) {\n var _this;\n\n _this = _State.call(this, player) || this;\n _this.contentResuming = false;\n _this.waitingForAdBreak = false;\n return _this;\n }\n /*\n * Overrides State.isAdState\n */\n\n\n var _proto = AdState.prototype;\n\n _proto.isAdState = function isAdState() {\n return true;\n }\n /*\n * We end the content-resuming process on the playing event because this is the exact\n * moment that content playback is no longer blocked by ads.\n */\n ;\n\n _proto.onPlaying = function onPlaying() {\n var ContentPlayback = States.getState('ContentPlayback');\n\n if (this.contentResuming) {\n this.transitionTo(ContentPlayback);\n }\n }\n /*\n * If the ad plugin does not result in a playing event when resuming content after an\n * ad, they should instead trigger a contentresumed event to signal that content should\n * resume. The main use case for this is when ads are stitched into the content video.\n */\n ;\n\n _proto.onContentResumed = function onContentResumed() {\n var ContentPlayback = States.getState('ContentPlayback');\n\n if (this.contentResuming) {\n this.transitionTo(ContentPlayback);\n }\n }\n /*\n * Check if we are in an ad state waiting for the ad plugin to start\n * an ad break.\n */\n ;\n\n _proto.isWaitingForAdBreak = function isWaitingForAdBreak() {\n return this.waitingForAdBreak;\n }\n /*\n * Allows you to check if content is currently resuming after an ad break.\n */\n ;\n\n _proto.isContentResuming = function isContentResuming() {\n return this.contentResuming;\n }\n /*\n * Allows you to check if an ad break is in progress.\n */\n ;\n\n _proto.inAdBreak = function inAdBreak() {\n return this.player.ads._inLinearAdMode === true;\n };\n\n return AdState;\n}(State);\n\nStates.registerState('AdState', AdState);\n\nvar ContentState =\n/*#__PURE__*/\nfunction (_State) {\n _inheritsLoose(ContentState, _State);\n\n function ContentState() {\n return _State.apply(this, arguments) || this;\n }\n\n var _proto = ContentState.prototype;\n\n /*\n * Overrides State.isAdState\n */\n _proto.isAdState = function isAdState() {\n return false;\n }\n /*\n * Source change sends you back to preroll checks. contentchanged does not\n * fire during ad breaks, so we don't need to worry about that.\n */\n ;\n\n _proto.onContentChanged = function onContentChanged(player) {\n var BeforePreroll = States.getState('BeforePreroll');\n var Preroll = States.getState('Preroll');\n player.ads.debug('Received contentchanged event (ContentState)');\n\n if (player.paused()) {\n this.transitionTo(BeforePreroll);\n } else {\n this.transitionTo(Preroll, false);\n player.pause();\n player.ads._pausedOnContentupdate = true;\n }\n };\n\n return ContentState;\n}(State);\n\nStates.registerState('ContentState', ContentState);\n\nvar ContentState$1 = States.getState('ContentState');\n\nvar AdsDone =\n/*#__PURE__*/\nfunction (_ContentState) {\n _inheritsLoose(AdsDone, _ContentState);\n\n function AdsDone() {\n return _ContentState.apply(this, arguments) || this;\n }\n\n /*\n * Allows state name to be logged even after minification.\n */\n AdsDone._getName = function _getName() {\n return 'AdsDone';\n }\n /*\n * For state transitions to work correctly, initialization should\n * happen here, not in a constructor.\n */\n ;\n\n var _proto = AdsDone.prototype;\n\n _proto.init = function init(player) {\n // From now on, `ended` events won't be redispatched\n player.ads._contentHasEnded = true;\n player.trigger('ended');\n }\n /*\n * Midrolls do not play after ads are done.\n */\n ;\n\n _proto.startLinearAdMode = function startLinearAdMode() {\n videojs.log.warn('Unexpected startLinearAdMode invocation (AdsDone)');\n };\n\n return AdsDone;\n}(ContentState$1);\n\nStates.registerState('AdsDone', AdsDone);\n\n/*\nThe snapshot feature is responsible for saving the player state before an ad, then\nrestoring the player state after an ad.\n*/\nvar tryToResumeTimeout_;\n/*\n * Returns an object that captures the portions of player state relevant to\n * video playback. The result of this function can be passed to\n * restorePlayerSnapshot with a player to return the player to the state it\n * was in when this function was invoked.\n * @param {Object} player The videojs player object\n */\n\nfunction getPlayerSnapshot(player) {\n var currentTime;\n\n if (videojs.browser.IS_IOS && player.ads.isLive(player)) {\n // Record how far behind live we are\n if (player.seekable().length > 0) {\n currentTime = player.currentTime() - player.seekable().end(0);\n } else {\n currentTime = player.currentTime();\n }\n } else {\n currentTime = player.currentTime();\n }\n\n var tech = player.$('.vjs-tech');\n var tracks = player.textTracks ? player.textTracks() : [];\n var suppressedTracks = [];\n var snapshotObject = {\n ended: player.ended(),\n currentSrc: player.currentSrc(),\n sources: player.currentSources(),\n src: player.tech_.src(),\n currentTime: currentTime,\n type: player.currentType()\n };\n\n if (tech) {\n snapshotObject.style = tech.getAttribute('style');\n }\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n suppressedTracks.push({\n track: track,\n mode: track.mode\n });\n track.mode = 'disabled';\n }\n\n snapshotObject.suppressedTracks = suppressedTracks;\n return snapshotObject;\n}\n/*\n * Attempts to modify the specified player so that its state is equivalent to\n * the state of the snapshot.\n * @param {Object} player - the videojs player object\n * @param {Object} snapshotObject - the player state to apply\n */\n\nfunction restorePlayerSnapshot(player, callback) {\n var snapshotObject = player.ads.snapshot;\n\n if (callback === undefined) {\n callback = function callback() {};\n }\n\n if (player.ads.disableNextSnapshotRestore === true) {\n player.ads.disableNextSnapshotRestore = false;\n delete player.ads.snapshot;\n callback();\n return;\n } // The playback tech\n\n\n var tech = player.$('.vjs-tech'); // the number of[ remaining attempts to restore the snapshot\n\n var attempts = 20;\n var suppressedTracks = snapshotObject.suppressedTracks;\n var trackSnapshot;\n\n var restoreTracks = function restoreTracks() {\n for (var i = 0; i < suppressedTracks.length; i++) {\n trackSnapshot = suppressedTracks[i];\n trackSnapshot.track.mode = trackSnapshot.mode;\n }\n }; // Finish restoring the playback state.\n // This only happens if the content video element was reused for ad playback.\n\n\n var resume = function resume() {\n var currentTime; // Live video on iOS has special logic to try to seek to the right place after\n // an ad.\n\n if (videojs.browser.IS_IOS && player.ads.isLive(player)) {\n if (snapshotObject.currentTime < 0) {\n // Playback was behind real time, so seek backwards to match\n if (player.seekable().length > 0) {\n currentTime = player.seekable().end(0) + snapshotObject.currentTime;\n } else {\n currentTime = player.currentTime();\n }\n\n player.currentTime(currentTime);\n } // iOS live play after restore if player was paused (would not be paused if\n // ad played muted behind ad)\n\n\n if (player.paused()) {\n var playPromise = player.play();\n\n if (playPromise && playPromise.catch) {\n playPromise.catch(function (error) {\n videojs.log.warn('Play promise rejected in IOS snapshot resume', error);\n });\n }\n } // Restore the video position after an ad.\n // We check snapshotObject.ended because the content starts at the beginning again\n // after being restored.\n\n } else if (snapshotObject.ended) {\n // For postrolls, seek to the player's current duration.\n // It could be different from the snapshot's currentTime due to\n // inaccuracy in HLS.\n player.currentTime(player.duration());\n } else {\n // Prerolls and midrolls, just seek to the player time before the ad.\n player.currentTime(snapshotObject.currentTime);\n\n var _playPromise = player.play();\n\n if (_playPromise && _playPromise.catch) {\n _playPromise.catch(function (error) {\n videojs.log.warn('Play promise rejected in snapshot resume', error);\n });\n }\n } // if we added autoplay to force content loading on iOS, remove it now\n // that it has served its purpose\n\n\n if (player.ads.shouldRemoveAutoplay_) {\n player.autoplay(false);\n player.ads.shouldRemoveAutoplay_ = false;\n }\n }; // Determine if the video element has loaded enough of the snapshot source\n // to be ready to apply the rest of the state.\n // This only happens if the content video element was reused for ad playback.\n\n\n var tryToResume = function tryToResume() {\n // tryToResume can either have been called through the `contentcanplay`\n // event or fired through setTimeout.\n // When tryToResume is called, we should make sure to clear out the other\n // way it could've been called by removing the listener and clearing out\n // the timeout.\n player.off('contentcanplay', tryToResume);\n\n if (tryToResumeTimeout_) {\n player.clearTimeout(tryToResumeTimeout_);\n } // Tech may have changed depending on the differences in sources of the\n // original video and that of the ad\n\n\n tech = player.el().querySelector('.vjs-tech');\n\n if (tech.readyState > 1) {\n // some browsers and media aren't \"seekable\".\n // readyState greater than 1 allows for seeking without exceptions\n return resume();\n }\n\n if (tech.seekable === undefined) {\n // if the tech doesn't expose the seekable time ranges, try to\n // resume playback immediately\n return resume();\n }\n\n if (tech.seekable.length > 0) {\n // if some period of the video is seekable, resume playback\n return resume();\n } // delay a bit and then check again unless we're out of attempts\n\n\n if (attempts--) {\n player.setTimeout(tryToResume, 50);\n } else {\n try {\n resume();\n } catch (e) {\n videojs.log.warn('Failed to resume the content after an advertisement', e);\n }\n }\n };\n\n if ('style' in snapshotObject) {\n // overwrite all css style properties to restore state precisely\n tech.setAttribute('style', snapshotObject.style || '');\n } // Determine whether the player needs to be restored to its state\n // before ad playback began. With a custom ad display or burned-in\n // ads, the content player state hasn't been modified and so no\n // restoration is required\n\n\n if (player.ads.videoElementRecycled()) {\n // Snapshot restore is done, so now we're really finished.\n player.one('resumeended', function () {\n delete player.ads.snapshot;\n callback();\n }); // on ios7, fiddling with textTracks too early will cause safari to crash\n\n player.one('contentloadedmetadata', restoreTracks); // adding autoplay guarantees that Safari will load the content so we can\n // seek back to the correct time after ads\n\n if (videojs.browser.IS_IOS && !player.autoplay()) {\n player.autoplay(true); // if we get here, the player was not originally configured to autoplay,\n // so we should remove it after it has served its purpose\n\n player.ads.shouldRemoveAutoplay_ = true;\n } // if the src changed for ad playback, reset it\n\n\n player.src(snapshotObject.sources); // and then resume from the snapshots time once the original src has loaded\n // in some browsers (firefox) `canplay` may not fire correctly.\n // Reace the `canplay` event with a timeout.\n\n player.one('contentcanplay', tryToResume);\n tryToResumeTimeout_ = player.setTimeout(tryToResume, 2000);\n } else {\n // if we didn't change the src, just restore the tracks\n restoreTracks(); // we don't need to check snapshotObject.ended here because the content video\n // element wasn't recycled\n\n if (!player.ended()) {\n // the src didn't change and this wasn't a postroll\n // just resume playback at the current time.\n var playPromise = player.play();\n\n if (playPromise && playPromise.catch) {\n playPromise.catch(function (error) {\n videojs.log.warn('Play promise rejected in snapshot restore', error);\n });\n }\n } // snapshot restore is complete\n\n\n delete player.ads.snapshot;\n callback();\n }\n}\n\n/*\n * Encapsulates logic for starting and ending ad breaks. An ad break\n * is the time between startLinearAdMode and endLinearAdMode. The ad\n * plugin may play 0 or more ads during this time.\n */\n\nfunction start(player) {\n player.ads.debug('Starting ad break');\n player.ads._inLinearAdMode = true; // No longer does anything, used to move us to ad-playback\n\n player.trigger('adstart'); // Capture current player state snapshot\n\n if (player.ads.shouldTakeSnapshots()) {\n player.ads.snapshot = getPlayerSnapshot(player);\n } // Mute the player behind the ad\n\n\n if (player.ads.shouldPlayContentBehindAd(player)) {\n player.ads.preAdVolume_ = player.volume();\n player.volume(0);\n } // Add css to the element to indicate and ad is playing.\n\n\n player.addClass('vjs-ad-playing'); // We should remove the vjs-live class if it has been added in order to\n // show the adprogress control bar on Android devices for falsely\n // determined LIVE videos due to the duration incorrectly reported as Infinity\n\n if (player.hasClass('vjs-live')) {\n player.removeClass('vjs-live');\n } // This removes the native poster so the ads don't show the content\n // poster if content element is reused for ad playback.\n\n\n player.ads.removeNativePoster();\n}\n\nfunction end(player, callback) {\n player.ads.debug('Ending ad break');\n\n if (callback === undefined) {\n callback = function callback() {};\n }\n\n player.ads.adType = null;\n player.ads._inLinearAdMode = false; // Signals the end of the ad break to anyone listening.\n\n player.trigger('adend');\n player.removeClass('vjs-ad-playing'); // We should add the vjs-live class back if the video is a LIVE video\n // If we dont do this, then for a LIVE Video, we will get an incorrect\n // styled control, which displays the time for the video\n\n if (player.ads.isLive(player)) {\n player.addClass('vjs-live');\n } // Restore snapshot\n\n\n if (player.ads.shouldTakeSnapshots()) {\n restorePlayerSnapshot(player, callback); // Reset the volume to pre-ad levels\n } else {\n player.volume(player.ads.preAdVolume_);\n callback();\n }\n}\n\nvar obj$1 = {\n start: start,\n end: end\n};\n\nvar AdState$1 = States.getState('AdState');\n/*\n * This state encapsulates waiting for prerolls, preroll playback, and\n * content restoration after a preroll.\n */\n\nvar Preroll =\n/*#__PURE__*/\nfunction (_AdState) {\n _inheritsLoose(Preroll, _AdState);\n\n function Preroll() {\n return _AdState.apply(this, arguments) || this;\n }\n\n /*\n * Allows state name to be logged even after minification.\n */\n Preroll._getName = function _getName() {\n return 'Preroll';\n }\n /*\n * For state transitions to work correctly, initialization should\n * happen here, not in a constructor.\n */\n ;\n\n var _proto = Preroll.prototype;\n\n _proto.init = function init(player, adsReady, shouldResumeToContent) {\n this.waitingForAdBreak = true; // Loading spinner from now until ad start or end of ad break.\n\n player.addClass('vjs-ad-loading'); // If adserror, adscanceled, nopreroll or skipLinearAdMode already\n // ocurred, resume to content immediately\n\n if (shouldResumeToContent || player.ads.nopreroll_) {\n return this.resumeAfterNoPreroll(player);\n } // Determine preroll timeout based on plugin settings\n\n\n var timeout = player.ads.settings.timeout;\n\n if (typeof player.ads.settings.prerollTimeout === 'number') {\n timeout = player.ads.settings.prerollTimeout;\n } // Start the clock ticking for ad timeout\n\n\n this._timeout = player.setTimeout(function () {\n player.trigger('adtimeout');\n }, timeout); // If adsready already happened, lets get started. Otherwise,\n // wait until onAdsReady.\n\n if (adsReady) {\n this.handleAdsReady();\n } else {\n this.adsReady = false;\n }\n }\n /*\n * Adsready event after play event.\n */\n ;\n\n _proto.onAdsReady = function onAdsReady(player) {\n if (!player.ads.inAdBreak()) {\n player.ads.debug('Received adsready event (Preroll)');\n this.handleAdsReady();\n } else {\n videojs.log.warn('Unexpected adsready event (Preroll)');\n }\n }\n /*\n * Ad plugin is ready. Let's get started on this preroll.\n */\n ;\n\n _proto.handleAdsReady = function handleAdsReady() {\n this.adsReady = true;\n this.readyForPreroll();\n }\n /*\n * Helper to call a callback only after a loadstart event.\n * If we start content or ads before loadstart, loadstart\n * will not be prefixed correctly.\n */\n ;\n\n _proto.afterLoadStart = function afterLoadStart(callback) {\n var player = this.player;\n\n if (player.ads._hasThereBeenALoadStartDuringPlayerLife) {\n callback();\n } else {\n player.ads.debug('Waiting for loadstart...');\n player.one('loadstart', function () {\n player.ads.debug('Received loadstart event');\n callback();\n });\n }\n }\n /*\n * If there is no preroll, play content instead.\n */\n ;\n\n _proto.noPreroll = function noPreroll() {\n var _this = this;\n\n this.afterLoadStart(function () {\n _this.player.ads.debug('Skipping prerolls due to nopreroll event (Preroll)');\n\n _this.resumeAfterNoPreroll(_this.player);\n });\n }\n /*\n * Fire the readyforpreroll event. If loadstart hasn't happened yet,\n * wait until loadstart first.\n */\n ;\n\n _proto.readyForPreroll = function readyForPreroll() {\n var player = this.player;\n this.afterLoadStart(function () {\n player.ads.debug('Triggered readyforpreroll event (Preroll)');\n player.trigger('readyforpreroll');\n });\n }\n /*\n * adscanceled cancels all ads for the source. Play content now.\n */\n ;\n\n _proto.onAdsCanceled = function onAdsCanceled(player) {\n var _this2 = this;\n\n player.ads.debug('adscanceled (Preroll)');\n this.afterLoadStart(function () {\n _this2.resumeAfterNoPreroll(player);\n });\n }\n /*\n * An ad error occured. Play content instead.\n */\n ;\n\n _proto.onAdsError = function onAdsError(player) {\n var _this3 = this;\n\n videojs.log('adserror (Preroll)'); // In the future, we may not want to do this automatically.\n // Ad plugins should be able to choose to continue the ad break\n // if there was an error.\n\n if (this.inAdBreak()) {\n player.ads.endLinearAdMode();\n } else {\n this.afterLoadStart(function () {\n _this3.resumeAfterNoPreroll(player);\n });\n }\n }\n /*\n * Ad plugin invoked startLinearAdMode, the ad break starts now.\n */\n ;\n\n _proto.startLinearAdMode = function startLinearAdMode() {\n var player = this.player;\n\n if (this.adsReady && !player.ads.inAdBreak() && !this.isContentResuming()) {\n this.clearTimeout(player);\n player.ads.adType = 'preroll';\n this.waitingForAdBreak = false;\n obj$1.start(player); // We don't need to block play calls anymore\n\n player.ads._shouldBlockPlay = false;\n } else {\n videojs.log.warn('Unexpected startLinearAdMode invocation (Preroll)');\n }\n }\n /*\n * An ad has actually started playing.\n * Remove the loading spinner.\n */\n ;\n\n _proto.onAdStarted = function onAdStarted(player) {\n player.removeClass('vjs-ad-loading');\n }\n /*\n * Ad plugin invoked endLinearAdMode, the ad break ends now.\n */\n ;\n\n _proto.endLinearAdMode = function endLinearAdMode() {\n var player = this.player;\n\n if (this.inAdBreak()) {\n player.removeClass('vjs-ad-loading');\n player.addClass('vjs-ad-content-resuming');\n this.contentResuming = true;\n obj$1.end(player);\n }\n }\n /*\n * Ad skipped by ad plugin. Play content instead.\n */\n ;\n\n _proto.skipLinearAdMode = function skipLinearAdMode() {\n var _this4 = this;\n\n var player = this.player;\n\n if (player.ads.inAdBreak() || this.isContentResuming()) {\n videojs.log.warn('Unexpected skipLinearAdMode invocation');\n } else {\n this.afterLoadStart(function () {\n player.trigger('adskip');\n player.ads.debug('skipLinearAdMode (Preroll)');\n\n _this4.resumeAfterNoPreroll(player);\n });\n }\n }\n /*\n * Prerolls took too long! Play content instead.\n */\n ;\n\n _proto.onAdTimeout = function onAdTimeout(player) {\n var _this5 = this;\n\n this.afterLoadStart(function () {\n player.ads.debug('adtimeout (Preroll)');\n\n _this5.resumeAfterNoPreroll(player);\n });\n }\n /*\n * Check if nopreroll event was too late before handling it.\n */\n ;\n\n _proto.onNoPreroll = function onNoPreroll(player) {\n if (player.ads.inAdBreak() || this.isContentResuming()) {\n videojs.log.warn('Unexpected nopreroll event (Preroll)');\n } else {\n this.noPreroll();\n }\n };\n\n _proto.resumeAfterNoPreroll = function resumeAfterNoPreroll(player) {\n // Resume to content and unblock play as there is no preroll ad\n this.contentResuming = true;\n player.ads._shouldBlockPlay = false;\n this.cleanupPartial(player); // Play the content if we had requested play or we paused on 'contentupdate'\n // and we haven't played yet. This happens if there was no preroll or if it\n // errored, timed out, etc. Otherwise snapshot restore would play.\n\n if (player.ads._playRequested || player.ads._pausedOnContentupdate) {\n if (player.paused()) {\n player.ads.debug('resumeAfterNoPreroll: attempting to resume playback (Preroll)');\n var playPromise = player.play();\n\n if (playPromise && playPromise.then) {\n playPromise.then(null, function (e) {});\n }\n } else {\n player.ads.debug('resumeAfterNoPreroll: already playing (Preroll)');\n player.trigger('play');\n player.trigger('playing');\n }\n }\n }\n /*\n * Cleanup timeouts and spinner.\n */\n ;\n\n _proto.cleanup = function cleanup(player) {\n if (!player.ads._hasThereBeenALoadStartDuringPlayerLife) {\n videojs.log.warn('Leaving Preroll state before loadstart event can cause issues.');\n }\n\n this.cleanupPartial(player);\n }\n /*\n * Performs cleanup tasks without depending on a state transition. This is\n * used mainly in cases where a preroll failed.\n */\n ;\n\n _proto.cleanupPartial = function cleanupPartial(player) {\n player.removeClass('vjs-ad-loading');\n player.removeClass('vjs-ad-content-resuming');\n this.clearTimeout(player);\n }\n /*\n * Clear the preroll timeout and nulls out the pointer.\n */\n ;\n\n _proto.clearTimeout = function clearTimeout(player) {\n player.clearTimeout(this._timeout);\n this._timeout = null;\n };\n\n return Preroll;\n}(AdState$1);\n\nStates.registerState('Preroll', Preroll);\n\nvar ContentState$2 = States.getState('ContentState');\n/*\n * This is the initial state for a player with an ad plugin. Normally, it remains in this\n * state until a \"play\" event is seen. After that, we enter the Preroll state to check for\n * prerolls. This happens regardless of whether or not any prerolls ultimately will play.\n * Errors and other conditions may lead us directly from here to ContentPlayback.\n */\n\nvar BeforePreroll =\n/*#__PURE__*/\nfunction (_ContentState) {\n _inheritsLoose(BeforePreroll, _ContentState);\n\n function BeforePreroll() {\n return _ContentState.apply(this, arguments) || this;\n }\n\n /*\n * Allows state name to be logged even after minification.\n */\n BeforePreroll._getName = function _getName() {\n return 'BeforePreroll';\n }\n /*\n * For state transitions to work correctly, initialization should\n * happen here, not in a constructor.\n */\n ;\n\n var _proto = BeforePreroll.prototype;\n\n _proto.init = function init(player) {\n this.adsReady = false;\n this.shouldResumeToContent = false; // Content playback should be blocked by callPlay() middleware if the allowVjsAutoplay\n // option hasn't been provided and autoplay is not desired.\n\n player.ads._shouldBlockPlay = player.ads.settings.allowVjsAutoplay ? !player.autoplay() : true;\n }\n /*\n * The ad plugin may trigger adsready before the play request. If so,\n * we record that adsready already happened so the Preroll state will know.\n */\n ;\n\n _proto.onAdsReady = function onAdsReady(player) {\n player.ads.debug('Received adsready event (BeforePreroll)');\n this.adsReady = true;\n }\n /*\n * Ad mode officially begins on the play request, because at this point\n * content playback is blocked by the ad plugin.\n */\n ;\n\n _proto.onPlay = function onPlay(player) {\n var Preroll = States.getState('Preroll');\n player.ads.debug('Received play event (BeforePreroll)'); // Check for prerolls\n\n this.transitionTo(Preroll, this.adsReady, this.shouldResumeToContent);\n }\n /*\n * All ads for the entire video are canceled.\n */\n ;\n\n _proto.onAdsCanceled = function onAdsCanceled(player) {\n player.ads.debug('adscanceled (BeforePreroll)');\n this.shouldResumeToContent = true;\n }\n /*\n * An ad error occured. Play content instead.\n */\n ;\n\n _proto.onAdsError = function onAdsError() {\n this.player.ads.debug('adserror (BeforePreroll)');\n this.shouldResumeToContent = true;\n }\n /*\n * If there is no preroll, don't wait for a play event to move forward.\n */\n ;\n\n _proto.onNoPreroll = function onNoPreroll() {\n this.player.ads.debug('Skipping prerolls due to nopreroll event (BeforePreroll)');\n this.shouldResumeToContent = true;\n }\n /*\n * Prerolls skipped by ad plugin. Play content instead.\n */\n ;\n\n _proto.skipLinearAdMode = function skipLinearAdMode() {\n var player = this.player;\n player.trigger('adskip');\n player.ads.debug('skipLinearAdMode (BeforePreroll)');\n this.shouldResumeToContent = true;\n };\n\n _proto.onContentChanged = function onContentChanged() {\n this.init(this.player);\n };\n\n return BeforePreroll;\n}(ContentState$2);\n\nStates.registerState('BeforePreroll', BeforePreroll);\n\nvar AdState$2 = States.getState('AdState');\n\nvar Midroll =\n/*#__PURE__*/\nfunction (_AdState) {\n _inheritsLoose(Midroll, _AdState);\n\n function Midroll() {\n return _AdState.apply(this, arguments) || this;\n }\n\n /*\n * Allows state name to be logged even after minification.\n */\n Midroll._getName = function _getName() {\n return 'Midroll';\n }\n /*\n * Midroll breaks happen when the ad plugin calls startLinearAdMode,\n * which can happen at any time during content playback.\n */\n ;\n\n var _proto = Midroll.prototype;\n\n _proto.init = function init(player) {\n player.ads.adType = 'midroll';\n obj$1.start(player);\n player.addClass('vjs-ad-loading');\n }\n /*\n * An ad has actually started playing.\n * Remove the loading spinner.\n */\n ;\n\n _proto.onAdStarted = function onAdStarted(player) {\n player.removeClass('vjs-ad-loading');\n }\n /*\n * Midroll break is done.\n */\n ;\n\n _proto.endLinearAdMode = function endLinearAdMode() {\n var player = this.player;\n\n if (this.inAdBreak()) {\n this.contentResuming = true;\n player.addClass('vjs-ad-content-resuming');\n player.removeClass('vjs-ad-loading');\n obj$1.end(player);\n }\n }\n /*\n * End midroll break if there is an error.\n */\n ;\n\n _proto.onAdsError = function onAdsError(player) {\n // In the future, we may not want to do this automatically.\n // Ad plugins should be able to choose to continue the ad break\n // if there was an error.\n if (this.inAdBreak()) {\n player.ads.endLinearAdMode();\n }\n }\n /*\n * Cleanup CSS classes.\n */\n ;\n\n _proto.cleanup = function cleanup(player) {\n player.removeClass('vjs-ad-loading');\n player.removeClass('vjs-ad-content-resuming');\n };\n\n return Midroll;\n}(AdState$2);\n\nStates.registerState('Midroll', Midroll);\n\nvar AdState$3 = States.getState('AdState');\n\nvar Postroll =\n/*#__PURE__*/\nfunction (_AdState) {\n _inheritsLoose(Postroll, _AdState);\n\n function Postroll() {\n return _AdState.apply(this, arguments) || this;\n }\n\n /*\n * Allows state name to be logged even after minification.\n */\n Postroll._getName = function _getName() {\n return 'Postroll';\n }\n /*\n * For state transitions to work correctly, initialization should\n * happen here, not in a constructor.\n */\n ;\n\n var _proto = Postroll.prototype;\n\n _proto.init = function init(player) {\n this.waitingForAdBreak = true; // Legacy name that now simply means \"handling postrolls\".\n\n player.ads._contentEnding = true; // Start postroll process.\n\n if (!player.ads.nopostroll_) {\n player.addClass('vjs-ad-loading'); // Determine postroll timeout based on plugin settings\n\n var timeout = player.ads.settings.timeout;\n\n if (typeof player.ads.settings.postrollTimeout === 'number') {\n timeout = player.ads.settings.postrollTimeout;\n }\n\n this._postrollTimeout = player.setTimeout(function () {\n player.trigger('adtimeout');\n }, timeout); // No postroll, ads are done\n } else {\n this.resumeContent(player);\n var AdsDone = States.getState('AdsDone');\n this.transitionTo(AdsDone);\n }\n }\n /*\n * Start the postroll if it's not too late.\n */\n ;\n\n _proto.startLinearAdMode = function startLinearAdMode() {\n var player = this.player;\n\n if (!player.ads.inAdBreak() && !this.isContentResuming()) {\n player.ads.adType = 'postroll';\n player.clearTimeout(this._postrollTimeout);\n this.waitingForAdBreak = false;\n obj$1.start(player);\n } else {\n videojs.log.warn('Unexpected startLinearAdMode invocation (Postroll)');\n }\n }\n /*\n * An ad has actually started playing.\n * Remove the loading spinner.\n */\n ;\n\n _proto.onAdStarted = function onAdStarted(player) {\n player.removeClass('vjs-ad-loading');\n }\n /*\n * Ending a postroll triggers the ended event.\n */\n ;\n\n _proto.endLinearAdMode = function endLinearAdMode() {\n var _this = this;\n\n var player = this.player;\n var AdsDone = States.getState('AdsDone');\n\n if (this.inAdBreak()) {\n player.removeClass('vjs-ad-loading');\n this.resumeContent(player);\n obj$1.end(player, function () {\n _this.transitionTo(AdsDone);\n });\n }\n }\n /*\n * Postroll skipped, time to clean up.\n */\n ;\n\n _proto.skipLinearAdMode = function skipLinearAdMode() {\n var player = this.player;\n\n if (player.ads.inAdBreak() || this.isContentResuming()) {\n videojs.log.warn('Unexpected skipLinearAdMode invocation');\n } else {\n player.ads.debug('Postroll abort (skipLinearAdMode)');\n player.trigger('adskip');\n this.abort(player);\n }\n }\n /*\n * Postroll timed out, time to clean up.\n */\n ;\n\n _proto.onAdTimeout = function onAdTimeout(player) {\n player.ads.debug('Postroll abort (adtimeout)');\n this.abort(player);\n }\n /*\n * Postroll errored out, time to clean up.\n */\n ;\n\n _proto.onAdsError = function onAdsError(player) {\n player.ads.debug('Postroll abort (adserror)'); // In the future, we may not want to do this automatically.\n // Ad plugins should be able to choose to continue the ad break\n // if there was an error.\n\n if (player.ads.inAdBreak()) {\n player.ads.endLinearAdMode();\n } else {\n this.abort(player);\n }\n }\n /*\n * Handle content change if we're not in an ad break.\n */\n ;\n\n _proto.onContentChanged = function onContentChanged(player) {\n // Content resuming after Postroll. Content is paused\n // at this point, since it is done playing.\n if (this.isContentResuming()) {\n var BeforePreroll = States.getState('BeforePreroll');\n this.transitionTo(BeforePreroll); // Waiting for postroll to start. Content is considered playing\n // at this point, since it had to be playing to start the postroll.\n } else if (!this.inAdBreak()) {\n var Preroll = States.getState('Preroll');\n this.transitionTo(Preroll);\n }\n }\n /*\n * Wrap up if there is no postroll.\n */\n ;\n\n _proto.onNoPostroll = function onNoPostroll(player) {\n if (!this.isContentResuming() && !this.inAdBreak()) {\n this.abort(player);\n } else {\n videojs.log.warn('Unexpected nopostroll event (Postroll)');\n }\n };\n\n _proto.resumeContent = function resumeContent(player) {\n this.contentResuming = true;\n player.addClass('vjs-ad-content-resuming');\n }\n /*\n * Helper for ending Postrolls. In the future we may want to\n * refactor this class so that `cleanup` handles all of this.\n */\n ;\n\n _proto.abort = function abort(player) {\n var AdsDone = States.getState('AdsDone');\n this.resumeContent(player);\n player.removeClass('vjs-ad-loading');\n this.transitionTo(AdsDone);\n }\n /*\n * Cleanup timeouts and state.\n */\n ;\n\n _proto.cleanup = function cleanup(player) {\n player.removeClass('vjs-ad-content-resuming');\n player.clearTimeout(this._postrollTimeout);\n player.ads._contentEnding = false;\n };\n\n return Postroll;\n}(AdState$3);\n\nStates.registerState('Postroll', Postroll);\n\nvar ContentState$3 = States.getState('ContentState');\n/*\n * This state represents content playback the first time through before\n * content ends. After content has ended once, we check for postrolls and\n * move on to the AdsDone state rather than returning here.\n */\n\nvar ContentPlayback =\n/*#__PURE__*/\nfunction (_ContentState) {\n _inheritsLoose(ContentPlayback, _ContentState);\n\n function ContentPlayback() {\n return _ContentState.apply(this, arguments) || this;\n }\n\n /*\n * Allows state name to be logged even after minification.\n */\n ContentPlayback._getName = function _getName() {\n return 'ContentPlayback';\n }\n /*\n * For state transitions to work correctly, initialization should\n * happen here, not in a constructor.\n */\n ;\n\n var _proto = ContentPlayback.prototype;\n\n _proto.init = function init(player) {\n // Don't block calls to play in content playback\n player.ads._shouldBlockPlay = false;\n }\n /*\n * In the case of a timeout, adsready might come in late. This assumes the behavior\n * that if an ad times out, it could still interrupt the content and start playing.\n * An ad plugin could behave otherwise by ignoring this event.\n */\n ;\n\n _proto.onAdsReady = function onAdsReady(player) {\n player.ads.debug('Received adsready event (ContentPlayback)');\n\n if (!player.ads.nopreroll_) {\n player.ads.debug('Triggered readyforpreroll event (ContentPlayback)');\n player.trigger('readyforpreroll');\n }\n }\n /*\n * Content ended before postroll checks.\n */\n ;\n\n _proto.onReadyForPostroll = function onReadyForPostroll(player) {\n var Postroll = States.getState('Postroll');\n player.ads.debug('Received readyforpostroll event');\n this.transitionTo(Postroll);\n }\n /*\n * This is how midrolls start.\n */\n ;\n\n _proto.startLinearAdMode = function startLinearAdMode() {\n var Midroll = States.getState('Midroll');\n this.transitionTo(Midroll);\n };\n\n return ContentPlayback;\n}(ContentState$3);\n\nStates.registerState('ContentPlayback', ContentPlayback);\n\nvar ContentState$4 = States.getState('ContentState');\n/*\n * This state represents content playback when stitched ads are in play.\n */\n\nvar StitchedContentPlayback =\n/*#__PURE__*/\nfunction (_ContentState) {\n _inheritsLoose(StitchedContentPlayback, _ContentState);\n\n function StitchedContentPlayback() {\n return _ContentState.apply(this, arguments) || this;\n }\n\n /*\n * Allows state name to be logged even after minification.\n */\n StitchedContentPlayback._getName = function _getName() {\n return 'StitchedContentPlayback';\n }\n /*\n * For state transitions to work correctly, initialization should\n * happen here, not in a constructor.\n */\n ;\n\n var _proto = StitchedContentPlayback.prototype;\n\n _proto.init = function init() {\n // Don't block calls to play in stitched ad players, ever.\n this.player.ads._shouldBlockPlay = false;\n }\n /*\n * Source change does not do anything for stitched ad players.\n * contentchanged does not fire during ad breaks, so we don't need to\n * worry about that.\n */\n ;\n\n _proto.onContentChanged = function onContentChanged() {\n this.player.ads.debug(\"Received contentchanged event (\" + this.constructor._getName() + \")\");\n }\n /*\n * This is how stitched ads start.\n */\n ;\n\n _proto.startLinearAdMode = function startLinearAdMode() {\n var StitchedAdRoll = States.getState('StitchedAdRoll');\n this.transitionTo(StitchedAdRoll);\n };\n\n return StitchedContentPlayback;\n}(ContentState$4);\n\nStates.registerState('StitchedContentPlayback', StitchedContentPlayback);\n\nvar AdState$4 = States.getState('AdState');\n\nvar StitchedAdRoll =\n/*#__PURE__*/\nfunction (_AdState) {\n _inheritsLoose(StitchedAdRoll, _AdState);\n\n function StitchedAdRoll() {\n return _AdState.apply(this, arguments) || this;\n }\n\n /*\n * Allows state name to be logged even after minification.\n */\n StitchedAdRoll._getName = function _getName() {\n return 'StitchedAdRoll';\n }\n /*\n * StitchedAdRoll breaks happen when the ad plugin calls startLinearAdMode,\n * which can happen at any time during content playback.\n */\n ;\n\n var _proto = StitchedAdRoll.prototype;\n\n _proto.init = function init() {\n this.waitingForAdBreak = false;\n this.contentResuming = false;\n this.player.ads.adType = 'stitched';\n obj$1.start(this.player);\n }\n /*\n * For stitched ads, there is no \"content resuming\" scenario, so a \"playing\"\n * event is not relevant.\n */\n ;\n\n _proto.onPlaying = function onPlaying() {}\n /*\n * For stitched ads, there is no \"content resuming\" scenario, so a\n * \"contentresumed\" event is not relevant.\n */\n ;\n\n _proto.onContentResumed = function onContentResumed() {}\n /*\n * When we see an \"adended\" event, it means that we are in a postroll that\n * has ended (because the media ended and we are still in an ad state).\n *\n * In these cases, we transition back to content mode and fire ended.\n */\n ;\n\n _proto.onAdEnded = function onAdEnded() {\n this.endLinearAdMode();\n this.player.trigger('ended');\n }\n /*\n * StitchedAdRoll break is done.\n */\n ;\n\n _proto.endLinearAdMode = function endLinearAdMode() {\n var StitchedContentPlayback = States.getState('StitchedContentPlayback');\n obj$1.end(this.player);\n this.transitionTo(StitchedContentPlayback);\n };\n\n return StitchedAdRoll;\n}(AdState$4);\n\nStates.registerState('StitchedAdRoll', StitchedAdRoll);\n\n/*\nThis main plugin file is responsible for the public API and enabling the features\nthat live in in separate files.\n*/\nvar isMiddlewareMediatorSupported$1 = obj.isMiddlewareMediatorSupported;\nvar VIDEO_EVENTS = videojs.getTech('Html5').Events; // Default settings\n\nvar defaults = {\n // Maximum amount of time in ms to wait to receive `adsready` from the ad\n // implementation after play has been requested. Ad implementations are\n // expected to load any dynamic libraries and make any requests to determine\n // ad policies for a video during this time.\n timeout: 5000,\n // Maximum amount of time in ms to wait for the ad implementation to start\n // linear ad mode after `readyforpreroll` has fired. This is in addition to\n // the standard timeout.\n prerollTimeout: undefined,\n // Maximum amount of time in ms to wait for the ad implementation to start\n // linear ad mode after `readyforpostroll` has fired.\n postrollTimeout: undefined,\n // When truthy, instructs the plugin to output additional information about\n // plugin state to the video.js log. On most devices, the video.js log is\n // the same as the developer console.\n debug: false,\n // Set this to true when using ads that are part of the content video\n stitchedAds: false,\n // Force content to be treated as live or not live\n // if not defined, the code will try to infer if content is live,\n // which can have limitations.\n contentIsLive: undefined,\n // If set to true, content will play muted behind ads on supported platforms. This is\n // to support ads on video metadata cuepoints during a live stream. It also results in\n // more precise resumes after ads during a live stream.\n liveCuePoints: true,\n // If set to true, callPlay middleware will not terminate the first play request in\n // BeforePreroll if the player intends to autoplay. This allows the manual autoplay\n // attempt made by video.js to resolve/reject naturally and trigger an 'autoplay-success'\n // or 'autoplay-failure' event with which other plugins can interface.\n allowVjsAutoplay: videojs.options.normalizeAutoplay || false\n};\n\nvar contribAdsPlugin = function contribAdsPlugin(options) {\n var player = this; // eslint-disable-line consistent-this\n\n var settings = videojs.mergeOptions(defaults, options); // Prefix all video element events during ad playback\n // if the video element emits ad-related events directly,\n // plugins that aren't ad-aware will break. prefixing allows\n // plugins that wish to handle ad events to do so while\n // avoiding the complexity for common usage\n\n var videoEvents = []; // dedupe event names\n\n VIDEO_EVENTS.concat(['firstplay', 'loadedalldata']).forEach(function (eventName) {\n if (videoEvents.indexOf(eventName) === -1) {\n videoEvents.push(eventName);\n }\n }); // Set up redispatching of player events\n\n player.on(videoEvents, redispatch); // Set up features to block content playback while waiting for ads.\n // Play middleware is only supported on later versions of video.js\n // and on desktop currently(as the user-gesture requirement on mobile\n // will disallow calling play once play blocking is lifted)\n // The middleware must also be registered outside of the plugin,\n // to avoid a middleware factory being created for each player\n\n if (!isMiddlewareMediatorSupported$1()) {\n initCancelContentPlay(player, settings.debug);\n } // If we haven't seen a loadstart after 5 seconds, the plugin was not initialized\n // correctly.\n\n\n player.setTimeout(function () {\n if (!player.ads._hasThereBeenALoadStartDuringPlayerLife && player.src() !== '') {\n videojs.log.error('videojs-contrib-ads has not seen a loadstart event 5 seconds ' + 'after being initialized, but a source is present. This indicates that ' + 'videojs-contrib-ads was initialized too late. It must be initialized ' + 'immediately after video.js in the same tick. As a result, some ads will not ' + 'play and some media events will be incorrect. For more information, see ' + 'http://videojs.github.io/videojs-contrib-ads/integrator/getting-started.html');\n }\n }, 5000); // \"vjs-has-started\" should be present at the end of a video. This makes sure it's\n // always there.\n\n player.on('ended', function () {\n if (!player.hasClass('vjs-has-started')) {\n player.addClass('vjs-has-started');\n }\n }); // video.js removes the vjs-waiting class on timeupdate. We want\n // to make sure this still happens during content restoration.\n\n player.on('contenttimeupdate', function () {\n player.removeClass('vjs-waiting');\n }); // We now auto-play when an ad gets loaded if we're playing ads in the same video\n // element as the content.\n // The problem is that in IE11, we cannot play in addurationchange but in iOS8, we\n // cannot play from adcanplay.\n // This will prevent ad plugins from needing to do this themselves.\n\n player.on(['addurationchange', 'adcanplay'], function () {\n // We don't need to handle this for stitched ads because\n // linear ads in such cases are stitched into the content.\n if (player.ads.settings.stitchedAds) {\n return;\n } // Some techs may retrigger canplay after playback has begun.\n // So we want to procceed only if playback hasn't started.\n\n\n if (player.hasStarted()) {\n return;\n }\n\n if (player.ads.snapshot && player.currentSrc() === player.ads.snapshot.currentSrc) {\n return;\n } // If an ad isn't playing, don't try to play an ad. This could result from prefixed\n // events when the player is blocked by a preroll check, but there is no preroll.\n\n\n if (!player.ads.inAdBreak()) {\n return;\n }\n\n var playPromise = player.play();\n\n if (playPromise && playPromise.catch) {\n playPromise.catch(function (error) {\n videojs.log.warn('Play promise rejected when playing ad', error);\n });\n }\n });\n player.on('nopreroll', function () {\n player.ads.debug('Received nopreroll event');\n player.ads.nopreroll_ = true;\n });\n player.on('nopostroll', function () {\n player.ads.debug('Received nopostroll event');\n player.ads.nopostroll_ = true;\n }); // Restart the cancelContentPlay process.\n\n player.on('playing', function () {\n player.ads._cancelledPlay = false;\n player.ads._pausedOnContentupdate = false;\n }); // Keep track of whether a play event has happened\n\n player.on('play', function () {\n player.ads._playRequested = true;\n });\n player.one('loadstart', function () {\n player.ads._hasThereBeenALoadStartDuringPlayerLife = true;\n });\n player.on('loadeddata', function () {\n player.ads._hasThereBeenALoadedData = true;\n });\n player.on('loadedmetadata', function () {\n player.ads._hasThereBeenALoadedMetaData = true;\n }); // Replace the plugin constructor with the ad namespace\n\n player.ads = getAds(player);\n player.ads.settings = settings; // Set the stitched ads state. This needs to happen before the `_state` is\n // initialized below - BeforePreroll needs to know whether contrib-ads is\n // playing stitched ads or not.\n // The setter is deprecated, so this does not use it.\n // But first, cast to boolean.\n\n settings.stitchedAds = !!settings.stitchedAds;\n\n if (settings.stitchedAds) {\n player.ads._state = new (States.getState('StitchedContentPlayback'))(player);\n } else {\n player.ads._state = new (States.getState('BeforePreroll'))(player);\n }\n\n player.ads._state.init(player);\n\n player.ads.cueTextTracks = cueTextTracks;\n player.ads.adMacroReplacement = adMacroReplacement.bind(player); // Start sending contentupdate and contentchanged events for this player\n\n initializeContentupdate(player); // Global contentchanged handler for resetting plugin state\n\n player.on('contentchanged', player.ads.reset); // A utility method for textTrackChangeHandler to define the conditions\n // when text tracks should be disabled.\n // Currently this includes:\n // - on iOS with native text tracks, during an ad playing\n\n var shouldDisableTracks = function shouldDisableTracks() {\n // If the platform matches iOS with native text tracks\n // and this occurs during ad playback, we should disable tracks again.\n // If shouldPlayContentBehindAd, no special handling is needed.\n return !player.ads.shouldPlayContentBehindAd(player) && player.ads.inAdBreak() && player.tech_.featuresNativeTextTracks && videojs.browser.IS_IOS && // older versions of video.js did not use an emulated textTrackList\n !Array.isArray(player.textTracks());\n };\n /*\n * iOS Safari will change caption mode to 'showing' if a user previously\n * turned captions on manually for that video source, so this TextTrackList\n * 'change' event handler will re-disable them in case that occurs during ad playback\n */\n\n\n var textTrackChangeHandler = function textTrackChangeHandler() {\n var textTrackList = player.textTracks();\n\n if (shouldDisableTracks()) {\n // We must double check all tracks\n for (var i = 0; i < textTrackList.length; i++) {\n var track = textTrackList[i];\n\n if (track.mode === 'showing') {\n track.mode = 'disabled';\n }\n }\n }\n }; // Add the listener to the text track list\n\n\n player.ready(function () {\n player.textTracks().addEventListener('change', textTrackChangeHandler);\n }); // Event handling for the current state.\n\n player.on(['play', 'playing', 'ended', 'adsready', 'adscanceled', 'adskip', 'adserror', 'adtimeout', 'adended', 'ads-ad-started', 'contentchanged', 'dispose', 'contentresumed', 'readyforpostroll', 'nopreroll', 'nopostroll'], function (e) {\n player.ads._state.handleEvent(e.type);\n }); // Clear timeouts and handlers when player is disposed\n\n player.on('dispose', function () {\n player.ads.reset();\n player.textTracks().removeEventListener('change', textTrackChangeHandler);\n }); // Listen to TCF changes\n\n listenToTcf(); // Can be called for testing, or if the TCF CMP has loaded late\n\n player.ads.listenToTcf = listenToTcf;\n}; // Expose the contrib-ads version before it is initialized. Will be replaced\n// after initialization in ads.js\n\n\ncontribAdsPlugin.VERSION = version; // Attempt to register the plugin, if we can.\n\nregister(contribAdsPlugin);\n\nexport default contribAdsPlugin;\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];\n var v = kv[1];\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.7.1 @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['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;","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","import createIcon from './hocs/createIcon';\nvar EmailIcon = createIcon({\n color: '#7f7f7f',\n networkName: 'email',\n path: 'M17,22v20h30V22H17z M41.1,25L32,32.1L22.9,25H41.1z M20,39V26.6l12,9.3l12-9.3V39H20z',\n});\nexport default EmailIcon;\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\t\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(k in entityMap){\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\t\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\t\t\t\t\t\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(qname, value, startIndex)\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).replace(/&#?\\w+;/g,entityReplacer);\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).replace(/&#?\\w+;/g,entityReplacer);\n\t\t\t\t//console.log(attrName,value,start,p)\n\t\t\t\taddAttribute(attrName, value, start);\n\t\t\t\t//console.dir(el)\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\tcase S_ATTR_SPACE:\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.replace(/&#?\\w+;/g,entityReplacer), 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).replace(/&#?\\w+;/g,entityReplacer);\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\t\t\t\t\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\t\t\t\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';\n\nvar version$5 = \"7.19.2\";\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 if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY') {\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 // if we cleared out all timeouts for the current target, delete its map\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\n\n var _proto = Component.prototype;\n\n _proto.dispose = function dispose() {\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 this.el_.parentNode.removeChild(this.el_);\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 () {\n if (this.tech_.isDisposed()) {\n return;\n }\n\n if (!this.tech_.isReady_) {\n this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\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 this.rvf_ = this.tech_.requestVideoFrameCallback(this.timeupdateHandler);\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 this.rvf_ = this.tech_.requestVideoFrameCallback(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 /**\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'