@flowplayer/spins 0.1.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +220 -0
- package/dist/index.js +209 -0
- package/dist/types.d.ts +79 -0
- package/package.json +54 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
var Xd=Object.create;var{getPrototypeOf:Jd,defineProperty:tl,getOwnPropertyNames:Qd}=Object;var Zd=Object.prototype.hasOwnProperty;var mn=(o,p,b)=>{b=o!=null?Xd(Jd(o)):{};let k=p||!o||!o.__esModule?tl(b,"default",{value:o,enumerable:!0}):b;for(let L of Qd(o))if(!Zd.call(k,L))tl(k,L,{get:()=>o[L],enumerable:!0});return k};var gn=(o,p)=>()=>(p||o((p={exports:{}}).exports,p),p.exports);var el=(o,p)=>{for(var b in p)tl(o,b,{get:p[b],enumerable:!0,configurable:!0,set:(k)=>p[b]=()=>k})};var Pc=gn((Nc)=>{Object.defineProperty(Nc,"__esModule",{value:!0});var Sh="mount",bh="retry",Th="error",Ah="contextmenu",_h="click",Lh="dblclick",wh="keyup",kh="keydown",Rh="load",Dh="mouseenter",Ch="mouseleave",Ih="mouseup",Oh="mousedown",xh="mousemove",Nh="touchstart",Ph="touchmove",Mh="touchend",Fh="touchcancel",Bh="resize",Uh="scroll",$h="fullscreenenter",Gh="fullscreenexit",Hh="fullscreenchange",Kh="loadedmetadata",Vh="loadeddata",Wh="progress",jh="timeupdate",qh="loadstart",Yh="volumechange",zh="pause",Xh="playing",Jh="play",Qh="waiting",Zh="canplay",tf="ended",ef="seeked",nf="seeking",rf="durationchange",sf="viewenter",af="viewleave",of="src",lf="reap",cf="qualities",df="qualitychange",uf="videoTracks",hf="quality:set",ff="tracks:video:select",mf="recommendationsready",gf="landscape",pf="portrait",vf="dvr",yf="live",Ef="recover",Sf="seek:queued",bf="seek:cancel",Tf="plugin:registered",Af="remotesession:started",_f="remotesession:ended",Lf="intersectionchange",wf="webkitneedkey",kf="renderplugin",Rf="audioonlysource",Df="error:fatal",Cf="config",If="state",Of="beforeplay",xf="beforepause",Nf="content:loadstart",Pf="cuepoints",Mf="cuepointstart",Ff="cuepointend",Bf="flowplayer:error";Nc.AUDIO_ONLY_SOURCE=Rf;Nc.BEFORE_PAUSE=xf;Nc.BEFORE_PLAY=Of;Nc.CAN_PLAY=Zh;Nc.CLICK=_h;Nc.CONFIG=Cf;Nc.CONTENT_REAL_LOAD_START=Nf;Nc.CONTEXT_MENU=Ah;Nc.CUEPOINTS=Pf;Nc.CUEPOINT_END=Ff;Nc.CUEPOINT_START=Mf;Nc.DATA=Vh;Nc.DBL_CLICK=Lh;Nc.DURATION_CHANGE=rf;Nc.DVR=vf;Nc.ENDED=tf;Nc.ERROR=Th;Nc.FULLSCREEN_CHANGE=Hh;Nc.FULLSCREEN_ENTER=$h;Nc.FULLSCREEN_EXIT=Gh;Nc.INTERSECTIONCHANGE=Lf;Nc.KEYDOWN=kh;Nc.KEYUP=wh;Nc.LANDSCAPE=gf;Nc.LIVE=yf;Nc.LOAD=Rh;Nc.LOAD_START=qh;Nc.METADATA=Kh;Nc.MOUNT=Sh;Nc.MOUSE_DOWN=Oh;Nc.MOUSE_ENTER=Dh;Nc.MOUSE_LEAVE=Ch;Nc.MOUSE_MOVE=xh;Nc.MOUSE_UP=Ih;Nc.NON_RECOVERABLE_ERROR=Df;Nc.PAUSE=zh;Nc.PLAY=Jh;Nc.PLAYING=Xh;Nc.PLUGIN_REGISTERED=Tf;Nc.PORTRAIT=pf;Nc.PROGRESS=Wh;Nc.QUALITIES=cf;Nc.QUALITY_CHANGE=df;Nc.REAP=lf;Nc.RECOMMENDATIONS_READY=mf;Nc.RECOVER=Ef;Nc.REMOTE_SESSION_ENDED=_f;Nc.REMOTE_SESSION_STARTED=Af;Nc.RENDER_PLUGIN=kf;Nc.RESIZE=Bh;Nc.RETRY=bh;Nc.SCROLL=Uh;Nc.SEEKED=ef;Nc.SEEKING=nf;Nc.SEEK_CANCEL=bf;Nc.SEEK_QUEUED=Sf;Nc.SET_QUALITY=hf;Nc.SOURCE=of;Nc.STANDARD_ERROR=Bf;Nc.STATE=If;Nc.TIME_UPDATE=jh;Nc.TOUCH_CANCEL=Fh;Nc.TOUCH_END=Mh;Nc.TOUCH_MOVE=Ph;Nc.TOUCH_START=Nh;Nc.VIDEO_TRACKS=uf;Nc.VIDEO_TRACK_SELECT=ff;Nc.VIEW_ENTER=sf;Nc.VIEW_LEAVE=af;Nc.VOLUME_CHANGE=Yh;Nc.WAITING=Qh;Nc.WEBKIT_NEEDKEY=wf});var Kc=gn((to,eo)=>{(function(o,p){typeof to=="object"&&typeof eo!="undefined"?eo.exports=p():typeof define=="function"&&define.amd?define(p):(o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=p()})(to,function(){let o=[],p=[];function b(){let h=typeof document!="undefined"&&typeof window!="undefined",g=h?navigator.userAgent:"",v=/iP(hone|od)/i.test(g)&&!/iPad/.test(g)&&!/IEMobile/i.test(g),R=/Android/.test(g)&&!/Firefox/.test(g),I=/^((?!chrome|android).)*safari/i.test(g),K=/chrome|crios/i.test(g)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(g),Y=/firefox|fxios/i.test(g)&&!/seamonkey/i.test(g),$=/edg/i.test(g),Z=/opr|opera/i.test(g),rt=/SamsungBrowser/.test(g),Bt=rt&&/SMART-TV/.test(g);return{controls:!v,video:function(Vt){return h&&document.createElement("video").canPlayType(Vt)},lang:h&&window.navigator.language,android:R,iphone:v,safari:I,edge:$,opera:Z,chrome:K,firefox:Y,ios:h&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:rt,samsung_tv:rt&&Bt,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}let k="click",L="dblclick",P="mouseleave",U="mousemove",z="touchmove",j="fullscreenenter",Nt="fullscreenexit",ne="loadedmetadata",A="loadeddata",Ft="progress",H="loadstart",ft="pause",Ct="playing",Mt="waiting",lt="canplay",C="ended",W="seeked",G="seeking",J="reap",st="landscape",pt="portrait",at="config",gt="content:loadstart";var Rt=Object.freeze({__proto__:null,MOUNT:"mount",RETRY:"retry",ERROR:"error",CONTEXT_MENU:"contextmenu",CLICK:k,DBL_CLICK:L,KEYUP:"keyup",KEYDOWN:"keydown",LOAD:"load",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:P,MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_MOVE:U,TOUCH_START:"touchstart",TOUCH_MOVE:z,TOUCH_END:"touchend",TOUCH_CANCEL:"touchcancel",RESIZE:"resize",SCROLL:"scroll",FULLSCREEN_ENTER:j,FULLSCREEN_EXIT:Nt,FULLSCREEN_CHANGE:"fullscreenchange",METADATA:ne,DATA:A,PROGRESS:Ft,TIME_UPDATE:"timeupdate",LOAD_START:H,VOLUME_CHANGE:"volumechange",PAUSE:ft,PLAYING:Ct,PLAY:"play",WAITING:Mt,CAN_PLAY:lt,ENDED:C,SEEKED:W,SEEKING:G,DURATION_CHANGE:"durationchange",VIEW_ENTER:"viewenter",VIEW_LEAVE:"viewleave",SOURCE:"src",REAP:J,QUALITIES:"qualities",QUALITY_CHANGE:"qualitychange",VIDEO_TRACKS:"videoTracks",SET_QUALITY:"quality:set",VIDEO_TRACK_SELECT:"tracks:video:select",RECOMMENDATIONS_READY:"recommendationsready",LANDSCAPE:st,PORTRAIT:pt,DVR:"dvr",LIVE:"live",RECOVER:"recover",SEEK_QUEUED:"seek:queued",SEEK_CANCEL:"seek:cancel",PLUGIN_REGISTERED:"plugin:registered",REMOTE_SESSION_STARTED:"remotesession:started",REMOTE_SESSION_ENDED:"remotesession:ended",INTERSECTIONCHANGE:"intersectionchange",WEBKIT_NEEDKEY:"webkitneedkey",RENDER_PLUGIN:"renderplugin",AUDIO_ONLY_SOURCE:"audioonlysource",NON_RECOVERABLE_ERROR:"error:fatal",CONFIG:at,STATE:"state",BEFORE_PLAY:"beforeplay",BEFORE_PAUSE:"beforepause",CONTENT_REAL_LOAD_START:gt,CUEPOINTS:"cuepoints",CUEPOINT_START:"cuepointstart",CUEPOINT_END:"cuepointend",STANDARD_ERROR:"flowplayer:error"});let Jt="flowplayer-ui",xt="flowplayer-logo",ce="flowplayer-control",dt="flowplayer-live-status",mt="flowplayer-elapsed-time",Dt="flowplayer-timeline-bar",te="flowplayer-volume-bar",re="flowplayer-header",we="flowplayer-middle",se="flowplayer-middle-zone",q="flowplayer-wait",tt="flowplayer-play-icon",Lt="flowplayer-pause-icon",_t="flowplayer-rewind-icon",Gt="flowplayer-volume-icon";var Oe=Object.freeze({__proto__:null,SUBTITLES_MENU:"flowplayer-subtitles-menu",SHARE_MENU:"flowplayer-share-menu",SPEED_MENU:"flowplayer-speed-menu",QUALITY_MENU:"flowplayer-quality-menu",AUDIO_MENU:"flowplayer-audio-menu",VIDEO_MENU:"flowplayer-video-menu",UI:Jt,LOGO:xt,CONTROL:ce,CONTROL_BUTTONS:"flowplayer-control-buttons",LIVE_STATUS:dt,ELAPSED:mt,TIMELINE:Dt,CHAPTERS_TIMELINE:"flowplayer-chapters-timeline-bar",CONTROL_DURATION:"flowplayer-control-duration",VOLUME_CONTROL:"flowplayer-volume-control",VOLUME_BAR:te,HEADER:re,HEADER_LEFT_ZONE:"flowplayer-header-left-zone",HEADER_RIGHT_ZONE:"flowplayer-header-right-zone",HEADER_DURATION:"flowplayer-header-duration",MIDDLE:we,MIDDLE_ZONE:se,WAIT:q,MIDDLE_BUTTONS:"flowplayer-middle-buttons",MIDDLE_LEFT_ZONE:"flowplayer-middle-left-zone",MIDDLE_RIGHT_ZONE:"flowplayer-middle-right-zone",ENDSCREEN_INTERSTITIAL:"flowplayer-endscreen-interstitial",ENDSCREEN_UP_NEXT:"flowplayer-endscreen-up-next",ENDSCREEN_GRID:"flowplayer-endscreen-grid",PLAYLIST_INTERSTITIAL:"flowplayer-playlist-interstitial",AIRPLAY_ICON:"flowplayer-airplay-icon",CHROMECAST_ICON:"flowplayer-chromecast-icon",SMALL_PLAY_ICON:"flowplayer-small-play-icon",SMALL_PAUSE_ICON:"flowplayer-small-pause-icon",PLAY_ICON:tt,PAUSE_ICON:Lt,FULLSCREEN_ENTER_ICON:"flowplayer-fullscreen-enter-icon",FULLSCREEN_EXIT_ICON:"flowplayer-fullscreen-exit-icon",SKIP_NEXT_ICON:"flowplayer-skip-next-icon",SKIP_PREVIOUS_ICON:"flowplayer-skip-previous-icon",FAST_FORWARD_ICON:"flowplayer-fast-forward-icon",REWIND_ICON:_t,SHARE_ICON:"flowplayer-share-icon",SUBTITLES_MENU_ICON:"flowplayer-subs-menu-icon",MENU_BACK_ICON:"flowplayer-menu-back",VOLUME_ICON:Gt,MUTE_ICON:"flowplayer-mute-icon",UNMUTE_ICON:"flowplayer-unmute-icon",CLOSE_ICON:"flowplayer-close-icon",FACEBOOK_ICON:"flowplayer-facebook-icon",TWITTER_ICON:"flowplayer-twitter-icon",LINK_ICON:"flowplayer-link-icon",EMBED_ICON:"flowplayer-embed-icon",LIVE_COUNTDOWN:"flowplayer-live-countdown",PLAYLIST_CONTROLS:"flowplayer-playlist-controls",THUMBNAILS_CAROUSEL:"flowplayer-thumbnails-carousel",ERROR_COMPONENT:"flowplayer-error",TV_MENU:"flowplayer-tv-menu",CUE_COMPONENT:"flowplayer-cue",SSAI_UI:"flowplayer-ssai-ui",SSAI_CONTROLS:"flowplayer-ssai-controls",SSAI_TIMELINE:"flowplayer-ssai-timeline",SSAI_INDICATOR:"flowplayer-ssai-indicator"});let Re="is-playing",ai="is-paused",Qe="is-loaded",Ge="is-loading",Se="is-starting",si="is-seeking",Xe="is-ended",Ii="is-live",Ze="is-waiting",Je="is-live-seeked",oi="no-timeline",Qt="will-play",qt="will-pause",$t="is-touched",he="is-hovered",de="is-in-viewport",Oi="is-source-processing";var en=Object.freeze({__proto__:null,PLAYING:Re,FULLSCREEN:"is-fullscreen",PAUSED:ai,MUTED:"is-muted",LOADED:Qe,LOADING:Ge,STARTING:Se,SEEKING:si,GRABBING:"is-grabbing",DISABLED:"is-disabled",SMALL:"is-small",TINY:"is-tiny",RTL:"is-rtl",TV:"is-tv",ENDED:Xe,LIVE:Ii,ERRORED:"is-error",WAITING:Ze,AUTOPLAY:"is-autoplay",SEAMLESS:"is-seamless",TOGGLING:"is-toggling",LIVE_SEEKED:Je,NO_DVR:oi,HAS_POSTER:"has-poster",WILL_PLAY:Qt,WILL_PAUSE:qt,MENU_OPENED:"has-menu-opened",TOUCHED:$t,HOVERED:he,TOUCH_DEVICE:"is-touch-device",WILL_SEEK:"will-seek",SEEKABLE:"is-seekable",IN_VIEWPORT:de,NO_CONTROLS:"no-controls",DESTROYED:"is-destroyed",IS_SOURCE_PROCESSING:Oi});function Ai(h){this.message=h}Ai.prototype=new Error,Ai.prototype.name="InvalidCharacterError";var We=typeof window!="undefined"&&window.atob&&window.atob.bind(window)||function(h){var g=String(h).replace(/=+$/,"");if(g.length%4==1)throw new Ai("'atob' failed: The string to be decoded is not correctly encoded.");for(var v,R,I=0,K=0,Y="";R=g.charAt(K++);~R&&(v=I%4?64*v+R:R,I++%4)?Y+=String.fromCharCode(255&v>>(-2*I&6)):0)R="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(R);return Y},cn=function(h){var g=h.replace(/-/g,"+").replace(/_/g,"/");switch(g.length%4){case 0:break;case 2:g+="==";break;case 3:g+="=";break;default:throw"Illegal base64url string!"}try{return function(v){return decodeURIComponent(We(v).replace(/(.)/g,function(R,I){var K=I.charCodeAt(0).toString(16).toUpperCase();return K.length<2&&(K="0"+K),"%"+K}))}(g)}catch(v){return We(g)}};function gi(h){this.message=h}gi.prototype=new Error,gi.prototype.name="InvalidTokenError";var _i=function(h,g){if(typeof h!="string")throw new gi("Invalid token specified");var v=(g=g||{}).header===!0?0:1;try{return JSON.parse(cn(h.split(".")[v]))}catch(R){throw new gi("Invalid token specified: "+R.message)}};_i.InvalidTokenError=gi;let ve=new Map,Li=(h,g)=>new(((v,R)=>{let I=v.get(R);if(!I)throw new Error(`no flowplayer component with the name ${R} exists`);let K=window.customElements.get(R);if(!K)throw new Error(`no default flowplayer component with the name ${R} exists`);let Y=window.customElements.get(I);return typeof Y!="function"?K:Y})(h._customElements,g))(h),pe=(h,g,v)=>{window.customElements.get(g)||window.customElements.define(g,v),h.customElements.get(g)||h.customElements.set(g,g)};var fe,qi;(function(h){h[h.LOW=1]="LOW",h[h.MEDIUM=2]="MEDIUM",h[h.HIGH=4]="HIGH"})(fe||(fe={})),function(h){h[h.OFF=0]="OFF",h[h.ON=1]="ON",h[h.AUDIO_REQUIRED=2]="AUDIO_REQUIRED"}(qi||(qi={}));let Zt={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},Fe=Object.fromEntries(Object.entries(Zt).map(([h,g])=>[g,h])),ti=(h)=>{return h.autoplay&&qi.AUDIO_REQUIRED&((g=h.autoplay)===!0?qi.ON:g===!1?qi.OFF:g);var g};function Hi(h,g,v){let R=typeof v=="boolean";if(typeof v!="boolean"&&(v=!!h.hasState(qt)||h.paused),function(K,Y,$){let Z=K.poll(Y?"beforeplay":"beforepause",{forced:$});return Z&&Z.defaultPrevented}(h,v,R))return Promise.resolve();if(!v)return h.hasState(Qt)?(h.setState(qt,!0),h.setState(Qt,!1),Promise.resolve()):Promise.resolve(h.pause());if(h.reaper==0)return Promise.resolve();let I=h.reaper.get("__pending_play");return h.paused||I?I?(I.src!==De(h.original_src)&&Q(h),I):(function(K){return(K.networkState==0||K.readyState==0)&&K.currentSrc==De(K.original_src)}(h)&&Q(h),function(K){let Y=K.hasState("is-autoplay"),$=Y&&ti(K.opts);return $&&(K.muted&&K.toggleMute(!1),K.volume==0&&(K.volume=1)),Y&&K.setState("is-autoplay",!1),K.play().then(()=>{K.hasState(qt)&&K.togglePlay(!1)}).catch((Z)=>{if(console.warn(Y?$?`[flowplayer/play] autoplay audio required
|
|
2
|
+
%s`:`[flowplayer/play] attempting muted autoplay
|
|
3
|
+
%s`:"",Z.message,`
|
|
4
|
+
instance:`,K),Y&&!$)return K.muted=!0,K.play()})}(h)):(h.setState(qt,!1),!h.hasState(Re)&&h.setState(Qt,!0),Promise.resolve())}function Q(h){h.opts.is_native&&(h.hasState(Qe)||(h.hasState(Ge)||h.emit(gt),h.setState(Ge,!0),h.load()))}function De(h){let g=document.createElement("a");return g.href=h,g.href}function Tr(h,g){var v={};for(var R in h)Object.prototype.hasOwnProperty.call(h,R)&&g.indexOf(R)<0&&(v[R]=h[R]);if(h!=null&&typeof Object.getOwnPropertySymbols=="function"){var I=0;for(R=Object.getOwnPropertySymbols(h);I<R.length;I++)g.indexOf(R[I])<0&&Object.prototype.propertyIsEnumerable.call(h,R[I])&&(v[R[I]]=h[R[I]])}return v}function Fs(h){let g=document.createElement("a");g.href=h;let v=g.pathname&&g.pathname.split(".");return v.length>1&&v[v.length-1]}function Ar(h){switch(h){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return h}}let kn=(h)=>{var{src:g}=h,v=Tr(h,["src"]);return[Object.assign({src:g,type:g?Ar("video/"+Fs(g)):""},v)]};function pi(h){return kn({src:h})}function _r(h){var{src:g,type:v}=h,R=Tr(h,["src","type"]);return g&&v?[Object.assign({src:g,type:v},R)]:v&&!g?[Object.assign({type:v},R)]:kn(Object.assign({src:g},R))}var Yi;function li(h,g,v,R={safari:!1}){let I=function(K){return typeof K=="string"?pi(K):Array.isArray(K)||typeof K!="object"?K.reduce(function(Y,$){return typeof $=="string"&&($=pi($)),typeof $!="object"||Array.isArray($)||($=_r($)),Y.concat($)},[]):_r(K)}(v);return function(K){[si,qt,Qt,Re,ai,Ge,Qe,Je].forEach((Y)=>K.setState(Y,!1)),K.setState(Se,!0)}(h),Array(...Array(I.length)).map((K,Y)=>Y).some((K)=>{let Y=I[K];if(Yi.Ok==function($,Z,rt){$.emit("src",rt),Z.playback_token&&typeof rt.src=="string"&&rt.src.startsWith("https://")&&(rt.src=function(Vt,oe){let ke=new URL(Vt);return ke.pathname=`/pt:${oe}${ke.pathname}`,ke.toString()}(rt.src,Z.playback_token)),typeof rt.src=="string"&&($.original_src=rt.src);let Bt=function(Vt,oe,ke){return Vt.plugins.filter((Ke)=>{return(Te=Ke)&&"wants"in Te;var Te}).find((Ke)=>Ke.wants(ke.src||"",ke,oe))}($,Z,rt);return $.setOpts({is_native:!Bt}),Bt?(Bt.onload(Z,$.root,$,rt),Yi.Ok):Yi.Err}(h,g,Y)||Yi.Ok==function($,Z,rt,Bt={safari:!1}){var Vt;if(/^audio\//.test(rt.type||"")&&$.emit("audioonlysource"),Z.start_time&&(rt.src=rt.src+"#t="+Z.start_time),$.canPlayType(rt.type||"")=="")return Yi.Err;if(rt.drm&&(!rt.drm["com.apple.fps.1_0"]||!Bt.safari))return Yi.Err;return typeof rt.src=="string"&&($.preload=(Vt=Z.preload)!==null&&Vt!==void 0?Vt:"auto",$.src=rt.src),Yi.Ok}(h,g,Y,R))return!0;K==I.length-1&&typeof Y.src=="string"&&(h.src=Y.src)}),h}(function(h){h[h.Err=0]="Err",h[h.Ok=1]="Ok"})(Yi||(Yi={}));let Rn=[J,G,"src","seek:cancel"];var nn;function Jr(h,g,v){return isNaN(h.duration)||isNaN(h.currentTime)?{}:(g.offset+=v,g.offset==0?Xn(h,g):(g.timer&&clearTimeout(g.timer),g.timer=setTimeout(function(){h.reaper!=0&&(h.currentTime=function(R,I,K=0){return Math.max(Math.min(I,R),K)}(h.currentTime+g.offset,h.duration),g.timer=0,Xn(h,g))},1000),function(R,I){R.setState("will-seek",!0),R.setState(nn.BACKWARD,I.offset<0),R.setState(nn.FORWARD,I.offset>0)}(h,g),h.emit("seek:queued",g),g))}function Xn(h,g){g.timer&&clearTimeout(g.timer),g.timer=g.offset=0,function(v){v.setState(nn.FORWARD,!1),v.setState(nn.BACKWARD,!1),v.setState("will-seek",!1)}(h)}function Qr(){if(typeof document=="undefined")return!1;let h=document.documentElement;return h&&h.getAttribute("dir")=="rtl"}function vi(...h){let g=document.createElement("div");return h.length==0||g.classList.add(...h),g}function xi(h,g,v){let R=function(I){return Array.isArray(I)?I.slice(0):I.split(".")}(g);for(;R.length;){if(h==null)return v;let I=R.shift();if(typeof I!="string")return v;h=h[I]}return h==null?v:h}function Dn(h){let g=typeof h=="number"?h:parseInt(h,10);return(g>9?"":"0")+g}function Ni(h){if(isNaN(h)||h>=Number.MAX_SAFE_INTEGER)return"";let g=h<0?"-":"";h=Math.round(Math.abs(h));let v=Math.floor(h/3600),R=Math.floor(h/60);return h-=60*R,v>=1?(R-=60*v,g+v+":"+Dn(R)+":"+Dn(h)):g+Dn(R)+":"+Dn(h)}(function(h){h.FORWARD="forward",h.BACKWARD="backward"})(nn||(nn={}));let ci=navigator.languages||[navigator.language];function Cn(h,g,v){let R={};return v=g.lang||v,h[v]&&(R[v]=h[v]),function(){try{return ci.reduce((I,K)=>~K.indexOf("-")?I.concat(K,K.split("-")[0]):I.concat(K),[])}catch(I){return[]}}().forEach(function(I){h[I]&&!R[I]&&(R[I]=h[I])}),Object.values(R)}let zi=[1e7]+"-1000-4000-8000-100000000000",Ne=()=>typeof crypto=="undefined"?"":zi.replace(/[018]/g,(h)=>(h^crypto.getRandomValues(new Uint8Array(1))[0]&15>>h/4).toString(16)),Xi="";(function(){let h=!1;try{let g=Object.defineProperty({},"passive",{get:function(){h=!0}});window.addEventListener("testPassive",null,g),window.removeEventListener("testPassive",null,g)}catch(g){}})();let In=["touchstart","touchmove"];function Jn(h,g){let v=new CustomEvent(h,{detail:g,cancelable:!0});return g&&Object.defineProperty(v,"data",{get:()=>g}),v}function Pi(h,g,v){let R=Jn(g,v);return h.dispatchEvent(R),h}function dn(h,g,v){let R=Jn(g,v);return h.dispatchEvent(R),R}function Ue(h,g,v,R){Array.isArray(g)?g.forEach((I)=>On(h,I,v,R)):On(h,g,v,R)}function On(h,g,v,R){if(I=g,!~In.indexOf(I))return h.addEventListener(g,v,R),h;var I;let K=Object.assign(R||{},{passive:!0});return h.addEventListener(g,v,K),h}function Ji(h,g,v,R){return Ue(h,g,v,Object.assign(R||{},{once:!0}))}class Lr{constructor(h,g){this.implementation=h,g&&g.keys().forEach((v)=>{typeof g.implementation[v]=="string"&&this.implementation.setItem(v,g.implementation[v])})}keys(){var h;let g=[];for(var v=0;v<this.implementation.length;v++)((h=this.implementation.key(v))===null||h===void 0?void 0:h.startsWith("flowplayer/"))&&g.push(this.implementation.key(v));return g}removeItem(h){try{this.implementation.removeItem("flowplayer/"+h)}catch(g){}}getItem(h){try{return this.implementation.getItem("flowplayer/"+h)}catch(g){return null}}setItem(h,g){try{this.implementation.setItem("flowplayer/"+h,g)}catch(v){}}clear(){try{this.keys().forEach((h)=>this.implementation.removeItem(h))}catch(h){}}get length(){try{return this.keys().length}catch(h){return 0}}key(h){try{return this.implementation.key(h)}catch(g){return null}}}class xn{constructor(){this.pairs=[]}get length(){return this.pairs.length}clear(){this.pairs=[]}getItem(h){var g;return((g=this.pairs.find((v)=>v[0]===h))===null||g===void 0?void 0:g[1])||null}key(h){return this.pairs[h][0]||null}removeItem(h){this.pairs=this.pairs.filter((g)=>g[0]!==h)}setItem(h,g){this.removeItem(h),this.pairs.push([h,g])}}let Zr={preload:"auto",rtl:!1,controls:!0},ts=["muted","preload"];function Qn(h,g,v){let R;v.live_state={dvr_window:void 0,get dvr(){return R},set dvr($){R=$;let Z=!(!h.live||$);v.hasState(oi)!=Z&&v.setState(oi,Z)}},v._storage=new Lr(["localStorage","sessionStorage"].map(($)=>{try{let Z=window[$];return Z.getItem(""),Z}catch(Z){return console.debug(`Access to window.${$} denied, trying next option`),null}}).find(($)=>!!$)||new xn),v.toJSON=function(){return{duration:v.duration,volume:v.volume,currentTime:v.currentTime,states:v.root.className}},v.setSrc=function($){return li(v,h,$,b())},v.playerState=v.playerState||{},v.setState=function($,Z){if(v.playerState[$]===!!Z)return v;let rt=Object.assign({},v.playerState,{[$]:Z});return v.playerState=rt,Pi(v,"state",v.playerState),v},v.createComponents=function(...$){return Array.from({length:$.length}).map((Z,rt)=>Li(this,$[rt]))},v.hasState=function($){return!!v.playerState[$]},v.transitionState=function($,Z,rt){!v.hasState($)&&v.hasState(Z)||(rt=0),rt&&v.setState("is-toggling",!0),v.setState(Z,!1),v.setState($,!0),rt&&setTimeout(function(){v.setState("is-toggling",!1)},rt)},v.emit=($,Z)=>(Pi(v,$,Z),v),v.on=($,Z)=>(Ue(v,$,Z),v),v.once=($,Z)=>(Ji(v,$,Z),v),v.off=($,Z)=>{var rt,Bt;return rt=$,Bt=Z,v.removeEventListener(rt,Bt),v},v.poll=($,Z)=>dn(v,$,Z),v.togglePlay=function($){return v.hasState("is-error")?Promise.reject():Hi(v,0,$)},v.toggleMute=function($){$=$==null?!v.muted:!!$,v.muted=$,v.muted||v.volume||(v.volume=1),Pi(v,"volumechange")},v.toggleDisable=function($){$=$==null?!v.disabled:!!$,v.setState("is-disabled",$),v.disabled=$},v.destroy=function(){v.pause();let $=p.indexOf(v);~$&&p.splice($,1),setTimeout(function(){v.setSrc([]),v.reaper&&v.reaper.clear(),Pi(v,J),v.setState("is-destroyed",!0)},0)},v.setAttrs=function($){return ts.forEach((Z)=>{if(!(Z in $))return;let rt=$[Z];rt?v.setAttribute(Z,rt.toString()):v.removeAttribute(Z)}),v},v.opt=function($,Z){return Z=Z===void 0?xi(Zr,$):Z,xi(h,$,Z)},v.i18n=function($,Z){if(!v.reaper)return"";let rt=v.reaper.get("translations");return rt?function Bt(Vt,oe,ke,Ke){return(Ke=Ke||0)>=Vt.length?ke:xi(Vt[Ke],oe,Bt(Vt,oe,ke,Ke+1))}(rt,$,Z||""):Z||""},v.setOpts=function($){Object.assign(h,$),h.live&&!v.hasState(Ii)&&(v.setState(oi,!0),Pi(v,"live")),"disabled"in $&&$.disabled!==void 0&&v.toggleDisable($.disabled),"muted"in $&&$.muted!==void 0&&v.toggleMute($.muted),"dvr"in h&&(v.live_state.dvr=v.opt("dvr")),v.setState("is-rtl",v.opt("rtl",function(Z){if(!Z)return Qr();let rt=Z.getAttribute("dir");return rt?rt=="rtl":Qr()}(g))),v.setState(Ii,!!h.live),v.setState("has-poster",typeof h.poster=="string"&&h.poster.length>0),v.setState("is-seekable",!!h.seekable),v.setState("no-controls",h.controls==0),g.style.backgroundImage=v.hasState("has-poster")?"url('"+h.poster+"')":"",Pi(v,at,h)},v.renderPlugin=function($){dn(v,"renderplugin",$).defaultPrevented||v.root.appendChild($)};let I={offset:0,timer:0};var K,Y;Y=I,(K=v).on(Rn,function(){Xn(K,Y)}),v.enqueueSeek=function($){if(v.opts.seekable!=0&&!(v.opts.disabled==1&&$>0))return Jr(v,I,$)},v.deviceId=function(){return function($){if(Xi)return Xi;try{let Z=$.getItem("flowplayer/uuid");if(Z)return Z;let rt=Ne();return $.setItem("flowplayer/uuid",rt),rt}catch(Z){return Xi=Ne()}}(v._storage)}}function Nn(h,g){let v=g.querySelector("video"),R=v||(h._video_element_callback?h._video_element_callback(h):document.createElement("video"));return R.classList.add("fp-engine"),R.playsInline=!0,v||g.append(R),R}var Zn=typeof global!="undefined"?global:typeof self!="undefined"?self:typeof window!="undefined"?window:{};function Pn(){return typeof window!="undefined"?window:Zn!==void 0?Zn:{}}let Pe=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function di(h,g){return!!~Pe.indexOf(h)||h.indexOf(g)===h.length-g.length}di.check_whitelist=function(h){return!!~Pe.indexOf(h)};let Mn="production";function Mi(h,g){let v={valid_jwt:!1,raw:"",data:{acl:0},exp:0},R={c:"{}",exp:0};g=g||{};try{R=_i(h),v.valid_jwt=!0}catch(I){}return v.raw=h,v.data=JSON.parse(R.c),v.exp=R.exp,g.require_valid_token&&Mi.validate(v),v}function tr(h){try{return Mi.validate(h),{success:!0,message:""}}catch(g){return{success:!1,message:g.message}}}var Ki;function qe(h){return{grant:h,is_granted:(g)=>(h&g)===g}}function wr({root:h,video:g,data:v}){g&&g.destroy(),console.error(new Error(v.details||v.reason)),h.innerHTML="",h.classList.remove("flowplayer"),h.classList.add("flowplayer-fatal"),h.style.removeProperty("background-image");let R=document.createElement("h2");R.textContent="Playback Error";let I=document.createElement("p");I.textContent="Are you the site owner?";let K=document.createElement("a");K.classList.add("troubleshoot"),K.target="_blank",K.href="https://docs.flowplayer.com/troubleshooting/player#"+v.reason,K.textContent="Troubleshoot?";let Y=document.createElement("img");Y.src="https://flowplayer.com/user/pages/images/logo-white.png",h.append(R,I,K,Y)}function Qi(h){return(g)=>{setTimeout(function(){if(!g.defaultPrevented&&!g.prevented)return h(g)},0)}}Mi.validate=function(h){if(typeof h=="string"&&(h=Mi(h)),!h||!h.raw){if(di.check_whitelist(window.location.hostname)||Mn.toString()==="dev")return!0;throw new Error("No token provided in configuration")}if(!h.valid_jwt)throw new Error("Invalid token provided");let g=window.location.hostname,v=di.bind(null,g);if(Mn.toString()!=="dev"&&h.data.domain&&h.data.domain.length&&!h.data.domain.some(v))throw new Error("Domain not allowed");if(Mn.toString()!=="dev"&&1000*h.exp-Date.now()<0)throw new Error("Expired token");return!0},Mi.id=function(h){if(h)return typeof h=="string"&&(h=Mi(h)),h.data.id},function(h){h[h.ADS=2]="ADS",h[h.ANALYTICS=4]="ANALYTICS",h[h.NO_METERING=8]="NO_METERING",h[h.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",h[h.WOWZA_VIDEO=32]="WOWZA_VIDEO"}(Ki||(Ki={})),qe.of=qe,qe.from_token=function(h){let g=Mi(h,{require_valid_token:!0});return qe.of(g.data.acl)},qe.permissions=Ki;function Vi(h,g){if(!h.parentElement)return;let v=h.clientWidth/h.parentElement.clientWidth*100/2;h.style.left=g-v+"%",h.style.display="block"}function yi(h,g){if(isNaN(h.duration))return;let v=h.buffered;v.length&&(g.style.width=Math.min(v.end(v.length-1)/h.duration*100,100)+"%")}function Fi(h,g){h.style.width="0",g.style.display="none"}function me(h,g){let v=h.seekable;if(typeof h.opts!="object"||v.length==0)return{head:0,tail:0};let R=kr(h),I=g||h.live_state.dvr_window;return{head:R,tail:typeof I!="number"||R-I<0?v.start(0):R-I}}function ei(h){return h.opt("live",!1)||h.duration>=Number.MAX_SAFE_INTEGER}function Bi(h){return isFinite(h.duration)?h.duration:h.seekable.length==0?0:me(h).head}function kr(h){var g;let v=h.seekable;return v.length?h.hasState("is-chromecast-playing")||!((g=h.hls)===null||g===void 0?void 0:g.liveSyncPosition)?v.end(v.length-1):h.hls.liveSyncPosition:0}function er(h,g,v){if(!g.seekable||g.seekable.length==0)return;Vi(v,h);let R=me(g),I=(100-Math.max(0,Math.min(h,100)))/100*(R.head-R.tail);v.innerText="-"+Ni(I)}function Rr(h){h.currentTime=me(h).tail}function ir(h){try{h.dvr_offset=0,h.currentTime=kr(h)}catch(g){console.warn("failed to seek to now: %j",g)}}function Dr(h,g){h/=100,g.currentTime=function(v,R){if(R>1||R<0)return console.warn("cannot calculate a percent outside of range(0..1)"),0;let I=me(v);return I.tail+R*(I.head-I.tail)}(g,h)}function Ui(h,g){h.style.width="0",g.style.display="none"}function nr(h,g){let v=g.clientWidth;g.classList.toggle("is-small",v<600),g.classList.toggle("is-tiny",v<400)}function rr(h,g,v){let R=!0;g.classList.add("flowplayer"),nr(0,g),Ue(v,H,()=>{if(!v.hasState(Ge)&&!v.hasState(Qe)&&h.is_native&&h.preload!=="none")return h.preload==="metadata"?(v.setState(Ge,!0),v.emit(gt)):void Q(v)}),Ue(v,ne,()=>{h.is_native&&h.preload==="metadata"&&v.paused&&v.emit(lt)}),Ue(v,[H,"resize"],function(){nr(0,g)}),Ue(v,"state",function(){Object.entries(v.playerState).forEach(function([I,K]){g.classList.toggle(I,K)})}),Ue(v,"timeupdate",function(){v.setState(Ze,!v.hasState("is-casting")&&!v.hasState(Se)&&v.readyState<3)}),Ue(v,C,function(I){let K=v.original_src;Qi(()=>{if(K===v.original_src){if(v.setState(Xe,!0),Ji(v,"timeupdate",function(){v.setState(Xe,!1),K===v.original_src&&v.setState(Se,!h.loop&&!!h.rewind&&v.paused)}),h.loop)return v.togglePlay(!0);h.rewind&&(v.currentTime=0)}})(I)}),Ue(v,[G,W],function(I){v.setState(si,I.type==G)}),Ue(v,"remotesession:ended",function(I){setTimeout(()=>{I.defaultPrevented||(v.currentTime=I.detail.currentTime)},0)}),Ue(v,C,function(){v.setState(Re,!1),R=!0}),Ue(v,Ft,()=>{if(!v.opts.live||!v.opts.is_native)return;let I=v.seekable;I.length!=0&&v.emit("dvr/window",I.end(I.length-1)-I.start(0))}),Ue(v,A,function(){v.setState(Qe,!0),v.setState(Ge,!1)}),Ue(v,"play",()=>{v.setState(Qt,!0)}),Ue(v,[Mt,lt,H],function(I){if(!v.hasState(si)&&(I.type!=lt||h.autoplay||v.setState(Ze,!1),I.type!=H||v.opt("preload")!="none"||h.autoplay)){if(I.type==H&&h.autoplay)return Ji(v,Ct,function(){v.setState(Ze,!1)});I.type!=Mt||v.hasState(Qe)||v.setState(Ge,!0),v.setState(Xe,!1),v.setState(Ze,I.type==Mt)}}),Ue(v,[Ct,ft],function(I){setTimeout(()=>{let Bt=new CustomEvent("flowplayer/"+I.type,{detail:v});document.dispatchEvent(Bt)},0);let K=I.type==Ct,Y=v.currentTime==v.duration,$=K&&R&&h.autoplay||v.hasState(Ze);if(K&&(v.started=!0,R=!1),v.setState(Ze,!1).setState(Qt,!1),!K&&v.setState(qt,!1),Y)return;let Z=K?Re:ai,rt=K?ai:Re;v.transitionState(Z,rt,$?0:300),!v.hasState(Se)||v.root.classList.contains("ad-hide-first-frame")||v.root.classList.contains("preroll-ios")||function(Bt,Vt){if(!Bt.hasState(Ii)||![void 0,0,-1].includes(Vt)||!Bt.seekable.length||Bt.hasState("has-casted"))return Bt.setState(Se,!1);Bt.once(W,()=>Bt.setState(Se,!1)),Vt===0?Rr(Bt):ir(Bt)}(v,h.start_time)})}let Fn=[0].concat(Array.from({length:100}).map((h,g)=>(g+1)/100));function c(h,g,v){if(!window.IntersectionObserver)return;let R={should_resume:!!h.autoplay,locked:!1};Ue(v,"play",function(){R.locked||(R.should_resume=!0)});let I=()=>{if(!h.autoplay)return;if(v.hasState(de)&&R.should_resume)return v.togglePlay(!0);let $=v.currentSrc;h.autopause||v.hasState(de)||!R.should_resume||Ji(v,"viewenter",()=>{h.autoplay&&R.should_resume&&$===v.currentSrc&&v.togglePlay(!0)})},K=()=>{if(!h.autoplay)return;if(!h.is_native)return;if(h.preload==="auto")return;if(v.hasState(de))return Q(v);let $=v.currentSrc;Ji(v,"viewenter",()=>{$!==v.currentSrc||v.readyState>1||!v.paused||Q(v)})};Ue(v,"src",function(){R.should_resume=!!h.autoplay,v.off(H,K),v.once(H,K),v.off(lt,I),v.once(lt,I)}),Ue(v,ft,function(){R.locked||(R.should_resume=!1)});let Y=new IntersectionObserver(($)=>{$.forEach((Z)=>{setTimeout(()=>{let rt=Z.intersectionRatio,Bt=v.hasState(de);if(v.setState(de,rt>=0.2),v.emit("intersectionchange",{ratio:rt}),Bt===v.hasState(de))return;let Vt=v.hasState(de)?"viewenter":"viewleave";v.emit(Vt)},0)})},{threshold:Fn});Y.observe(g),v.on(J,()=>Y.disconnect()),Ue(v,"viewenter",function(){!R.should_resume||!h.autopause||m()||v.opts.autoplay&&!v.readyState||v.togglePlay(!0)}),Ue(v,"viewleave",function(){if(!h.autopause||m())return;let $=!v.paused;R.locked=!0,v.pause(),setTimeout(function(){R.should_resume=$,R.locked=!1},0)})}function m(){return p.find((h)=>h.hasState("is-casting"))}function y(h,g){if(!window.ResizeObserver)return;let v=new ResizeObserver((R)=>{let I=R[R.length-1];g.emit("resize",I)});v.observe(h),g.on(J,()=>v.disconnect())}function O(h){if(typeof h=="number"&&!isNaN(h))return Number(h);if(typeof h=="string"){let g=h.split(":");return Number(g[1])/Number(g[0])}return h}function N(h,g,v){let R=!!h.ratio,I=document.createElement("div");I.classList.add("fp-ratio"),g.append(I);let K=O(h.ratio||0.5625);I.style.paddingTop=100*K+"%";let Y=[A,ne];v.on(Y,function(){if(R)return;let $=v.videoHeight&&v.videoWidth&&v.videoHeight/v.videoWidth;$&&v.setOpts({ratio:$})}),v.on(at,function(){let $=v.videoHeight&&v.videoWidth&&v.videoHeight/v.videoWidth,Z=O((h==null?void 0:h.ratio)||$||0.5625);K!==Z&&(K=Z,I.style.paddingTop=100*Z+"%")})}class B{constructor(){this.cleanUp=this.cleanUp.bind(this),this.render=this.render.bind(this),this.wireUp=this.wireUp.bind(this)}init(h,g,v){this.root=g,this.player=v,this.wireUp()}wireUp(){var h,g;this.cleanUp(),(h=this.player)===null||h===void 0||h.once(Ct,this.render),(g=this.player)===null||g===void 0||g.once(C,this.wireUp)}cleanUp(){var h,g,v,R;(g=(h=this._logo)===null||h===void 0?void 0:h.parentElement)===null||g===void 0||g.removeChild(this._logo),(v=this.player)===null||v===void 0||v.off(Ct,this.render),(R=this.player)===null||R===void 0||R.off(C,this.wireUp)}render(){var h,g,v;(g=(h=this._logo)===null||h===void 0?void 0:h.parentElement)===null||g===void 0||g.removeChild(this._logo);let R=((v=this.root)===null||v===void 0?void 0:v.querySelector(".fp-ui"))||this.root;if(!R)return;let I=this._logo=document.createElement("a");I.href="https://explorer.flowplayer.com",I.target="_blank",Object.entries(F).forEach(([K,Y])=>{I.style.setProperty(K,Y,"important")}),R.appendChild(I)}}B.pluginName="explorer-plan";let F={display:"block",opacity:"1",visibility:"visible",width:"33%","padding-top":"9%",position:"absolute","z-index":"9999",bottom:"25%",left:"10%","background-size":"cover","background-image":"url(https://static.flowplayer.com/explorer/explorer.svg)"},ut="flowplayer/"+Ct;function ct(h){let g=(v)=>{v.detail!==h&&h.opt("multiplay")===!1&&h.togglePlay(!1)};h.on(J,()=>document.removeEventListener(ut,g)),document.addEventListener(ut,g)}function It(h,g){let v=[];h.addEventListener("contextmenu",(R)=>{let I=R.timeStamp;for(v.push(I);v.length>3;)v.shift();v.length>=3&&v.every((K)=>K-I<3000)&&(console.debug("flowplayer/debug rendering info"),function(K,Y){var $;(function(Vt){let oe=Vt.querySelector(".debug-info");oe==null||oe.remove()})(K);let Z=document.createElement("div");Z.classList.add("debug-info");let rt=yt("flowplayer.version","3.28.2");Z.append(rt);let Bt=($=Y==null?void 0:Y.hls)===null||$===void 0?void 0:$.constructor;if(Bt&&Bt.version){let Vt=yt("hls.version",Bt.version);Z.append(Vt)}K.appendChild(Z)}(h,g))})}let yt=(h,g)=>{let v=document.createElement("div");v.classList.add("row",h);let R=document.createElement("span");R.classList.add("attr"),R.textContent=h;let I=document.createElement("span");return I.textContent=g,I.classList.add("value"),v.append(R,I),v};function Pt(h,g){let v=function(){try{return localStorage.getItem("flowplayer/debug")}catch(I){return""}}(),R=(I,...K)=>{try{let Y=(g==null?void 0:g.debug)||v;Y&&h.match(Y)&&console.log(`flowplayer/${h} -- ${I}`,...K)}catch(Y){console.warn(Y)}};return R.log=R,R}let Ot="without_recovery",Et="off";class Tt extends Error{static getErrorKey(h){return h in Fe?Fe[h]:Fe["00-00"]}constructor(h,g,v={}){super(h),this.message=h,this.flowplayerErrorCode=g,this.config=v,this.id=Ne(),this.isFatal=!!v.isFatal,this.errorKey=Tt.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}let ie=Pt("core/retry");function _e(h,g){let v={pending:void 0,count:0};h.on("flowplayer:error",(R)=>{var I,K,Y,$,Z;let rt=(I=R.detail)===null||I===void 0?void 0:I.error;rt.config.isRetry=!!v.count,v.pending===void 0&&((Y=(K=rt.config)===null||K===void 0?void 0:K.retryOpts)===null||Y===void 0?void 0:Y.retry)!==Et&&(g.retry||((Z=($=rt.config)===null||$===void 0?void 0:$.retryOpts)===null||Z===void 0?void 0:Z.retry))&&(++v.count,v.pending=function(Bt,Vt,oe){var ke,Ke;return setTimeout(()=>{var Te;Bt.hasState("is-destroyed")||(Vt.pending=void 0,((Te=oe.config.retryOpts)===null||Te===void 0?void 0:Te.retry)!==Ot&&Bt.emit("recover"),Bt.emit("retry",{error:oe}),ie("%s try",Vt.count))},(Ke=(ke=oe.config.retryOpts)===null||ke===void 0?void 0:ke.retryTimeout)!==null&&Ke!==void 0?Ke:3000*Vt.count)}(h,v,rt))}),h.on(Ct,()=>{v.count=0}),h.on(["src","recover"],(R)=>{R.type==="src"&&(v.count=0),clearTimeout(v.pending),v.pending=void 0}),h.on("retry",Qi(()=>{h.load()}))}let Be="rebuffer",He="rebuffer:ended",wi="insights:ttff",sr="insights:time_to_first_frag_loaded",Bn="insights:watched_interval";var Cr=Object.freeze({__proto__:null,RECORD:"health:record",REBUFFER:Be,REBUFFER_ENDED:He,DISPLAY:"display",TIME_TO_FIRST_FRAME:wi,TIME_TO_FIRST_FRAGMENT_LOADED:sr,WATCHED_INTERVAL:Bn});let _a=[gt,"error","src"];function Bs(h){try{return!!new URL(h)}catch(g){return!1}}let es=navigator;function La(h){var g,v;let R=(g=h.hls)===null||g===void 0?void 0:g.bandwidthEstimate;return R?0.000001*R:((v=es.connection)===null||v===void 0?void 0:v.downlink)||-1}function Us(h,g){return async function(v,R){try{await fetch(v,{body:R,method:"POST",mode:"no-cors"})}catch(I){}}(h,JSON.stringify({events:g}))}let wa=(h)=>{switch(h){case!0:return qi.ON;case!1:return qi.OFF;default:return h}};function ar(){try{let h=window.location!==window.parent.location?document.referrer:document.location.href;return typeof h=="string"&&h.slice(0,200)}catch(h){return!1}}let Ir=[],or="https://ihi.flowplayer.com/v1/health/events";function Un(h){if(h.suspended)return;let g=Ir.slice(0);Ir.length=0,g.length!=0&&(h.logger.log(`:dispatch events={${g.length}}`),Us(function(){try{return typeof window=="undefined"?or:window.__FLOWPLAYER_INSIGHTS_URL?window.__FLOWPLAYER_INSIGHTS_URL:or}catch(v){return or}}(),g))}async function ki(h,g,v){let R=await un();Ir.push(Object.assign(g,R)),h.logger.log(":enqueue",g.event,g),Ir.length<10&&!v||Un(h)}let $s=()=>{var h,g;try{let v=window;return(g=(h=v==null?void 0:v.google)===null||h===void 0?void 0:h.ima)===null||g===void 0?void 0:g.VERSION}catch(v){return}},un=async()=>({client_time:Date.now()}),Or=(h,g)=>Object.assign(h,{detail:g}),ui=(h,{event:g,media_session_id:v,session_id:R,play_range_id:I})=>({event:g,media_session_id:v,session_id:R,play_range_id:I,device_id:h.deviceId(),version:"3.28.2",commit:"4a1bfbd8cc190b9064b5dbb5e786f1b1229b7b94",ima_sdk_version:$s(),preload:h.opt("preload"),autoplay:wa(h.opt("autoplay")),live:h.opt("live"),dvr:!!h.live_state.dvr,source:h.original_src,downlink_mbs:La(h),page_url:ar(),player_id:h.opt("metadata.player_id"),media_id:h.opt("metadata.media_id")||h.opt("metadata.stream_target_id"),site_id:h.opt("metadata.site_id"),category_id:h.opt("metadata.category_id"),sitegroup_id:h.opt("metadata.sitegroup_id"),token:h.token,plugins:h.plugins.map((K)=>K.constructor.name).sort((K,Y)=>K.localeCompare(Y)),current_time:h.currentTime,external_media_id:h.opt("external_media_id")}),$n=(h)=>({bitrate:h==null?void 0:h.bitrate,resolution:h==null?void 0:h.attrs.RESOLUTION,frame_rate:h==null?void 0:h.attrs["FRAME-RATE"]});function Gs(h,g,v,R){let I=ui(g,h.eventInfo(v)),{before:K,after:Y}=R;ki(h,(($,Z,rt)=>Object.assign($,{state:{before:Z,after:rt}}))(I,$n(K),$n(Y)))}let Hs=(h,g)=>{let v=null;return(...R)=>{v!==null&&(clearTimeout(v),v=null),v=setTimeout(()=>g(...R),h)}};var ii;(function(h){h[h.Starting=0]="Starting",h[h.ConfigFinalized=1]="ConfigFinalized",h[h.TimerStartedWithAutoplay=2]="TimerStartedWithAutoplay",h[h.TimerStartedWithUserGesture=3]="TimerStartedWithUserGesture",h[h.MetricReported=4]="MetricReported"})(ii||(ii={}));let Gn=[k,"touchend"];class Ks{constructor(h=ii.Starting,g=!1){this.state=h,this.loadedAd=g}reset(){this.state=ii.Starting,this.loadedAd=!1,this.start=void 0,this.end=void 0,this.adDetails=void 0}adInfo(){let{ad_tag_id:h,vast_ad_id:g}=this.adDetails||{};return{ad_tag_id:h,vast_ad_id:g}}toJSON(){return Object.assign({ad_was_requested:this.loadedAd,ms_to_first_frame:Math.round(this.end&&this.start?this.end-this.start:-1)},this.adInfo())}startTimer(h){this.state==ii.ConfigFinalized&&(this.state=h,this.start=performance.now())}hasStarted(){return[ii.TimerStartedWithAutoplay,ii.TimerStartedWithUserGesture].includes(this.state)}stopTimer(h){this.hasStarted()&&(this.end||(this.end=performance.now()),this.state=ii.MetricReported,h())}}function is(h){return Math.round(1000*h)/1000}class Vs{constructor(h){this.tickInterval=h,this.ewma=0,this.startTime=Date.now()}decay(){let h=Date.now()-this.startTime;return Math.pow(2,-h/(4*this.tickInterval))}update(h){let g=this.decay();return this.ewma=g*this.ewma+(1-g)*h,this.ewma}toJSON(){return this.ewma}}let bo={skipUnreliableSegments:!0};class bn{constructor(h){this.player=h,this.marchingInterval=void 0,this.lastWatchedPoint=void 0,this.watchedSum=0,this.lastReportedSum=0,this.ewmaTickWatched=new Vs(bn.AccuracyMilliseconds)}reset(){this.onNotWatching(),this.watchedSum=0,this.lastReportedSum=0,this.lastWatchedPoint=void 0}onNotWatching(){this.marchingInterval&&(this.updateWatched(),this.marchingInterval=clearInterval(this.marchingInterval))}onWatching(){this.marchingInterval||(this.lastWatchedPoint=this.createWatchedPoint(),this.marchingInterval=setInterval(()=>{this.updateWatched()},bn.AccuracyMilliseconds))}createWatchedPoint(){return{currentTime:this.player.currentTime,paused:this.player.paused}}updateWatched(){let h=this.createWatchedPoint();this.lastWatchedPoint&&this.calculateTimeWatched(this.lastWatchedPoint,h),this.lastWatchedPoint=h}calculateTimeWatched(h,g){var v,R;let I=g.currentTime-h.currentTime,K=this.ewmaTickWatched.update(I);if(!(I<0)&&!(((R=(v=this.player.opts)===null||v===void 0?void 0:v.health)===null||R===void 0?void 0:R.skipUnreliableSegments)!==!1&&1000*I>1.3*bn.AccuracyMilliseconds)&&(this.watchedSum+=I,this.watchedSum!=this.lastReportedSum&&(this.watchedSum>this.lastReportedSum+bn.ReportingIntervalSeconds||this.player.ended))){let Y=is(K),$={total_watched_seconds:is(this.watchedSum),tick_watched_seconds:Y,batch_watched_seconds:is(this.watchedSum-this.lastReportedSum)};this.lastReportedSum=this.watchedSum,this.player.emit(Bn,$)}}}bn.ReportingIntervalSeconds=5,bn.AccuracyMilliseconds=160;let To=Ne();class Ei{constructor(h,g){let v;this.session_id=To,this.suspended=!1,this.logger=Pt("health",g.opts),this.media_session_id=Ne(),this.play_range_id=Ne(),this.analyticsLoop=setInterval(()=>Un(this),2000),g.on(J,()=>clearInterval(this.analyticsLoop)),g.on(Ct,()=>{v!==this.media_session_id&&(v=this.media_session_id,this.first_playing_event_timestamp=Date.now()),this.play_range_id=Ne()});let R=Date.now()-1000;g.on("timeupdate",(K)=>{if(v!==this.media_session_id)return;let Y=Date.now();if(Y<R)return;R=Date.now()+5000;let $=ui(g,this.eventInfo(K.type)),Z=Or($,{duration:(rt=g.duration,Number.isFinite(rt)?rt:rt===1/0?-1:void 0)});var rt;this.first_playing_event_timestamp&&(Object.assign(Z,{ms_since_first_playing:Y-this.first_playing_event_timestamp}),this.first_playing_event_timestamp=void 0),ki(this,Z)});let I=this;if(g.health={get media_session_id(){return I.media_session_id},set media_session_id(K){I.media_session_id=K},get session_id(){return I.session_id},set session_id(K){I.session_id=K},toggle(K){K?I.resume():I.suspend()}},!Ei._UNLOAD_SUBSCRIBED){Ei._UNLOAD_SUBSCRIBED=!0;let K=(Y)=>h.instances.forEach(($)=>$.emit(Y.type));document.addEventListener("visibilitychange",(Y)=>{document.visibilityState=="hidden"&&K(Y)}),window.addEventListener("pagehide",K)}}eventInfo(h){return{event:h,media_session_id:this.media_session_id,session_id:this.session_id,play_range_id:this.play_range_id}}suspend(){this.suspended=!0,clearInterval(this.analyticsLoop)}resume(){this.suspended=!1,this.analyticsLoop=setInterval(()=>Un(this),2000)}init(h,g,v){if(ar().toString().startsWith("data:"))return this.suspend();(function(R){let I=null,K=()=>{I=null};R.on(Mt,function(Y){R.seeking||R.networkState===R.NETWORK_LOADING&&(R.readyState<HTMLMediaElement.HAVE_CURRENT_DATA||R.emit(Be))}),R.on(Be,(Y)=>{I=Y}),R.on(lt,(Y)=>{if(I){let $=Y.timeStamp-I.timeStamp;if(K(),$<31)return;if($>300000)return;R.emit(He,{rebuffer_duration:$/1000})}}),_a.forEach((Y)=>R.on(Y,K))})(v),function(R){let I;[lt,gt].forEach((K)=>{R.on(K,(Y)=>{let $=Date.now();switch(Y.type){case gt:return I=$;case lt:if(I)return R.emit(sr,{ms_since_loading_started:$-I}),I=null}})})}(v),function(R){if(window.performance===void 0)return;let I=new Ks;R.on("src",()=>{if(!R.opt("metadata.media_id"))return I.reset();I.reset(),I.state=ii.ConfigFinalized}),R.on(gt,()=>{(R.root.classList.contains("ad-hide-first-frame")||R.opt("autoplay"))&&I.startTimer(ii.TimerStartedWithAutoplay)}),Gn.forEach((K)=>{R.on(K,()=>{R.opt("autoplay")||I.startTimer(ii.TimerStartedWithUserGesture)})}),R.on("ad-requested",()=>{I.loadedAd=!0}),R.on("timeupdate",()=>{if(!(R.readyState<HTMLMediaElement.HAVE_CURRENT_DATA)){if(R.root.classList.contains("ad-hide-first-frame"))return!I.end&&(I.end=performance.now());switch(I.state){case ii.TimerStartedWithAutoplay:case ii.TimerStartedWithUserGesture:return I.stopTimer(()=>R.emit(wi,I.toJSON()))}}}),R.on("ad-started",(K)=>{switch(I.end=void 0,I.adDetails=K.detail,I.state){case ii.TimerStartedWithAutoplay:case ii.TimerStartedWithUserGesture:return I.stopTimer(()=>R.emit(wi,I.toJSON()))}})}(v),function(R){let I=new bn(R);R.on(gt,()=>I.reset()),R.on(Ct,()=>I.onWatching()),R.on(He,()=>!R.paused&&I.onWatching()),R.on(Be,()=>I.onNotWatching()),R.on(ft,()=>I.onNotWatching()),R.on(G,()=>I.onNotWatching()),R.on(C,()=>I.updateWatched()),R.on("visibilitychange",()=>I.updateWatched())}(v),v.on("display",(R)=>{ki(this,ui(v,this.eventInfo(R.type)),!0)}),v.on("health:record",({detail:R})=>{let I=ui(v,this.eventInfo(R.event));Object.assign(I,R.detail||{}),ki(this,I)}),[H,ne,A,Ft,Mt,Be].forEach((R)=>{v.on(R,(I)=>{ki(this,ui(v,this.eventInfo(I.type)))})}),[He,wi,sr,Bn].forEach((R)=>{v.on(R,(I)=>{let K=ui(v,this.eventInfo(I.type));ki(this,Object.assign(K,I.detail))})}),[Ct,ft,G,W,C,j,Nt,lt,gt].forEach((R)=>{v.on(R,(I)=>{ki(this,ui(v,this.eventInfo(I.type)))})}),v.on("volumechange",Hs(800,(R)=>{let I=ui(v,this.eventInfo(R.type));ki(this,Or(I,{volume:parseFloat(v.volume.toFixed(2)),muted:v.muted}))})),v.on("resize",Hs(800,(R)=>{let I=ui(v,this.eventInfo(R.type));ki(this,Or(I,{height:g.clientHeight,width:g.clientWidth}))})),v.on("hls/failover",(R)=>{let I=ui(v,this.eventInfo(R.type)),K=R.detail,{reason:Y,from:$}=K;ki(this,Or(I,{reason:Y,from:$}))}),v.on("qualitychange",({type:R,detail:I})=>{switch(I.plugin){case"hls":return Gs(this,v,R,I)}}),v.on("flowplayer:error",(R)=>{let I=ui(v,this.eventInfo(R.type)),K=R.detail.error;if(!K)return ki(this,I,!0);return ki(this,Or(I,K.toJSON()),!0)}),v.on("src",(R)=>{var I;let K=(I=R.detail)===null||I===void 0?void 0:I.src;if(typeof K!="string")return;if(!Bs(v.original_src))return;if(!Bs(K))return;if(K==v.original_src)return;this.media_session_id=Ne(),ki(this,ui(v,this.eventInfo(R.type))),Un(this),v.setOpts({health:Object.assign(Object.assign({},v.opts.health),bo)})}),v.on("visibilitychange",(R)=>{ki(this,ui(v,this.eventInfo(R.type))),Un(this)})}}function rn(h,g){return function(v){return v.extensions.reduce((R,I)=>R.find((K)=>K.pluginName===I.pluginName)?(console.warn("flowplayer: duplicate plugin %s detected, plugin names should be unique",I.name),R):(R.push(I),R),[])}(h).map((v)=>new v(h,g))}function lr(h){h.on("error",Qi((g)=>{let v=g instanceof MediaError?g:h.error;v&&h.emit("flowplayer:error",{error:cr(v,{resource:h.original_src})})}))}function cr(h,g={}){var v,R,I,K,Y,$;switch(h.code){case MediaError.MEDIA_ERR_ABORTED:return new Tt((v=h.message)!==null&&v!==void 0?v:"The playback was aborted, typically by the user.",Zt.PlaybackInternalAborted,Object.assign({isFatal:!1,retryOpts:{retry:Et}},g));case MediaError.MEDIA_ERR_NETWORK:return new Tt((R=h.message)!==null&&R!==void 0?R:"A network error prevented media from being downloaded.",Zt.NetworkHttpRequestFailed,Object.assign({isFatal:!0},g));case MediaError.MEDIA_ERR_DECODE:return new Tt((I=h.message)!==null&&I!==void 0?I:"An error occurred while decoding the media.",Zt.PlaybackVideoDecodeError,Object.assign({isFatal:!0},g));case MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED:return new Tt((K=h.message)!==null&&K!==void 0?K:"The media could not be loaded because the format is not supported.",Zt.MediaUnsupportedVideoFormat,Object.assign({isFatal:!0},g));case 5:return new Tt((Y=h.message)!==null&&Y!==void 0?Y:"Encrypted content could not be played due to missing keys or unsupported protection scheme.",Zt.ContentProtectionKeySystemNoKeys,Object.assign({isFatal:!0},g));default:return new Tt(($=h.message)!==null&&$!==void 0?$:"An unknown playback error occurred.",Zt.PlaybackUnknown,Object.assign({isFatal:!0},g))}}Ei.pluginName="health",Ei.events=Cr,Ei._UNLOAD_SUBSCRIBED=!1;let ka=function(){let h=Pn(),g=h.flowplayer?h.flowplayer:{extensions:[]};return Array.isArray(g.extensions)||(g.extensions=[]),g}();function Ri(h,g){if(typeof h=="function")return o.push(...[...arguments].filter((Z)=>typeof Z=="function")),Ri;typeof g=="string"&&(g={src:g}),g||(g={}),g.token||typeof window.__FLOWPLAYER_TOKEN!="string"||(g.token=window.__FLOWPLAYER_TOKEN);let v=typeof h=="string"?document.querySelector(h):h;if(!v)return console.error(new Error("Flowplayer: '"+h.toString()+"' not found"));let R=v.querySelector("video.fp-engine");if(R)return R;let I=tr(g.token);if(!I.success)return wr({root:v,data:{reason:"token",details:I.message}});let K=new Map,Y=Nn(g,v);Y.reaper=K,Y._customElements=ve,Object.defineProperty(Y,"token",{value:typeof g.token=="string"?Mi.id(g.token):"",writable:!1}),Y.addEventListener(J,()=>{K.clear(),Y.reaper=0,delete Y.root}),Y.root=v,g.token&&qe.from_token(g.token).is_granted(qe.permissions.DEVELOPER_PLAN)&&o.push(B),!~p.indexOf(Y)&&p.push(Y),Qn(g,v,Y),Y.setAttrs(g),Y.plugins=rn(Ri,Y),rr(g,v,Y),c(g,v,Y),y(v,Y),N(g,v,Y),ct(Y),It(v,Y),_e(Y,g),lr(Y),Y.plugins.forEach((Z)=>{try{Z.init(g,v,Y)}catch(rt){console.log("Error(plugin/%s)",Z.constructor.name,rt)}}),Y.setOpts(g),Y.opts=g,g.src&&Y.setSrc(g.src);let $=Y.readyState;return $>0&&Y.currentSrc&&Y.emit(ne),$>2&&Y.currentSrc&&Y.emit(lt),Y.emit("mount"),Y.on("error:fatal",function(Z){wr({root:v,video:Y,data:Z.data||{}})}),setTimeout(Pi,0,document,"flowplayer:player:created",Y),Y}Object.assign(Ri,ka),function(h){Array.isArray(h.extensions)&&h.extensions.forEach((g)=>o.push(g)),h.customElements=ve,h.defaultElements=Oe,h.version="3.28.2",h.commit="4a1bfbd8cc190b9064b5dbb5e786f1b1229b7b94",h.instances=p,h.extensions=o,h.support=b,h.events=Rt,h.states=en,h.errors=Zt,h.jwt=_i,h.autoplay=qi,h.quality=fe}(Ri),typeof document=="object"&&setTimeout(Pi,0,document,"flowplayer:umd",Ri),Ri.extensions.unshift.apply(Ri.extensions,[Ei]);let xr=(...h)=>h.reduce((g,v)=>Object.assign(Object.assign({},g),v),{}),Hn=(h,g)=>{let v=h.lastIndexOf(g);return~v&&h.splice(v,1),h};class Ie{static of(){return new Ie}static is_empty(h){return h.pending.length==0}static is_high_water(h){return h.open.length==Ie.MAX_OPEN_REQUESTS}static maybe_spawn_req(h){if(Ie.is_empty(h))return h;if(Ie.is_high_water(h))return h;try{let g=Ie.lpop(h);g&&Ie.request(h,g)}catch(g){}}static increment_failures(h){return h.stats.failures++,h.stats.failures>Ie.MAX_FAILURE_COUNT&&(h.stats.ttl=Date.now()+Ie.REQUEST_TTL_MS),h}static handle_error(h,g){Ie.rm(h,g),Ie.increment_failures(h)}static request(h,[g,v,R]){if(Date.now()<h.stats.ttl)return;let I=new XMLHttpRequest;h.open.push(I),I.timeout=Ie.REQUEST_TIMEOUT_MS,I.ontimeout=function(){Ie.handle_error(h,I)},I.onerror=function(K){Ie.handle_error(h,I)},I.onreadystatechange=function(){I.readyState==XMLHttpRequest.DONE&&Ie.rm(h,I),Math.floor(I.status/100)},I.onload=function(){Ie.rm(h,I),h.stats.failures&&h.stats.failures--},I.open(v,g),I.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{I.send(JSON.stringify(R))}catch(K){}}static rpush(h,...g){return g.forEach((v)=>{h.pending.length>=Ie.MAX_PENDING||(h.pending.push(v),Ie.maybe_spawn_req(h))}),h}static lpop(h){return h.pending.shift()}static rm(h,g){return Hn(h.open,g),h}constructor(){this.pending=[],this.open=[],this.stats={failures:0,ttl:0}}}Ie.MAX_OPEN_REQUESTS=3,Ie.MAX_PENDING=5,Ie.REQUEST_TIMEOUT_MS=4000,Ie.REQUEST_TTL_MS=5000,Ie.MAX_FAILURE_COUNT=3;var Ws=Ie.of();let ns=/:([a-zA-Z_]+)/g;class Si{static prepare(h,g){let v=document.createEvent("Event");return v.initEvent(h,!1,!0),v.ns=h,v.data=g,v}static of(h){return new Si(h)}constructor(h){this.emitter=h}info(h){this.emitter.dispatchEvent(Si.prepare(Si.NAMESPACE.INFO,h))}error(h){this.emitter.dispatchEvent(Si.prepare(Si.NAMESPACE.ERROR,h))}warn(h){this.emitter.dispatchEvent(Si.prepare(Si.NAMESPACE.WARN,h))}}var js;Si.NAMESPACE={INFO:"tracker:info",ERROR:"tracker:err",WARN:"tracker:warn"},function(h){h.POST="POST",h.PUT="PUT",h.GET="GET"}(js||(js={}));class ye{static of(h,g){return new ye(h,g)}static ensure_required_keys(h,g){return h.required_keys.filter((v)=>!(v in g))}static pluck_valid_keys(h,g){return((v,...R)=>Object.keys(v).filter((I)=>~R.indexOf(I)).reduce((I,K)=>xr(I,{[K]:v[K]}),{}))(g,...h.valid_keys)}static merge_metadata(h,g={}){return h.metadata=ye.pluck_valid_keys(h,xr(h.metadata,g)),h}static assert_emitter_api(h){if(typeof(h||{}).addEventListener!="function")throw new Error("Tracker() received an emitter that does not implement the addEventListener method");if(typeof(h||{}).removeEventListener!="function")throw new Error("Tracker() received an emitter that does not implement the removeEventListener method")}static create_listener(h,g,v){var R;h.listeners.push([g,v]),(R=h.emitter)===null||R===void 0||R.addEventListener(g,v)}constructor(h,g={}){let v=this;if(this.emitter=h,this.url=g.url,this.log=Si.of(this.emitter),this.verb=g.verb,this.metadata=xr({},g.metadata||{}),this.rq=g.rq||Ws,this.events=g.events||[],this.required_keys=g.required_keys||[],this.optional_keys=g.optional_keys||[],this.listeners=[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),ye.assert_emitter_api(this.emitter),ye.verb[this.verb]===void 0)throw new Error(`invalid HTTP verb[${this.verb}] passed`);if(typeof this.url!="string")throw new Error(`invalid API url[${this.url}] passed`);ye.TRACKERS.push(this),v.events.forEach((R)=>{ye.create_listener(this,R,(I={})=>{let K=xr(v.metadata,{event_type:R},I.data||I),Y=function(rt,Bt){return rt.replace(ns,(Vt)=>{let oe=Vt.slice(1,Vt.length);return oe in Bt?Bt[oe].toString():Vt})}(v.url,K),$=ye.pluck_valid_keys(v,K),Z=ye.ensure_required_keys(v,$);if(Z.length)return v.log.error(`Tracker.validate_metadata() failed for
|
|
5
|
+
Event[${R}]
|
|
6
|
+
missing keys: ${Z}
|
|
7
|
+
payload:
|
|
8
|
+
${JSON.stringify($,null,2)}`);this.rq&&Ie.rpush(this.rq,[Y,this.verb,$])})})}destroy(){this.listeners.forEach(([h,g])=>{var v;return(v=this.emitter)===null||v===void 0?void 0:v.removeEventListener(h,g)}),delete this.rq,delete this.emitter,Hn(ye.TRACKERS,this)}put(h={}){return ye.merge_metadata(this,h),this}}ye.TRACKERS=[],ye.QUEUE=Ws,ye.verb=js;var dr="ping",Nr="display",rs="view";let Ra=["sitegroup_id","session_id","media_id","site_id","player_id","video_type"],Ao=["created","position"],ss=["player_version","created","source","category","category_id","autoplay","muted","customer_user_id"];function qs(h,g){return h.duration/1===h.duration&&Object.assign(g,function(v){let R=v/100;return{segment_duration:R,breakpoints:Array(...Array(100)).map(function(I,K){return Math.floor(K*R*1000)/1000})}}(h.duration))}function Da(h,g,v){if(!g.segment_duration&&!qs(h,g))return;let R=function(I,K,Y){let $=K.last_idx,Z=Y?99:Ys(I,K);return K.last_idx=Z,Z<=$?[]:K.breakpoints.slice($,Z==99?100:Z).map(function(rt){return K.breakpoints.indexOf(rt)})}(h,g,v);R.length!=0&&h.emit(dr,{position:R})}function Ys(h,g){return Math.min(Math.floor(h.currentTime/g.segment_duration),99)}var zs;let sn="vod",Ca="live",Ia=[Nr,dr,rs];function as(h,g,v){switch(g==null?void 0:g.kind){case"live":return function(R,I){let K=Date.now();K-I.last_tracked_ts<60000||(I.last_tracked_ts=K,++I.ticks,R.emit(dr,{position:60*I.ticks}))}(h,g);case"vod":return Da(h,g,typeof v=="boolean"&&v)}}function Pr(h){let g=h.ads;return g!==void 0&&(g.schedule!==void 0&&(typeof g.hasPreroll=="function"&&(g.currentRequests?g.currentRequests:!!g.adPlaying||!(!g.hasPreroll()||g.nextIndex!=0))))}let _o=((zs=class h{init(g,v,R){if(!qe.from_token(g.token||"").is_granted(qe.permissions.ANALYTICS))return;if(R.hasState("consent-no-tracking"))return;if(R.analytics)return;let I=R.analytics={ticker:void 0,last_media_id:"",ended:!1},K={locked:void 0,ttl:6000,task:()=>{as(R,I.ticker)}},Y={session_id:R.deviceId(),autoplay:R.autoplay,muted:R.muted,player_id:g.player_id,customer_user_id:g.customer_user_id,player_version:"3.28.2"},$=ye.of(R,{verb:ye.verb.POST,url:"https://ptm.flowplayer.com/:video_type/:sitegroup_id/:event_type",events:Ia,required_keys:Ra,optional_keys:ss.concat(Ao).slice(0),metadata:Y});R.on(J,function(){$&&$.destroy()}),R.on(at,function(rt){if(!$)return;let Bt=xi(rt,"data.metadata",{});if(!Bt.media_id)return;let Vt=xi($,"metadata.media_id");if(Vt&&Bt.media_id==Vt)return;let oe=xi(g,"analytics",{});$.put(Bt),$.put(oe);let ke=xi(g,"metadata.live_start_time",g.live)?Ca:sn;$.put({video_type:ke,source:g.source||ar()||""}),I.ticker=g.live?{ticks:0,last_tracked_ts:Date.now(),kind:"live"}:{last_idx:0,segment_duration:0,breakpoints:[],kind:"vod"},I.ended=!1,R.emit(Nr)});let Z=0;R.on(Ct,function(){if(!$)return;if(Z||function(Bt,Vt){return Bt.metadata.media_id&&Bt.metadata.media_id==Vt.last_media_id}($,I))return;$.put({muted:R.muted});let rt=Pr(R);if(rt)return Z=Promise.resolve(rt).then(function(){I.last_media_id=$.metadata.media_id,R.emit(rs),Z=0}).catch(function(){Z=0});I.last_media_id=$.metadata.media_id,R.emit(rs)}),R.on("timeupdate",function(){var rt;$&&(Z||Pr(R)||I.ended||(!g.live&&R.currentTime+0.25>=R.duration&&as(R,I.ticker,!0),(rt=K).locked||(rt.locked=setTimeout(function(){return rt.task(),function(Bt){return Bt.locked=void 0,Bt}(rt)},rt.ttl))))}),R.on(W,function(){$&&I.ticker&&I.ticker.kind=="vod"&&function(rt,Bt){qs(rt,Bt),Bt.last_idx=Ys(rt,Bt)}(R,I.ticker)}),R.on(C,function(){$&&function(rt,Bt){Bt.ended||(Bt.ended=!0,as(rt,Bt.ticker))}(R,I)})}}).pluginName="analytics",zs),Wi=function(h,g){if(typeof to=="object"&&typeof eo!="undefined")return g;if(document.currentScript===null)return g;"flowplayer"in h||(h.flowplayer={extensions:[]});let v=h.flowplayer;return typeof v=="function"?(v(g),g):(Array.isArray(v.extensions)||(v.extensions=[]),~v.extensions.indexOf(g)||v.extensions.push(g),g)}(Pn(),_o);typeof window!="undefined"&&typeof window.matchMedia=="function"&&[st,pt].forEach(function(h){window.matchMedia("(orientation: "+h+")").addListener(function(g){p.length&&p.forEach(function(v){g.matches&&v.emit(h)})})});let be=[H,"recover"];function Xs(h,g){let v=Li(g,"flowplayer-error");h.append(v),g.on("flowplayer:error",(R)=>{if(!document.body.contains(h))return;let I=R.detail.error;I.config.showErrorUI!==!1&&(I.isFatal||I.config.showErrorUI)&&(g.setState("is-error",!0),console.warn(I),Pi(v,"flowplayer:error",{error:I}),Pi(v,"error",{error:I}))}),be.forEach((R)=>g.on(R,()=>{(function(I){if(!I.hasState("is-error"))return;I.setState(Ze,!0),I.setState("is-error",!1)})(g)}))}var ur=Object.freeze({__proto__:null,NO_FULLSCREEN:1,NO_VOLUME_CONTROL:2,NO_MUTE:4,LOGO_ON_RIGHT:8,USE_DRAG_HANDLE:16,USE_PLAY_2:32,USE_PLAY_3:64,USE_THIN_CONTROLBAR:128,NO_TITLE:256,NO_DESCRIPTION:512,NO_CONTROLS:1024,NO_DURATION:2048,NO_HEADER:4096,AUDIO_ONLY:8192,NO_TOUCH_ZONES:16384,LOGO_ON_BOTTOM:32768});function hr(h,g,v){let R=()=>document.fullscreenElement,I="fullscreenchange";if(!Element.prototype.requestFullscreen){let Y=Element.prototype,$=document;Y.webkitRequestFullScreen&&(Y.requestFullscreen=Y.webkitRequestFullScreen,$.fullscreenEnabled=!0),$.webkitCancelFullScreen&&(document.exitFullscreen=$.webkitCancelFullScreen),I="webkit"+I,R=()=>$.webkitCurrentFullScreenElement}let K=()=>v.getFullsceenTarget?v.getFullsceenTarget():g;v.toggleFullScreen=function(Y,$){if(v.ios_fullscreen_disabled)return;if(typeof Y!="boolean"&&(Y=!v.hasState("is-fullscreen")),fr(v)&&(Y?function(rt,Bt){rt.getAttribute("playsinline")&&rt.removeAttribute("playsinline"),rt.getAttribute("webkit-playsinline")&&rt.removeAttribute("webkit-playsinline"),Bt||rt.webkitEnterFullScreen()}(v,$):function(rt,Bt){rt.getAttribute("playsinline")||rt.setAttribute("playsinline",""),rt.getAttribute("webkit-playsinline")||rt.setAttribute("webkit-playsinline",""),Bt||rt.webkitExitFullScreen(),rt.togglePlay(!1),rt.hasState($t)||rt.setState($t,!0)}(v,$)),!document.fullscreenEnabled)return;let Z=K();if(Y)return Z.requestFullscreen();R()===Z&&document.exitFullscreen()},fr(v)&&(v.ios_fullscreen_disabled=!0,v.once("beforeplay",function(){v.ios_fullscreen_disabled=!1}),v.on(["webkitendfullscreen","webkitbeginfullscreen"],(Y)=>{let $=Y.type==="webkitbeginfullscreen";v.setState("is-fullscreen",$).emit($?j:Nt).toggleFullScreen($,!0)})),setTimeout(()=>{let Y=K();Y.addEventListener(I,function(){let $=R(),Z=$===Y||$==v;v.emit(Z?j:Nt),v.setState("is-fullscreen",Z)})},0),h.doubleclick!==!1&&g.addEventListener(L,function(Y){var $;Y.target&&(($=Y.target)===null||$===void 0?void 0:$.classList.contains("fp-ui"))&&v.toggleFullScreen()})}function fr(h){return!document.fullscreenEnabled&&typeof h.webkitEnterFullScreen=="function"&&typeof h.webkitExitFullScreen=="function"}function hn(h,g,v){if(!v.reaper)return;let R=document.createDocumentFragment(),I=Li(v,Jt),K=Li(v,xt);g.append(K),R.append(I),v.reaper.set("ui",I),~g.className.indexOf("use-play-")||g.classList.add("use-play-1"),function(Z,rt,Bt){let Vt=vi("fp-footer");rt.append(Vt),Bt.on(at,function(oe){var ke,Ke;let Te=(ke=oe.data)===null||ke===void 0?void 0:ke.description,bi=(Ke=oe.data)===null||Ke===void 0?void 0:Ke.title;if(Vt.innerHTML="",typeof bi=="string"){let $i=vi("fp-title");$i.innerText=bi,Vt.append($i)}if(typeof Te=="string"){let $i=Te.split(" "),gr=vi("fp-desc");for(gr.innerText=$i.join(" "),Vt.append(gr);$i.length>1&&gr.scrollHeight>gr.offsetHeight;)$i.pop(),gr.innerText=$i.join(" ")+"..."}})}(0,g,v),Xs(I,v),g.appendChild(R);let Y=null;[U,z,P].forEach((Z)=>{g.addEventListener(Z,function(rt){if(!v.hasState("is-touch-device")||rt.type===z){if(clearTimeout(Y),rt.type===P)return v.setState(he,!1);v.setState(he,!0),Y=setTimeout(function(){v.setState("is-hovered",!1)},2000)}})}),hr(h,g,v),v.on("volumechange",function(){let Z=v.volume==0||v.muted;v.muted=Z,v.setState("is-muted",Z),v._storage.setItem("mute",Z.toString())}),v._storage.getItem("mute")=="true"&&(v.muted=!0,v.setState("is-muted",v.muted));let $=v._storage.getItem("volume");$&&!isNaN(Number($))&&(v.volume=Number($)),v.emit("volumechange"),v.on("dvr/window",(Z)=>{h.live&&(v.live_state.dvr=v.seekable.length>0&&function(rt,Bt,Vt){if(Bt==0)return!0;let oe=me(rt,Vt);return oe.head-oe.tail>=Bt}(v,h.seconds_to_dvr||60,Z.detail),v.live_state.dvr_window=Z.detail)}),v.on("live",()=>{let Z=setInterval(()=>{if(v.opts.live&&!v.hasState("is-error")&&v.reaper!=0||clearInterval(Z),v.seekable.length==0)return;let rt=function(Bt){let Vt=Bt.currentTime,oe=me(Bt);return{progress:Math.min(100,Math.max(0,(Vt-oe.tail)/(oe.head-oe.tail)*100)),is_live:Vt-oe.head>=-10}}(v);v.hasState(Je)==rt.is_live&&v.setState(Je,!rt.is_live),v.live_state.dvr&&v.emit("dvr",rt.progress)},200)}),v.on(ne,function(){v.setOpts({live:ei(v)})}),v.on("durationchange",function(Z){let rt=ei(v),Bt=rt?Bi(v):Z.data||v.duration;isNaN(Bt)||v.setOpts({live:rt,duration:Bt})}),v.on(["playlist/advance","src"],(Z)=>{if(v.setState("is-autoplay",!!h.autoplay),v.root.classList.contains("is-livecountdown"))return Mr(v,h);(v.currentSrc||v.srcObject)&&(Z.type==="src"&&["is-playlist",Oi].some((rt)=>v.root.classList.contains(rt))||Mr(v,h))}),v.on(at,function(Z){var rt,Bt;h.seekable=((rt=Z==null?void 0:Z.data)===null||rt===void 0?void 0:rt.seekable)===void 0||Z.data.seekable;let Vt=(Bt=Z.data)===null||Bt===void 0?void 0:Bt.ui;if(typeof Vt!="number")return;let oe=g.classList;oe.toggle("use-play-1",!(32&Vt||64&Vt)),oe.toggle("use-play-2",(32&Vt)>0),oe.toggle("use-play-3",(64&Vt)>0),oe.toggle("use-thin-controlbar",(128&Vt)>0),oe.toggle("no-title",(256&Vt)>0),oe.toggle("no-description",(512&Vt)>0),oe.toggle("logo-on-right",(8&Vt)>0),oe.toggle("logo-on-bottom",(32768&Vt)>0),oe.toggle("use-drag-handle",(16&Vt)>0),oe.toggle("no-controls",(1024&Vt)>0),oe.toggle("no-duration",(2048&Vt)>0),oe.toggle("no-header",(4096&Vt)>0),oe.toggle("no-mute",(4&Vt)>0),oe.toggle("no-volume",(2&Vt)>0),oe.toggle("no-fullscreen",(1&Vt)>0),oe.toggle("no-touch-zones",(16384&Vt)>0)})}function Mr(h,g){delete g.live_start_time,h.setOpts({live:!1}),h.live_state.dvr=void 0,h.live_state.dvr_window=void 0,delete g.live,delete g.poster,delete g.duration,delete g.title,delete g.description,"metadata"in g&&delete g.metadata}function Fr(h,g,v){if(qe.from_token(h.token||"").is_granted(qe.permissions.NO_METERING))return;Mi.id(h.token||"")&&v.once(Ct,async()=>await async function R(I,K){let Y=Mi.id(K||"");if(I.once("src",()=>{I.once(Ct,()=>R(I,K))}),(await fetch("https://pmi.flowplayer.com/in",{method:"POST",body:JSON.stringify({token_id:Y,factor:1,rnd:Math.random().toString(36).substring(2)})})).status==401)return I.emit("error:fatal",{reason:"token",details:"The token online validation failed"})}(v,h.token||""))}var mr={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertisement"},audio:{button_txt:"Audio",menu_title:"Audio"},core:{exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",mute:"Mute",pause:"Pause",play:"Play",unmute:"Unmute",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Up next"},qsel:{menu_title:"Quality"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"The text is now on your clipboard",embed:"Embed",link:"Link",menu_title:"Share"},speed:{menu_title:"Speed"}};class an{init(h,g,v){v.reaper&&v.reaper.set("translations",Cn(an,h,"en"))}}an.pluginName="i18n",an.en=mr;class Me extends HTMLElement{constructor(h){super(),this.player=h}}class Br extends Me{constructor(h){super(h),this.classList.add("fp-logo");let g={logo:""};h.on(at,(v)=>{var R;let I=g.logo,K=((R=v==null?void 0:v.data)===null||R===void 0?void 0:R.logo)||"";I!=K&&(g.logo=K,this.set_logo(K,v.detail.logo_alt_text,v.detail.logo_href))})}set_logo(h,g,v){this.innerHTML="";let R=document.createElement("img");if(!h)return;if(R.src=h,g&&(R.alt=g),!v)return this.append(R);let I=document.createElement("a");I.href=v,I.append(R),this.append(I)}}class os extends Me{constructor(h){super(h),this.classList.add("fp-duration"),h.on(at,(g)=>{var v;let R=((v=g==null?void 0:g.data)===null||v===void 0?void 0:v.duration)||NaN;this.innerText=isFinite(R)?Ni(R):""})}}let on={name:"fp-fullscreen",translation_key:"core.fullscreen"},ls={name:"fp-fullscreen-exit",translation_key:"core.exit_fullscreen"},Lo={name:"fp-play",translation_key:"core.play"},Oa={name:"fp-pause",translation_key:"core.pause"},xa={translation_key:"core.mute",name:"fp-volume-mute-unmute"},Js={translation_key:"core.play",name:"fp-small-play"},cs={translation_key:"core.pause",name:"fp-small-pause"},wo={name:"fp-fast-forward"},Na={name:"fp-rewind"};class Zi extends Me{constructor(h,g){super(h),this.classList.add("fp-icon",g.name),g.title&&this.setAttribute("title",g.title),g.title&&this.setAttribute("aria-label",g.title),g.translation_key&&this.setAttribute("aria-label",h.i18n(g.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function Kn(){}document.addEventListener(k,function(h){this.active_menu&&!h.composedPath().includes(this.active_menu)&&(Array.from(document.querySelectorAll(".fp-engine")).forEach((g)=>{var v;let R=g.root.querySelector("details[open].fp-menu-container");R&&(R.open=!1,(v=R.querySelector("summary"))===null||v===void 0||v.removeAttribute("aria-expanded"),g.root.classList.toggle("has-menu-opened",!1))}),this.active_menu=void 0)});let Vn={passive:!0};var Ye;function Pa(h,g){let v=0,R=-1,I=-1,K=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5),Y=h.classList;h.id=K,Y.remove(Ye.GRABBING),Y.remove(Ye.TOUCHING);let $=g.onseek||Kn,Z=g.onstart||Kn,rt=g.onend||Kn,Bt=g.onmouse||Kn,Vt=g.ontouch||Kn,oe=g.ontouchend||Kn;function ke(Te){(function(){let $i=h.getBoundingClientRect();v=$i.left,R=$i.width})();let bi=(function($i){return typeof window.TouchEvent=="function"&&$i instanceof TouchEvent}(Te)?Te.changedTouches[0].pageX:Te.pageX)-v;return bi>R&&(bi=R),bi<0&&(bi=0),bi/R*100}function Ke(Te){let bi=ke(Te);bi!=I&&($(h,bi),I=bi)}return h.addEventListener("touchstart",function(Te){Ma(h,Te)&&(Y.add(Ye.TOUCHING),Fa(h.parentElement)&&(Y.add(Ye.GRABBING),Vt(h,ke(Te)),Z(h,ke(Te)),Ke(Te)))},Vn),h.addEventListener(z,function(Te){Ke(Te),Bt(h,ke(Te))},Vn),h.addEventListener("touchend",function(Te){setTimeout(function(){Y.remove(Ye.TOUCHING)},500),Ma(h,Te)&&(Y.remove(Ye.GRABBING),oe(h,ke(Te)),rt(h,ke(Te)),R=0)},Vn),h.addEventListener("touchcancel",function(){Y.remove(Ye.GRABBING,Ye.TOUCHING),R=0},Vn),h.addEventListener("mousedown",function(Te){Y.contains(Ye.TOUCHING)||(document.addEventListener(U,Ke),Y.add(Ye.GRABBING),Z(h,ke(Te)),Te.preventDefault(),Ke(Te))}),h.addEventListener(U,function(Te){Y.contains(Ye.TOUCHING)||Bt(h,ke(Te))}),document.addEventListener("mouseup",function(Te){Y.contains(Ye.TOUCHING)||(document.removeEventListener(U,Ke),Y.contains(Ye.GRABBING)&&(Y.remove(Ye.GRABBING),rt(h,ke(Te)),R=0))}),h}function Ma(h,g){let v=g.target;return!!v&&(v&&!v.closest(h.id)||!Fa(h.parentElement)||!h.classList.contains(Ye.TOUCHING))}function Fa(h){if(!h)return!1;let g=window.getComputedStyle(h);return g.width!=="0"&&g.height!=="0"&&g.opacity!=="0"&&g.display!=="none"&&g.visibility!=="hidden"}(function(h){h.GRABBING="has-grab",h.TOUCHING="has-touch"})(Ye||(Ye={}));class Qs extends Me{constructor(h){super(h),this.className="fp-volume";let g=h.root.classList,v=g.contains("is-tiny")?6:g.contains("is-small")?8:10,R=Array.from({length:v}).map(()=>{let I=document.createElement("i");return I.className="fp-tick",I});this.append(...R),Pa(this,{onseek:(I,K)=>{K>0&&(h.muted=!1,h._storage.removeItem("mute")),h._storage.setItem("volume",(h.volume=K/100).toString()),this.adjustVolumeSlider(h.volume)}}),this.setAttribute("tabindex","0"),this.setAttribute("role","slider"),this.setAttribute("aria-valuemin","0"),this.setAttribute("aria-valuemax","1"),this.setAttribute("aria-label",h.i18n("core.volume","volume")),h.on("volumechange",()=>{let I=h.volume==0||h.muted;I&&this.adjustVolumeSlider(0);let K=h.opt("ui");this.classList.contains(Ye.GRABBING)||I&&typeof K=="number"&&(4&K)>0||this.adjustVolumeSlider(h.volume)})}adjustVolumeSlider(h){this.setAttribute("aria-valuenow",h.toString()),this.setAttribute("aria-valuetext",Math.round(100*h)+"%");let g=Array.from(this.querySelectorAll(".fp-tick")),v=Math.round(h*g.length);g.forEach((R,I)=>{R.classList.toggle("fp-color",I<v)})}}class Zs extends Me{constructor(h){let g;super(h),this.bufferEle=vi("fp-buffer"),this.progress=vi("fp-progress","fp-color"),this.tooltipEle=vi("fp-timestamp"),this.proposedSeekBar=vi("fp-hover"),this.dragger=vi("fp-dragger","fp-color"),this.classList.add("fp-timeline","fp-bar"),this.tooltipEle.style.display="none",this.setAttribute("role","slider"),this.setAttribute("tabindex","0"),this.setAttribute("aria-label",h.i18n("core.timeline_aria_label","Seek slider")),this.setAttribute("aria-valuenow","0"),this.progress.append(this.dragger),this.append(this.bufferEle,this.progress,this.proposedSeekBar,this.tooltipEle);let v=requestAnimationFrame,R=void 0,I=()=>{var Y;h.reaper==0||g.live||(Y=h,this.progress.style.width=Y.currentTime/Y.duration*100+"%",R=void 0,h.paused||this.classList.contains(Ye.GRABBING)||R||(R=setTimeout(I,200)))},K=()=>!!this.player.opt("seekable",!0)&&!isNaN(this.player.duration);Pa(this,{onseek:(Y,$)=>{if(K())switch(!!g.live){case!0:er($,h,this.tooltipEle);break;case!1:(function(Z,rt,Bt){let Vt=rt.duration*(Z/100);if(rt.disabled&&Vt>rt.currentTime)return!1;Bt.style.width=Z+"%",rt.currentTime=Vt})($,h,this.progress),Vi(this.tooltipEle,$)}},onstart:()=>{K()&&(h.emit("timeline/gesture/start"),!h.hasState("is-casting")&&h.setState(si,!0),g.live||function(Y){Y.style.display="block"}(this.tooltipEle))},onend:function(Y,$){v(I),g.seekable!=0&&g.live&&Dr($,h)},ontouchend:()=>{g.live?Ui(this.proposedSeekBar,this.tooltipEle):Fi(this.proposedSeekBar,this.tooltipEle),setTimeout(()=>h.emit("timeline/gesture/end"),0)},onmouse:(Y,$)=>{if(K()&&(h.emit("timeline/gesture/move",{percent:$}),!this.classList.contains(Ye.GRABBING)))switch(!!g.live){case!0:(function(Z,rt){rt.style.width=Z+"%"})($,this.proposedSeekBar),er($,h,this.tooltipEle);break;case!1:(function(Z,rt){rt.style.width=Z+"%"})($,this.proposedSeekBar),function(Z,rt,Bt){isNaN(Z)||isNaN(rt.duration)||(Vi(Bt,Z),Bt.textContent=Ni(Z/100*rt.duration))}($,h,this.tooltipEle)}}}),h.on(at,function(Y){Y.data&&(g=Y.data)}),h.on(Ct,()=>v(I)),h.on(Ft,()=>{h.reaper==0||g.live||yi(h,this.bufferEle)}),h.on("dvr",(Y)=>{this.progress.style.width=Y.detail+"%"}),h.on("timeupdate",()=>{h.reaper!=0&&(v(I),this.setAttribute("aria-valuenow",h.currentTime+""),this.setAttribute("aria-valuetext",Math.round(h.currentTime)+" "+h.i18n("core.seconds","Seconds")),g.live||yi(h,this.bufferEle))}),h.on(ne,()=>{h.reaper!=0&&(g.live||yi(h,this.bufferEle))}),h.on("durationchange",(Y)=>{if(h.reaper==0)return;let $=ei(h)?Bi(h):Y.data||h.duration;isNaN($)||(this.setAttribute("aria-valuemax",$+""),this.setAttribute("aria-valuemin","0"))}),this.addEventListener(P,()=>{h.emit("timeline/gesture/end"),g.live?Ui(this.proposedSeekBar,this.tooltipEle):Fi(this.proposedSeekBar,this.tooltipEle)})}}class ds extends Me{constructor(h){super(h),this.classList.add("fp-live-status");let g=vi("fp-live-text"),v=vi("fp-live-indicator","fp-color");g.textContent="live",this.setAttribute("tabindex","0"),this.setAttribute("role","button"),this.append(v,g),this.addEventListener(k,function(){ir(h)})}}class ta extends Me{constructor(h){let g;super(h),this.classList.add("fp-duration"),this.setAttribute("aria-hidden","true"),h.on(at,(v)=>{if(h.reaper==0||!v.data)return;g=v.data;let R=ei(h)?NaN:v.data.duration||0;if(isNaN(R)||R>=Number.MAX_SAFE_INTEGER)return this.style.display="none";this.style.display="inline-block",this.innerText=Ni(R)}),h.on(ne,()=>{var v,R;h.reaper==0||g.live||(R=this,(v=h).duration&&(R.innerText=Ni(v.duration)))})}}class ea extends Me{constructor(h){let g;super(h),this.classList.add("fp-elapsed"),this.innerText=Ni(0),this.setAttribute("aria-hidden","true"),h.on(at,(v)=>{v.data&&(g=v.data)}),h.on("timeupdate",()=>{var v;h.reaper!=0&&(g.live?(v=h,this.innerText=Ni(v.currentTime)):function(R,I){I.innerText=Ni(R.currentTime)}(h,this))})}}class Ba extends Me{constructor(h){super(h),this.classList.add("fp-btns","fp-small-switch");let g=Li(h,"flowplayer-small-pause-icon"),v=Li(h,"flowplayer-small-play-icon");g.addEventListener("click",function(){h.togglePlay(),setTimeout(function(){v.focus&&v.focus()},100)}),v.addEventListener("click",function(){h.togglePlay(),setTimeout(function(){g.focus&&g.focus()},100)}),this.append(g,v)}}class us extends Me{constructor(h,g){super(h),this.classList.add(g);let v=this.classList.contains("fp-left-zone")?-1:1,R=document.createElement("span"),I=Li(h,this.classList.contains("fp-left-zone")?_t:"flowplayer-fast-forward-icon");I.removeAttribute("tabindex"),R.classList.add("fp-zone-seconds"),this.append(R,I),h.on(W,()=>{R.innerText=""}),h.on("seek:queued",(K)=>{let Y=K.data;if(!Y)return;if(typeof Y.offset!="number")return;let $=Y.offset;if($==0)return this.reset_zone();$>0&&this.classList.contains("fp-right-zone")||$<0&&!this.classList.contains("fp-right-zone")?this.render_zone_state($):this.reset_zone()}),h.on("seek:cancel",()=>{this.reset_zone()}),this.reset_zone(),this.addEventListener("touchend",function(K){isNaN(h.duration)||isNaN(h.currentTime)||16384&h.opt("ui")||h.hasState(oi)||!h.hasState("will-seek")&&!h.hasState($t)||h.enqueueSeek(5*v)&&(K.stopPropagation(),K.preventDefault())})}reset_zone(){let h=this.querySelector(".fp-zone-seconds");h&&(h.innerText="")}render_zone_state(h){let g=this.querySelector(".fp-zone-seconds");g&&(g.innerText=Math.abs(h)+"")}}class ia extends Me{constructor(h){super(h),this.className="fp-error",this.message=document.createElement("p"),this.message.className="error-message",this.errorId=document.createElement("p"),this.errorId.className="error-id",this.errorKey=document.createElement("p"),this.errorKey.className="error-key",this.append(this.errorKey,this.message,this.errorId),this.addEventListener("flowplayer:error",(g)=>{if(h.opts.live&&h.currentTime==0&&g.detail.error.flowplayerErrorCode==Zt.PlaybackManifestLoadError)return void(this.message.textContent="stream offline");let v=g.detail.error;this.message.textContent=v.message,this.errorKey.textContent=v.errorKey,console.warn("flowplayer encountered an %s error while loading %s id:%s",v.errorKey,v.config.resource,v.id)})}}class hs extends Me{constructor(h,g,...v){super(h),this.className=g;let R=h.createComponents(...v);this.append(...R),g!=="fp-left"&&R.forEach((I)=>{I.addEventListener(k,()=>h.toggleFullScreen())})}}class fs extends Me{constructor(h){super(h),this.classList.add("fp-wait"),Array(...Array(4)).map((g,v)=>v).forEach(()=>{this.append(document.createElement("b"))})}}class na extends Me{constructor(h){super(h),this.classList.add("fp-middle-zone");let g=h.createComponents(q,"flowplayer-middle-buttons");this.append(...g)}}class ra extends Me{constructor(h){super(h),this.classList.add("fp-switch"),[tt,Lt].forEach((g)=>{let v=Li(h,g);v.removeAttribute("tabindex"),this.append(v)})}}class fn extends Me{constructor(h){super(h),this.classList.add("fp-volume-control");let g=Li(h,Gt);this.append(g),!b().ios&&this.append(Li(h,te)),g instanceof Zi&&g.addEventListener(k,function(){h.toggleMute()})}}class ms extends Me{constructor(h){super(h),this.classList.add("fp-header"),this.append(...h.createComponents("flowplayer-header-left-zone","flowplayer-header-right-zone")),h.reaper&&h.reaper.set("header",this)}}class Ua extends Me{constructor(h){super(h),this.classList.add("fp-controls","fp-togglable"),this.append(...h.createComponents("flowplayer-control-buttons",dt,mt,Dt,"flowplayer-control-duration","flowplayer-volume-control"))}}class sa extends Zi{constructor(h,g){super(h,g),this.setAttribute("role","button")}}class gs extends Me{constructor(h){super(h),this.classList.add("fp-middle"),this.append(...h.createComponents("flowplayer-middle-left-zone",se,"flowplayer-middle-right-zone")),this.setAttribute("tabindex","0"),h.reaper&&h.reaper.set("middle",this),this.handleClick(h),this.handleTouch(h),h.once("beforeplay",()=>{this.removeAttribute("tabindex"),this.removeAttribute("role"),this.removeAttribute("aria-label")})}handleClick(h){[k,L].forEach((g)=>this.addEventListener(g,function(v){if(!(v.defaultPrevented||h.root.classList.contains("is-endscreen")||g===L&&h.root.classList.contains("no-fullscreen")))return v.preventDefault(),h.emit(v.type),!1})),h.on(k,function(g){setTimeout(function(){g.defaultPrevented||h.togglePlay()},0)}),h.on(L,function(g){setTimeout(function(){g.defaultPrevented||h.toggleFullScreen()},0)})}handleTouch(h){let g=!1;this.addEventListener("touchend",function(v){v.cancelable&&!h.hasState("is-endscreen")&&(v.preventDefault(),h.emit(v.type,{source:v}))}),h.on("touchend",function(v){setTimeout(function(){if(v.defaultPrevented)return;if(h.ended)return h.togglePlay(!0);let R=h.hasState(Se);g&&clearTimeout(g),(R||h.hasState($t))&&(h.hasState($t)&&(h.setState($t,!1),h.setState(he,!1)),h.togglePlay(),R)||(h.setState($t,!0),h.paused||(g=setTimeout(function(){g=!1,h.setState($t,!1),h.setState(he,!1)},2000)))},0)})}}class Wn extends Me{constructor(h){super(h),this.classList.add("fp-ui"),this.append(...h.createComponents(re,we,ce))}}class Ur{constructor(h){pe(h,Jt,Wn),pe(h,"flowplayer-error",ia),pe(h,ce,Ua),pe(h,dt,ds),pe(h,"flowplayer-control-duration",ta),pe(h,Dt,Zs),pe(h,mt,ea),pe(h,te,Qs),pe(h,"flowplayer-volume-control",fn),pe(h,"flowplayer-control-buttons",Ba),pe(h,re,ms),pe(h,xt,Br),pe(h,"flowplayer-header-duration",os),pe(h,"flowplayer-header-left-zone",class extends hs{constructor(g){super(g,"fp-left","flowplayer-header-duration")}}),pe(h,"flowplayer-header-right-zone",class extends hs{constructor(g){super(g,"fp-right fp-togglable","flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon")}}),pe(h,we,gs),pe(h,se,na),pe(h,q,fs),pe(h,"flowplayer-middle-buttons",ra),pe(h,"flowplayer-middle-right-zone",class extends us{constructor(g){super(g,"fp-right-zone")}}),pe(h,"flowplayer-middle-left-zone",class extends us{constructor(g){super(g,"fp-left-zone")}}),pe(h,"flowplayer-small-play-icon",class extends Zi{constructor(g){super(g,Js),this.setAttribute("role","button")}}),pe(h,"flowplayer-small-pause-icon",class extends Zi{constructor(g){super(g,cs),this.setAttribute("role","button")}}),pe(h,tt,class extends Zi{constructor(g){super(g,Lo),this.setAttribute("role","button")}}),pe(h,Lt,class extends Zi{constructor(g){super(g,Oa),this.setAttribute("role","button")}}),pe(h,"flowplayer-fullscreen-enter-icon",class extends sa{constructor(g){super(g,on)}}),pe(h,"flowplayer-fullscreen-exit-icon",class extends sa{constructor(g){super(g,ls)}}),pe(h,"flowplayer-fast-forward-icon",class extends Zi{constructor(g){super(g,wo)}}),pe(h,_t,class extends Zi{constructor(g){super(g,Na)}}),pe(h,Gt,class extends Zi{constructor(g){super(g,xa),this.classList.add("fp-volumebtn"),this.setAttribute("role","switch"),g.on("volumechange",()=>{let v=g.volume==0||g.muted;this.setAttribute("aria-label",g.i18n("core.muted","Muted")),this.setAttribute("aria-checked",v?"true":"false")})}})}init(h,g,v){var R;Fr(h,0,v),hn(h,g,v),R=v,typeof window!="undefined"&&"ontouchstart"in window&&R.setState("is-touch-device",!0),R.setState("is-accessibility",!1)}}return Ur.pluginName="default",Ri.extensions.unshift.apply(Ri.extensions,[an,Wi,Ur]),Object.assign(Ri,{ui:ur,i18n:an})})});var Vc=gn((io,no)=>{(function(o,p){typeof io=="object"&&typeof no!="undefined"?no.exports=p():typeof define=="function"&&define.amd?define(p):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.ads=p())})(io,function(){var o;(function(c){c[c.ADS=2]="ADS",c[c.ANALYTICS=4]="ANALYTICS",c[c.NO_METERING=8]="NO_METERING",c[c.DEVELOPER_PLAN=16]="DEVELOPER_PLAN",c[c.WOWZA_VIDEO=32]="WOWZA_VIDEO"})(o||(o={}));let p=["localhost","127.0.0.1","0.0.0.0","s.codepen.io","cdpn.io","try.flowplayer.com"];function b(c,m){return!!~p.indexOf(c)||c.indexOf(m)===c.length-m.length}b.check_whitelist=function(c){return!!~p.indexOf(c)};function k(c){this.message=c}k.prototype=new Error,k.prototype.name="InvalidCharacterError";var L=typeof window!="undefined"&&window.atob&&window.atob.bind(window)||function(c){var m=String(c).replace(/=+$/,"");if(m.length%4==1)throw new k("'atob' failed: The string to be decoded is not correctly encoded.");for(var y,O,N=0,B=0,F="";O=m.charAt(B++);~O&&(y=N%4?64*y+O:O,N++%4)?F+=String.fromCharCode(255&y>>(-2*N&6)):0)O="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(O);return F},P=function(c){var m=c.replace(/-/g,"+").replace(/_/g,"/");switch(m.length%4){case 0:break;case 2:m+="==";break;case 3:m+="=";break;default:throw"Illegal base64url string!"}try{return function(y){return decodeURIComponent(L(y).replace(/(.)/g,function(O,N){var B=N.charCodeAt(0).toString(16).toUpperCase();return B.length<2&&(B="0"+B),"%"+B}))}(m)}catch(y){return L(m)}};function U(c){this.message=c}U.prototype=new Error,U.prototype.name="InvalidTokenError";var z=function(c,m){if(typeof c!="string")throw new U("Invalid token specified");var y=(m=m||{}).header===!0?0:1;try{return JSON.parse(P(c.split(".")[y]))}catch(O){throw new U("Invalid token specified: "+O.message)}};z.InvalidTokenError=U;let j="production";function Nt(c,m){let y={valid_jwt:!1,raw:"",data:{acl:0},exp:0},O={c:"{}",exp:0};m=m||{};try{O=z(c),y.valid_jwt=!0}catch(N){}return y.raw=c,y.data=JSON.parse(O.c),y.exp=O.exp,m.require_valid_token&&Nt.validate(y),y}function ne(c){return{grant:c,is_granted:(m)=>(c&m)===m}}function A(){let c=typeof document!="undefined"&&typeof window!="undefined",m=c?navigator.userAgent:"",y=/iP(hone|od)/i.test(m)&&!/iPad/.test(m)&&!/IEMobile/i.test(m),O=/Android/.test(m)&&!/Firefox/.test(m),N=/^((?!chrome|android).)*safari/i.test(m),B=/chrome|crios/i.test(m)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(m),F=/firefox|fxios/i.test(m)&&!/seamonkey/i.test(m),ut=/edg/i.test(m),ct=/opr|opera/i.test(m),It=/SamsungBrowser/.test(m),yt=It&&/SMART-TV/.test(m);return{controls:!y,video:function(Pt){return c&&document.createElement("video").canPlayType(Pt)},lang:c&&window.navigator.language,android:O,iphone:y,safari:N,edge:ut,opera:ct,chrome:B,firefox:F,ios:c&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:It,samsung_tv:It&&yt,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}function Ft(c){return{width:c.clientWidth,height:c.clientHeight}}function H(c,m,y){return typeof y=="number"&&(y+="px"),c.style.setProperty(m,y),c}Nt.validate=function(c){if(typeof c=="string"&&(c=Nt(c)),!c||!c.raw){if(b.check_whitelist(window.location.hostname)||j.toString()==="dev")return!0;throw new Error("No token provided in configuration")}if(!c.valid_jwt)throw new Error("Invalid token provided");let m=window.location.hostname,y=b.bind(null,m);if(j.toString()!=="dev"&&c.data.domain&&c.data.domain.length&&!c.data.domain.some(y))throw new Error("Domain not allowed");if(j.toString()!=="dev"&&1000*c.exp-Date.now()<0)throw new Error("Expired token");return!0},Nt.id=function(c){if(c)return typeof c=="string"&&(c=Nt(c)),c.data.id},ne.of=ne,ne.from_token=function(c){let m=Nt(c,{require_valid_token:!0});return ne.of(m.data.acl)},ne.permissions=o;let ft="ad-initialized";var Ct=Object.freeze({__proto__:null,AD_INIT:ft,AD_PLAYBACK_ERROR:"ad-playback-error",AD_TEARDOWN:"ad-teardown",AD_VIDEOTAG_ATTACHED:"ad-videotag-attached",AD_BLOCKED:"ad-blocked",AD_REQUEST_ERROR:"ad-request-error",AD_REQUESTED:"ad-requested",AD_REQUEST_COMPLETED:"ad-request-completed",AD_PAUSE_CONTENT:"ad-pause-content",AD_STARTED:"ad-started",AD_COMPLETED:"ad-completed",AD_PAUSED:"ad-paused",AD_RESUMED:"ad-resumed",AD_WAITING:"ad-waiting",AD_PROGRESS:"ad-progress",AD_SKIPPED:"ad-skipped",AD_MUTED:"ad-muted",AD_VOLUME_CHANGED:"ad-volume-changed",AD_FULLSCREEN:"ad-fullscreen",AD_TIMEOUT:"ad-timeout",AD_BREAK_COMPLETED:"ad-break-completed",AD_POSTROLL_FINISHED:"ad-postroll-finished",AD_PREROLL_FINSIHED:"ad-preroll-finished",AD_MIDROLL_FINISHED:"ad-midroll-finished",VPAID_INIT:"vpaid-init",IMA_ADAPTER_INIT:"ad-ima-adapter-init",IMA_BEFORE_ADS_REQUEST:"ad-ima-before-ads-request",IMA_ADS_RENDERING_SETTINGS:"ad-ima-rendering-settings",ADAPTER_INIT_FAILED:"ad-adapter-init-failed",AD_PLAY_REQUESTED:"ad-play-requested",RELOAD_AD_REQUESTED:"reload-ad-requested",AD_ERROR:"ad-error",REQUEST_AD_PAUSE:"request/ad/pause",REQUEST_AD_PLAY:"request/ad/play",REQUEST_AD_MUTE_UNMUTE:"request/ad/muteunmute",AD_SHOW_FIRST_FRAME:"ad/show-first-frame",AD_RESIZE:"ad/resize",AD_SET_UI_FLAGS:"ad/set-ui-flags",PBJS_AVAILABLE:"ad/pbjs"});let Mt="is-in-viewport";function lt(c,m,y){let O=function(N,B){let F=new CustomEvent(N,{detail:B,cancelable:!0});return B&&Object.defineProperty(F,"data",{get:()=>B}),F}(m,y);return c.dispatchEvent(O),c}var C;(function(){let c=!1;try{let m=Object.defineProperty({},"passive",{get:function(){c=!0}});window.addEventListener("testPassive",null,m),window.removeEventListener("testPassive",null,m)}catch(m){}})(),function(c){c[c.OFF=0]="OFF",c[c.ON=1]="ON",c[c.AUDIO_REQUIRED=2]="AUDIO_REQUIRED"}(C||(C={}));function W(c){let m=typeof c=="number"?c:parseInt(c,10);return(m>9?"":"0")+m}function G(c){return function(m,y){let O=m.seekable;if(typeof m.opts!="object"||O.length==0)return{head:0,tail:0};let N=J(m),B=y||m.live_state.dvr_window;return{head:N,tail:typeof B!="number"||N-B<0?O.start(0):N-B}}(c).tail}function J(c){var m;let y=c.seekable;return y.length?c.hasState("is-chromecast-playing")||!((m=c.hls)===null||m===void 0?void 0:m.liveSyncPosition)?y.end(y.length-1):c.hls.liveSyncPosition:0}function st(c){try{c.dvr_offset=0,c.currentTime=J(c)}catch(m){console.warn("failed to seek to now: %j",m)}}function pt(c,m){if(!c.hasState("is-live")||![void 0,0,-1].includes(m)||!c.seekable.length||c.hasState("has-casted"))return c.setState("is-starting",!1);c.once("seeked",()=>c.setState("is-starting",!1)),m===0?function(y){y.currentTime=G(y)}(c):st(c)}function at(c,m){let y=function(){try{return localStorage.getItem("flowplayer/debug")}catch(N){return""}}(),O=(N,...B)=>{try{let F=(m==null?void 0:m.debug)||y;F&&c.match(F)&&console.log(`flowplayer/${c} -- ${N}`,...B)}catch(F){console.warn(F)}};return O.log=O,O}let gt=(c,m)=>new(((y,O)=>{let N=y.get(O);if(!N)throw new Error(`no flowplayer component with the name ${O} exists`);let B=window.customElements.get(O);if(!B)throw new Error(`no default flowplayer component with the name ${O} exists`);let F=window.customElements.get(N);return typeof F!="function"?B:F})(c._customElements,m))(c),Rt=(c,m,y)=>{window.customElements.get(m)||window.customElements.define(m,y),c.customElements.get(m)||c.customElements.set(m,m)},Jt="flowplayer-ad-ui",xt=at("ads/lifecycle"),ce=["ad-playback-error","ad-teardown","ad-break-completed"];async function dt({config:c,root:m,content:y,ads:O,ima:N}){var B;xt("LifeCycle::initLifeCycle",c,m,y,O,N),y.autoplay=!1;let F=c.autoplay===C.AUDIO_REQUIRED,ut=function(Ot,Et){return{muted:!(Et||!Ot.muted),volume:Ot.volume}}(y,F);y.on("volumechange",()=>{ut.volume=y.volume,ut.muted=y.muted}),y.on("ad/show-first-frame",()=>{xt("showFirstFrame"),m.classList.toggle("ad-hide-first-frame",!1)});let ct=gt(y,Jt),It=ct;y.emit("ad/set-ui-flags",{ui_flags:(B=c.ads)===null||B===void 0?void 0:B.ui}),y.renderPlugin(ct);let yt={listening:!1,preload:N==null?void 0:N.preload_ads};if(xt("initial",ut),O.setVideoTag(y),c.autoplay)xt("Trying to autoplay"),m.classList.add("ad-hide-first-frame"),xt("hideFirstFrame"),await async function Ot(Et,Tt){let[ie,_e]=[Et.muted,Et.volume];xt("Lifecycle::peek_content(:muted => %s, :volume => %s)",ie,_e);let Be=()=>new Promise((He)=>setTimeout(He,0,!1));Tt&&(Et.muted=!1,Et.volume=Et.volume?Et.volume:1);try{if(await async function(He){return xt("Lifecycle::wait_for_source"),new Promise((wi,sr)=>{let Bn=0,Cr=setInterval(()=>{if(++Bn>40)return clearInterval(Cr),sr(new Error("No source in 2000ms, giving up"));He.currentSrc&&(wi(null),clearInterval(Cr))},50)})}(Et),await function(He){return new Promise((wi)=>{if(He.hasState(Mt))return wi(null);He.once("viewenter",()=>wi(null))})}(Et),xt("Lifecycle::peek_content::play"),Et.volume&&(Et.volume=0.01),await new Promise((He)=>setTimeout(()=>{Tt&&(Et.opts.autoplay=2),Et.setState("is-autoplay",!0),He(Et.togglePlay(!0))})),Et.paused)throw new Error("content failed to play");return xt("Lifecycle::peek_content::pause"),await new Promise((He)=>setTimeout(()=>He(Et.togglePlay(!1)))),Et.volume=_e,xt("Lifecycle::peek_content::true"),!0}catch(He){return Et.volume=_e,Tt?(Et.muted=!1,Et.volume==0&&(Et.volume=1),await Be()):ie||!_e?(xt("Lifecycle::peek_content::false"),await Be()):(xt("Lifecycle::peek_content::recover"),Et.muted=!0,!!await Ot(Et)||(Et.muted=ie,xt("Lifecycle::peek_content::false"),await Be()))}}(y,F)?(xt("Can autoplay, start ad"),y.opts.autoplay=1,mt({ads:O,content:y,state:yt,adContainer:It,ima:N,config:c})):(xt("cannot autoplay(audioRequired: %s), fallback to poster state",F),c.autoplay=0,y.emit("ad/show-first-frame",{root:m}),y.setState("is-starting",!0));c.autoplay||O.hasPreroll()&&function({content:Ot,ads:Et,config:Tt,state:ie,initial:_e,adContainer:Be,ima:He}){Ot.once("beforeplay",async function(wi){(Ot.hasState(Mt)||wi.type!="touchend")&&Et.shallPlayAd(0)&&(Et.adapter.setAttemptingPrerollOnIOS(Et.adapter.isCustomPlaybackEnabled()),Et.adapter.isCustomPlaybackEnabled()||wi.preventDefault(),we({ads:Et,content:Ot,state:ie}),xt("user_gesture(:intercept) -> shallPlayAd(0: %s)",Et.shallPlayAd(0)),Tt.muted=_e.muted,await mt({ads:Et,content:Ot,state:ie,adContainer:Be,ima:He,config:Tt}),se({ads:Et,content:Ot}))})}({content:y,ads:O,config:c,state:yt,initial:ut,adContainer:It,ima:N}),!c.autoplay&&O.hasPreroll()&&yt.preload&&mt({ads:O,content:y,state:yt,adContainer:It,ima:N,config:c}),re({config:c,root:m,content:y,ads:O,state:yt,adContainer:It,ui:ct,ima:N,initial:ut});let Pt=async(Ot)=>{y.removeEventListener("beforeplay",Pt),O.resetScheduleCounter(),O.hasPreroll()&&(O.adapter.setAttemptingPrerollOnIOS(O.adapter.isCustomPlaybackEnabled()),Ot.preventDefault(),await O.setCurrentTime(0))};y.on("src",()=>{yt.started&&(y.removeEventListener("beforeplay",Pt),y.addEventListener("beforeplay",Pt))}),y.on("beforeplay",(Ot)=>{(O.adBreak||O.adPlaying||O.adRequesting)&&(O.adBreak&&!O.adLinear||(xt("prevented content from starting because ad break is active"),Ot.preventDefault()))})}async function mt(c){c.state.started||(c.content.hasState(Mt)?await Dt(c):c.content.once("viewenter",async()=>{await Dt(c)}))}async function Dt({ads:c,content:m,adContainer:y,ima:O,state:N,config:B}){var F;N.started=!0;let ut=function(Pt,Ot){var Et={};for(var Tt in Pt)Object.prototype.hasOwnProperty.call(Pt,Tt)&&Ot.indexOf(Tt)<0&&(Et[Tt]=Pt[Tt]);if(Pt!=null&&typeof Object.getOwnPropertySymbols=="function"){var ie=0;for(Tt=Object.getOwnPropertySymbols(Pt);ie<Tt.length;ie++)Ot.indexOf(Tt[ie])<0&&Object.prototype.propertyIsEnumerable.call(Pt,Tt[ie])&&(Et[Tt[ie]]=Pt[Tt[ie]])}return Et}(O,["ads"]),ct=Ft(m.root),It=(B==null?void 0:B.muted)||m.muted,yt=Object.assign(Object.assign(Object.assign({container:y,volume:It?0:m.volume,muted:It,autoplay:(B==null?void 0:B.autoplay)||!1,video_source:m.original_src,preload_ads:(F=B==null?void 0:B.ima)===null||F===void 0?void 0:F.preload_ads},ut),ct));xt("start():",yt,N),await c.initialize(!1,yt,N.preload)}function te(c,m){var y,O;return{content_width:c.clientWidth||((y=c.parentNode)===null||y===void 0?void 0:y.clientWidth)||m.clientWidth,content_height:c.clientHeight||((O=c.parentNode)===null||O===void 0?void 0:O.clientHeight)||m.clientHeight}}function re({config:c,root:m,content:y,ads:O,initial:N,adContainer:B,state:F,ui:ut,ima:ct}){xt("addUIListeners()");let It=async()=>{if(O){if(!(O.adapter.isAttemptingPrerollOnIOS()||O.adapter.isCustomPlaybackEnabled()&&y.currentSrc!==y.original_src)){if(y.off("playing",It),xt("addUIListeners() -> content started playing"),we({ads:O,content:y,state:F}),!O.shallPlayAd(0)||!O.adapter.isLinearAd())return xt("addUIListeners() -> no more preroll ads -> resume content"),y.emit("ad/show-first-frame",{root:m}),await mt({ads:O,content:y,state:F,adContainer:B,ima:ct,config:c});y.togglePlay(!1),await mt({ads:O,content:y,state:F,adContainer:B,ima:ct,config:c}),O.shallPlayAd(0)&&O.adapter.isLinearAd()&&(ut.classList.add("on","linear"),m.classList.add("is-waiting"),se({ads:O,content:y}))}}else y.off("playing",It)};y.on("playing",It),y.on(["portrait","landscape"],function(){if(!O)return;let{content_width:Ot,content_height:Et}=te(y,m);O.resize({height:Et,width:Ot})}),y.on("resize",(Ot)=>{if(!O||!Ot.detail)return;let{width:Et,height:Tt}=Ot.detail.contentRect;O.resize({width:Et,height:Tt})}),y.on("ended",(Ot)=>{var Et;let Tt=()=>{Ot.preventDefault(),Object.assign(Ot,{prevented:!0})};if(m.classList.contains("ad-linear")&&m.classList.contains("ads-custom-playback-enabled"))return Tt();O&&(xt("ui_listeners(:%s, event: %o)",Ot.type,Ot.detail),((Et=Ot==null?void 0:Ot.detail)===null||Et===void 0?void 0:Et.from)!==O&&(Tt(),O.finished(function(){y.emit("ended",{from:O})})))}),O.on("ad-requested",()=>{m.classList.toggle("is-waiting",!0)}),O.once("ad-started",()=>{y.on(["beforeplay","beforepause"],(Ot)=>{var Et;if(!O.adBreak||!O.adapter.isLinearAd())return;Ot.preventDefault();let Tt=((Et=Ot.detail)===null||Et===void 0?void 0:Et.forced)?Ot.type==="beforeplay":!O.adPlaying;Tt&&O.paused&&O.resume(),Tt||O.paused||O.pause()})}),O.on("ad-started",(Ot)=>{let Et=Ot.detail,{linear:Tt,ad:ie,ad_type:_e}=Et,Be;if(xt(`Ad[linear: ${Tt}, currentTime: ${y.currentTime}] starting`,ie),_e=="preroll"&&!Tt&&y.paused&&y.togglePlay(!0),Tt&&(Be=te(y,m)),O.resize({width:Be?Be.content_width:ie.width,height:Be?Be.content_height:ie.height,linear:Tt,resize_non_linear:!0}),y.emit("ad/resize",{opts:{linear:Tt,resizeContainerAlso:!0,width:Tt?void 0:ie.width,height:Tt?void 0:ie.height}}),m.classList.remove("is-waiting"),y.setState("ad-linear",Tt),y.setState("ad-non-linear",!Tt),!Tt){xt("non-linear ad / restarting content");try{y.togglePlay(!0),y.volume=N.volume,y.muted=N.muted}catch(He){xt(He)}}y.hasState(Mt)||y.hasState("is-popped-out")||!Tt||O.pause()}),O.on("ad-pause-content",()=>{y.emit("ad/resize",{opts:{linear:!0,width:0,height:0}})}),y.on(ce,(Ot)=>async function({root:Et,content:Tt,ads:ie,eventName:_e,err:Be={reason:""}}){xt("teardown(event: %s)",_e),ie.adapter.isAttemptingPrerollOnIOS()&&(ie.adapter.setAttemptingPrerollOnIOS(!1),!Tt.paused&&Tt.hasState("is-starting")&&Tt.hasState("is-playing")&&pt(Tt,Tt.opts.start_time)),Et.classList.add("is-seamless"),Et.classList.remove("is-waiting"),["ad-non-linear","ad-linear"].forEach((wi)=>Tt.setState(wi,!1)),Be.reason&&xt("teardown(:err, reason: %s) %o",Be.reason);let He=ie.getLastAd();if(Tt.emit("ad/show-first-frame",{root:Et}),!ie.shouldRestartContent())return xt("Lifecycle.teardown(:skip_restart, reason: %s)","Ad prevented restarting content"),q(Et);if(Tt.currentTime>0&&Tt.currentTime>=Tt.duration||ie.ad_type=="postroll"||(He==null?void 0:He.restart)===!1)return xt("Lifecycle.teardown(:skip_restart, reason: %s)","was a postroll ad"),q(Et);if(Tt.currentSrc===""&&Tt.setSrc(Tt.original_src),Tt.paused&&ie.shouldRestartContent()&&(xt("Lifecycle.teardown(:toggle_play, %s)","attempting to restart content"),await Tt.togglePlay(!0)),!Tt.paused)return xt("Lifecycle.teardown(:ok)","restarted video content"),q(Et)}({root:m,content:y,ads:O,ui:ut,err:Ot.detail,eventName:Ot.type}));let yt=!!c.autoplay;var Pt;y.on("viewenter",()=>{yt&&ct.autopause!==!1&&O.resume()}),y.on("viewleave",(Pt=()=>{ct.autopause!==!1&&(yt=!O.paused,O.pause())},(Ot)=>{setTimeout(function(){if(!Ot.defaultPrevented&&!Ot.prevented)return Pt(Ot)},0)}))}function we({ads:c,content:m,state:y}){y.listening||(m.on(["timeupdate","seeked","playing","seeking"],(O)=>{c.adapter.isCustomPlaybackEnabled()&&(c.adPlaying||c.paused)||(c.adPlaying&&c.adapter.isLinearAd()&&!m.paused&&m.pause(),se({ads:c,content:m,seek:O.type==="seeking"}))}),y.listening=!0)}function se({ads:c,content:m,seek:y=!1}){c&&c.setCurrentTime(m.currentTime,void 0,y)}function q(c){c.classList.remove("is-seamless")}let tt=at("ads/timers");class Lt{constructor(c={},m={}){this.intervals=c,this.timers=m}}let _t=-1;function Gt(c,m,y){let O=setInterval(y,m);if(tt("TimerRegistry.createInterval() -> "+O,c.intervals),typeof O=="object"){let N=++_t;return c.intervals[N]=N,N}return c.intervals[O]=O,O}function Oe(c){if(c)return tt("TimerRegistry.empty()",Object.keys(c.timers),Object.keys(c.intervals)),Object.keys(c.intervals).forEach((m)=>function(y,O){return tt("TimerRegistry.removeInterval() -> "+O,y.intervals),clearInterval(y.intervals[O]),delete y.intervals[O],y}(c,m)),Object.keys(c.timers).forEach((m)=>function(y,O){return tt("TimerRegistry.removeTimeout() -> "+O,y.timers),clearTimeout(y.timers[O]),delete y.timers[O],y}(c,m)),c}function Re(c){try{return c.getAdPodInfo().getPodIndex()}catch(m){return}}class ai{adRequestStart(c){typeof c=="number"&&typeof this.requestStart!="number"&&(this.requestStart=performance.now())}adRequestEnd(){this.requestStart=void 0}getRemainingAdLoadTime(c,m){return typeof m!="number"||typeof this.requestStart!="number"?c:Math.max(0,m-(performance.now()-this.requestStart))}}function Qe(c){return function(m){return!document.fullscreenEnabled&&typeof m.webkitEnterFullScreen=="function"&&typeof m.webkitExitFullScreen=="function"}(c)&&!c.root.classList.contains("no-fullscreen")}class Ge{constructor(c){this.eventHandler=c,this.log=at("ads/adapter/ima"),this.google=window.google,this._adHandlers=[],this._timers=new Lt,this._started=!1,this._volumeLevel=0,this._adLoaded=!1,this.customPlaybackEnabled=!1,this._paused=!1,this._all_ads_completed=!1,this._currentDuration=0,this._currentRemaining=0,this._currentDisplayTs=0,this._isInitialized=!1,this._adBreakTime=0,this._prepared=!1,this.opts={},this.loadingController=new ai}async init(c){this.log("init",this.videoTag,c),this.opts=c,this._dimensions={width:c.width,height:c.height,linear:c.linear},this._prepared=!0,!this._isInitialized&&this.videoTag&&await this.initAdapter()}async initAdapter(){this.log("initAdapter",this.opts);try{await this.initialize(this.opts),this._isInitialized=!0}catch(c){this.log("initAdapter failed:",c),this._prepared=!1,this.eventHandler.trigger("ad-adapter-init-failed")}}isReady(){return!!this._isInitialized}setVideoTag(c){this.videoTag=c,this.customPlaybackEnabled=Qe(c),c.root.classList.toggle("ads-custom-playback-enabled",this.customPlaybackEnabled)}setAdBreakTime(c){this._adBreakTime=c}getAdBreakTime(){return this._adBreakTime}isCustomPlaybackEnabled(){return this.customPlaybackEnabled}isAttemptingPrerollOnIOS(){var c;return!!((c=this==null?void 0:this.videoTag)===null||c===void 0?void 0:c.root.classList.contains("preroll-ios"))}setAttemptingPrerollOnIOS(c){var m;(m=this==null?void 0:this.videoTag)===null||m===void 0||m.root.classList.toggle("preroll-ios",c)}isLinearAd(){return!!this._adLinear}getVideoTag(){return this.videoTag}getDimensions(){return this._dimensions||{}}getOpts(){return this.opts}isPaused(){return this._paused}destroy(){Oe(this._timers),this._adHandlers&&this._adHandlers.forEach((c)=>c()),this._adHandlers=void 0,this._adDisplayContainer&&this._adDisplayContainer.destroy(),this._adDisplayContainer=void 0,this._adsLoader&&this._adsLoader.destroy(),this._adsLoader=void 0,this._adsManager&&this._adsManager.destroy(),this._adsManager=void 0}stop(){this._adsManager&&this._adsManager.stop()}initialize(c){let m=this.isAdPod(),y=this._adLoaded||m;if(this.cleanup(),!this.videoTag)return console.warn("videoTag not set during initialization");this.opts=c,this._volumeLevel=c.volume;let O=this.google.ima.settings;if(c.NumRedirects=c.NumRedirects||c.redirects,O.setVpaidMode(c.VpaidMode||this.google.ima.ImaSdkSettings.VpaidMode.INSECURE),O.setDisableCustomPlaybackForIOS10Plus(!this.customPlaybackEnabled),"NumRedirects"in c&&O.setNumRedirects(c.NumRedirects),"AutoPlayAdBreaks"in c&&O.setAutoPlayAdBreaks(c.AutoPlayAdBreaks),"Locale"in c&&O.setLocale(c.Locale),"Ppid"in c&&O.setPpid(c.Ppid),!document.body.contains(c.container))throw new Error("AdDisplayContainer was not found in the document.body");this._adDisplayContainer=new this.google.ima.AdDisplayContainer(c.container,A().tizen||A().webOS?void 0:this.videoTag),this._adDisplayContainer.initialize(),this._adsLoader=new this.google.ima.AdsLoader(this._adDisplayContainer),this.log("ima.initialise(:wait -> ADS_MANAGER_LOADED)",Object.assign(Object.assign({},c),{volume:this.videoTag.volume,muted:this.videoTag.muted})),this._adsLoader.addEventListener(this.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(N)=>{if(!this.videoTag)return;this.log(`ima.initialise(:done -> ADS_MANAGER_LOADED)
|
|
9
|
+
%o`,Object.assign(Object.assign({},c),{volume:this.videoTag.volume,muted:this.videoTag.muted}));let B=new this.google.ima.AdsRenderingSettings;this.log("ima.rendering(preload: %s)",!!c.preload_ads),B.useStyledNonLinearAds=!0,B.enablePreloading=!!c.preload_ads,B.loadVideoTimeout=c.media_timeout||-1,B.restoreCustomPlaybackStateOnAdBreakComplete=this.customPlaybackEnabled,this.customPlaybackEnabled&&(B.playAdsAfterTime=this.videoTag.currentTime),this.eventHandler.trigger("ad-ima-rendering-settings",B);let F=this._adsManager=N.getAdsManager(this.videoTag,B);this.eventHandler.trigger("ad-ima-adapter-init",F),F.addEventListener(this.google.ima.AdEvent.Type.LOADED,()=>{this.log("debug(ima.adsManager): google.ima.AdEvent.Type.LOADED")}),F.addEventListener(this.google.ima.AdErrorEvent.Type.AD_ERROR,()=>{this.log("debug(ima.adsManager): google.ima.AdErrorEvent.Type.AD_ERROR")}),F.addEventListener(this.google.ima.AdEvent.Type.STARTED,()=>{this.log("debug(ima.adsManager): google.ima.AdEvent.Type.STARTED")}),F.addEventListener(this.google.ima.AdEvent.Type.AD_PROGRESS,(yt)=>{var Pt,Ot;let Et=(Pt=yt.getAdData())===null||Pt===void 0?void 0:Pt.duration,Tt=(Ot=yt.getAdData())===null||Ot===void 0?void 0:Ot.currentTime;isNaN(Et)||isNaN(Tt)||(this._currentRemaining=Et-Tt,this.eventHandler.trigger("ad-progress",{remaining:this._currentRemaining,duration:Et}))}),F.addEventListener(this.google.ima.AdEvent.Type.STARTED,(yt)=>{this._currentRemaining=-1,this.debugEvent(yt);let Pt=yt.getAd();Pt&&(this._currentDuration=Pt.getDuration(),this._currentDisplayTs=Date.now(),this.emitWithAd("ad-started",Pt),Pt.isLinear()&&Ge.pollRemaining({ima:this,adsManager:F}))}),F.addEventListener(this.google.ima.AdEvent.Type.COMPLETE,(yt)=>{this.debugEvent(yt);let Pt=yt.getAd();Pt&&this.emitWithAd("ad-completed",Pt),Oe(this._timers)}),F.addEventListener(this.google.ima.AdEvent.Type.SKIPPED,(yt)=>{this.debugEvent(yt);let Pt=yt.getAd();Pt&&this.emitWithAd("ad-skipped",Pt)}),F.addEventListener(this.google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED,(yt)=>{if(this.isAdPod()&&this.videoTag){let Ot=Math.abs(this.videoTag.currentTime-this.videoTag.duration)<1?-1:this.videoTag.currentTime;this.setAdBreakTime(Ot)}this.debugEvent(yt);let Pt=yt.getAd();Pt&&this.emitWithAd("ad-pause-content",Pt)}),F.addEventListener(this.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,(yt)=>{this.debugEvent(yt),this._started=!1,this._currentDisplayTs=0,this.eventHandler.trigger("ad-break-completed",{force:!0})}),F.addEventListener(this.google.ima.AdEvent.Type.VOLUME_CHANGED,(yt)=>{this.log("IMA::volume(type: %s, event: %o)",yt);let Pt=F.getVolume();this._volumeLevel=Pt,this.eventHandler.trigger("ad-volume-changed",Pt)});let ut=(yt)=>{this._paused=yt,this.eventHandler.trigger(yt?"ad-paused":"ad-resumed")};F.addEventListener(this.google.ima.AdEvent.Type.PAUSED,()=>ut(!0)),F.addEventListener(this.google.ima.AdEvent.Type.RESUMED,()=>ut(!1)),F.addEventListener(this.google.ima.AdEvent.Type.STARTED,()=>ut(!1)),F.addEventListener(this.google.ima.AdEvent.Type.VOLUME_MUTED,(yt)=>{this.log("IMA::volume(type: %s, event: %o)","mute",yt),this.eventHandler.trigger("ad-muted")});let{width:ct,height:It}=c;ct&&It&&(F.init(ct,It,this.google.ima.ViewMode.NORMAL),this.log("ima.initialise: done initializing"))}),y&&(this.log("Event(reload: %s)","reload-ad-requested"),this.eventHandler.trigger("reload-ad-requested",m)),this.eventHandler.trigger(ft,this)}destroyManager(c="unknown"){if(!this._adsManager)return this.log("ima::destroyManager(:skip, label: %s)",c);this.log("ima::destroyManager(:ok, label: %s)",c),this._adsManager.destroy()}reset(){this.destroyManager("reset"),Oe(this._timers),this.clearAdHandlers(),this._started=!1,this._adLoaded=!1}cleanup(){this.destroyManager("cleanup"),this._adsLoader&&this._adsLoader.destroy(),this._adDisplayContainer&&this._adDisplayContainer.destroy(),this._adLoaded=!1}waitForAdsManager(){return new Promise((c)=>{this.log("ima.waitForAdsManager:",this._adsManager),this.once(this._adsLoader,this.google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,()=>{this.log("ima.waitForAdsManager(:ok)",this._adsManager),c(this._adsManager)})})}async initAd(c,m=5000){var y;this.log(`ima.initAd(adTag: ${c}, timeout: ${m})`),this.customPlaybackEnabled||this.loadingController.adRequestStart(this.opts.total_loading_timeout);try{if(await this.requestAd(c,this.loadingController.getRemainingAdLoadTime(m,this.opts.total_loading_timeout)),this._adLoaded=!0,this.customPlaybackEnabled)return;(y=this._adsManager)===null||y===void 0||y.updateAdsRenderingSettings({loadVideoTimeout:this.loadingController.getRemainingAdLoadTime(this.opts.media_timeout||-1,this.opts.total_loading_timeout)})}catch(O){throw this.log("ima.initAd:",O),this._adLoaded=!1,O}finally{Oe(this._timers)}}async requestAd(c,m){if(this.destroyManager("requestAd"),!this.videoTag)return;this.setAdBreakTime(this.videoTag.currentTime);let{autoplay:y=!1}=this.opts,O=Date.now(),N=this.videoTag.muted;this._volumeLevel=this.videoTag.volume;let B=N||this._volumeLevel==0;this._all_ads_completed=!1,this.log("ima.requestAd(%o)",Object.assign(Object.assign({},this.opts),{autoplay:y,muted:N,timeout:m,adTag:c,_volumeLevel:this._volumeLevel,manager:this._adsManager})),this.clearAdHandlers();let F=new this.google.ima.AdsRequest;F.adTagUrl=c;let{height:ut,width:ct}=this.opts;return ct&&(F.linearAdSlotWidth=ct),ut&&(F.linearAdSlotHeight=ut),!this.opts.disable_non_linear_ads&&ct&&(F.nonLinearAdSlotWidth=ct),!this.opts.disable_non_linear_ads&&ut&&(F.nonLinearAdSlotHeight=ut-50),F.setAdWillAutoPlay(y),F.setAdWillPlayMuted(B),F.vastLoadTimeout=m,this.eventHandler.trigger("ad-ima-before-ads-request",{request:F}),this._adsLoader?new Promise(async(It,yt)=>{var Pt;let Ot=this.waitForAdsManager();(Pt=this._adsLoader)===null||Pt===void 0||Pt.requestAds(F),this.once(this._adsLoader,this.google.ima.AdErrorEvent.Type.AD_ERROR,(Et)=>{yt(()=>(this.emitError("ad-request-error",Et),Promise.reject(new Error("Ad load failed"))))}),setTimeout(()=>{yt(()=>{Ot.then((Tt)=>{Tt.destroy(),this._adsManager===Tt&&(this._adsManager=void 0)});let Et=new Error("Ad internal timeout reached");return this.eventHandler.trigger("ad-timeout",Et),Promise.reject(Et)})},m),It(await Ot)}).then((It)=>new Promise((yt,Pt)=>{this.volume(B?0:this._volumeLevel),this.eventHandler.trigger("ad-volume-changed",this._volumeLevel);let Ot=this.cuepoints();if(Ot&&Ot.length&&Ot[0]!==0)return yt({ad:!1,adsManager:It});this.once(It,this.google.ima.AdErrorEvent.Type.AD_ERROR,(Et)=>{Pt(()=>(this.emitError("ad-request-error",Et),Promise.reject(Et)))}),this.once(It,this.google.ima.AdEvent.Type.ALL_ADS_COMPLETED,()=>{this._all_ads_completed=!0,yt(null)}),this.once(It,this.google.ima.AdEvent.Type.LOADED,(Et)=>{this.eventHandler.trigger("ad-request-completed",{request_load_time:Date.now()-O});let Tt=Et.getAd();Tt&&(this.log("ima.requestAd: AD_REQUEST_COMPLETED",Tt.getContentType()),Tt.getContentType()=="application/javascript"&&this.eventHandler.trigger("vpaid-init",Tt),yt(null))}),this.once(It,this.google.ima.AdEvent.Type.CLICK,()=>{this.log("ima.requestAd: click event"),this.pause()})}),(It)=>It()):void 0}async playAd(){if(this.log("ima.playAd()",this),!this._adsManager||!this._adLoaded)return;let c=this.currentAd();if(c&&(!this.customPlaybackEnabled||c.isLinear()))try{await this.startAndWaitForAdCompletion(this._adsManager,c.isLinear())}catch(m){throw this.log("ima.playAd",m),m}finally{this._adLoaded=!1,Oe(this._timers)}}startAndWaitForAdCompletion(c,m){if(!this._started)return this.log("ima.startAndWaitForAdCompletion(manager: %o)",{volume:c.getVolume()}),new Promise((y,O)=>{let N=!1;this.once(c,this.google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED,()=>{if(this.log("ima.startAndWaitForAdCompletion: CONTENT_RESUME_REQUESTED <<< happened"),this._started=!1,N)return this.log("ima.startAndWaitForAdCompletion: Content resume requested, but trying to recover from ad error");y()}),this.once(c,this.google.ima.AdErrorEvent.Type.AD_ERROR,async(ut)=>{this.log("ima.startAndWaitForAdCompletion: beginning error recovery ->",ut),N=!0;try{let{ok:ct}=await Ge.pollForFatalError({err:ut,ima:this});ct&&(N=!1)}catch(ct){this._started=!1,O(ut)}});let B=this.getVideoTag();if(!B)return;let F=()=>{m&&(this._started=!0),c.start(),this.eventHandler.trigger("ad-play-requested")};if(!m||B.hasState(Mt)||B.hasState("is-popped-out"))return F();B.paused||B.pause(),B.once("viewenter",()=>F())})}pause(){this.log("ima.pause()"),this._adsManager&&this._adsManager.pause()}resume(){this.log("ima.resume()"),this._adsManager&&this._adsManager.resume()}volume(c){if(this._adsManager)try{return arguments.length>0&&typeof c=="number"&&this._adsManager.setVolume(c),this._volumeLevel=this._adsManager.getVolume()}catch(m){this.log("ima.volume() failed (%o)",m)}}onResize({width:c,height:m,linear:y,silent:O,resize_non_linear:N}){this._adsManager&&(this._adLinear=y===void 0?this._adLinear:y,this.opts&&(c||m)&&(y===!1&&(c+=10,m+=10),this._dimensions={width:c,height:m,linear:y},y&&(this.opts.width=c,this.opts.height=m),(this._adLinear||N)&&(O||this.log("ima.onResize %s x %s",c,m),this._adsManager.resize(c,m,this.google.ima.ViewMode.NORMAL))))}onAdRequestEnd(){var c;this.customPlaybackEnabled||(this.loadingController.adRequestEnd(),(c=this._adsManager)===null||c===void 0||c.updateAdsRenderingSettings({loadVideoTimeout:this.opts.media_timeout||-1}))}getAdInfo(){let c=this.currentAd();if(c)return{duration:c.getDuration(),currentTime:this._currentRemaining}}currentAd(){let c=this._adsManager;if(c)return c.getCurrentAd()}isAdPod(){let c=this.cuepoints();return!!(c&&c.length>1)}cuepoints(){return this._adsManager&&this._adsManager.getCuePoints()}async contentComplete(){this.log("ima.contentComplete() -> ",this),this._adsLoader&&this._adsLoader.contentComplete();let c=this.cuepoints();c&&c.indexOf(-1)!==-1&&await new Promise((m)=>{Ge.race(this.eventHandler,["ad-break-completed","ad-error"],m)})}isUiDisabled(){try{let c=this.currentAd();return c&&c.isUiDisabled()}catch(c){return null}}getAdPodInfo(){try{let c=this.currentAd();return c&&c.getAdPodInfo()}catch(c){return null}}canDismissNonLinear(){let c=this.currentAd();if(!c||c.isLinear()||!this._adsManager||!this._currentDisplayTs)return!0;let m=Date.now(),y=c.getMinSuggestedDuration();return m-this._currentDisplayTs>1000*y}static unwrapError(c,m){if(!c)return"";if(typeof c.getMessage=="function")return c.getMessage();return c.message?c.message:m||""}static pollForFatalError({err:c,ima:m}){let y;try{let N=c.getError(),B=N.getInnerError();y={reason:B?Ge.unwrapError(B,N.message):"",type:N.getType(),code:N.getErrorCode()}}catch(N){}let O=m._currentRemaining;return new Promise((N,B)=>{let F=setTimeout(()=>{m.eventHandler&&m.eventHandler.trigger("ad-playback-error",y),B(new Error("Ad not progressing"))},2500);m.eventHandler.once("ad-progress",(ut)=>{let ct=ut.detail.remaining;ct!==-1&&ct<O&&(clearTimeout(F),N({ok:1}))})})}static pollRemaining({ima:c,adsManager:m}){let y=-1;return Gt(c._timers,250,function(){let O=m.getRemainingTime();c._currentRemaining!=-1&&c._currentRemaining<=O||(c._currentRemaining=m.getRemainingTime(),y!=c._currentRemaining&&(y=c._currentRemaining,c.eventHandler.trigger("ad-progress",{remaining:c._currentRemaining,duration:c._currentDuration})))})}once(c,m,y){this._adHandlers.push(function(O,N,B){let F=(ut)=>{B(ut),O.removeEventListener(N,F)};return O.addEventListener(N,F),()=>O.removeEventListener(N,F)}(c,m,y))}static race(c,m,y){m.forEach((O)=>{let N=(...B)=>{m.forEach((F)=>c.removeListener(F,N)),y(B)};c.on(O,N)})}clearAdHandlers(){this.log("ima.clearAdHandlers"),this._adHandlers.forEach((c)=>c()),this._adHandlers=[]}emitWithAd(c,m){if(this.log("ima.emitWithAd",c,m),!this._adsManager)return;let y=function(B){try{return B.getAdPodInfo().getAdPosition()}catch(F){return}}(m),O=function(B){try{return B.getAdPodInfo().getTotalAds()}catch(F){return}}(m),N={ad:{duration:m.getDuration(),width:m.getWidth(),height:m.getHeight(),position:y,totals:O},volume:this._adsManager.getVolume(),vast_ad_id:m.getAdId(),linear:m.isLinear(),mime_type:m.getContentType(),ima_event:!0};this.log(`emitWithAd::event(name: ${c}, data: %o, ad: %o)`,N,m),this.eventHandler.trigger(c,N)}emitError(c,m){let y={vast_error_type:m.getError().getType(),reason:m.getError().getMessage(),vast_error:m.getError().getErrorCode()};this.log(`ima.error(${c})`,y),this.eventHandler.trigger(c,y)}debugEvent(c){try{let m=c.getAd();if(!m)return;this.log(`ima.event.${c.type} ->`,{event:c,data:c.getAdData(),position:Re(m),ad:m})}catch(m){}}}var Se=function(c){var m={exports:{}};return c(m,m.exports),m.exports}(function(c,m){var y=function(){for(var N=new Array(256),B=0;B<256;++B)N[B]="%"+((B<16?"0":"")+B.toString(16)).toUpperCase();return N}(),O=Object.prototype.hasOwnProperty;m.arrayToObject=function(N,B){for(var F=B.plainObjects?Object.create(null):{},ut=0;ut<N.length;++ut)N[ut]!==void 0&&(F[ut]=N[ut]);return F},m.merge=function(N,B,F){if(!B)return N;if(typeof B!="object"){if(Array.isArray(N))N.push(B);else{if(typeof N!="object")return[N,B];(F.plainObjects||F.allowPrototypes||!O.call(Object.prototype,B))&&(N[B]=!0)}return N}if(typeof N!="object")return[N].concat(B);var ut=N;return Array.isArray(N)&&!Array.isArray(B)&&(ut=m.arrayToObject(N,F)),Object.keys(B).reduce(function(ct,It){var yt=B[It];return O.call(ct,It)?ct[It]=m.merge(ct[It],yt,F):ct[It]=yt,ct},ut)},m.decode=function(N){try{return decodeURIComponent(N.replace(/\+/g," "))}catch(B){return N}},m.encode=function(N){if(N.length===0)return N;for(var B=typeof N=="string"?N:String(N),F="",ut=0;ut<B.length;++ut){var ct=B.charCodeAt(ut);ct===45||ct===46||ct===95||ct===126||ct>=48&&ct<=57||ct>=65&&ct<=90||ct>=97&&ct<=122?F+=B.charAt(ut):ct<128?F+=y[ct]:ct<2048?F+=y[192|ct>>6]+y[128|63&ct]:ct<55296||ct>=57344?F+=y[224|ct>>12]+y[128|ct>>6&63]+y[128|63&ct]:(ut+=1,ct=65536+((1023&ct)<<10|1023&B.charCodeAt(ut)),F+=y[240|ct>>18]+y[128|ct>>12&63]+y[128|ct>>6&63]+y[128|63&ct])}return F},m.compact=function(N,B){if(typeof N!="object"||N===null)return N;var F=B||[],ut=F.indexOf(N);if(ut!==-1)return F[ut];if(F.push(N),Array.isArray(N)){for(var ct=[],It=0;It<N.length;++It)N[It]&&typeof N[It]=="object"?ct.push(m.compact(N[It],F)):N[It]!==void 0&&ct.push(N[It]);return ct}for(var yt=Object.keys(N),Pt=0;Pt<yt.length;++Pt){var Ot=yt[Pt];N[Ot]=m.compact(N[Ot],F)}return N},m.isRegExp=function(N){return Object.prototype.toString.call(N)==="[object RegExp]"},m.isBuffer=function(N){return N!=null&&!!(N.constructor&&N.constructor.isBuffer&&N.constructor.isBuffer(N))}}),si={brackets:function(c){return c+"[]"},indices:function(c,m){return c+"["+m+"]"},repeat:function(c){return c}},Xe={delimiter:"&",strictNullHandling:!1,skipNulls:!1,encode:!0,encoder:Se.encode},Ii=function c(m,y,O,N,B,F,ut,ct,It){var yt=m;if(typeof ut=="function")yt=ut(y,yt);else if(yt instanceof Date)yt=yt.toISOString();else if(yt===null){if(N)return F?F(y):y;yt=""}if(typeof yt=="string"||typeof yt=="number"||typeof yt=="boolean"||Se.isBuffer(yt))return F?[F(y)+"="+F(yt)]:[y+"="+String(yt)];var Pt,Ot=[];if(yt===void 0)return Ot;if(Array.isArray(ut))Pt=ut;else{var Et=Object.keys(yt);Pt=ct?Et.sort(ct):Et}for(var Tt=0;Tt<Pt.length;++Tt){var ie=Pt[Tt];B&&yt[ie]===null||(Ot=Array.isArray(yt)?Ot.concat(c(yt[ie],O(y,ie),O,N,B,F,ut,ct,It)):Ot.concat(c(yt[ie],y+(It?"."+ie:"["+ie+"]"),O,N,B,F,ut,ct,It)))}return Ot},Ze=Object.prototype.hasOwnProperty,Je={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1000,strictNullHandling:!1,plainObjects:!1,allowPrototypes:!1,allowDots:!1,decoder:Se.decode},oi=function(c,m,y){if(c){var O=y.allowDots?c.replace(/\.([^.[]+)/g,"[$1]"):c,N=/(\[[^[\]]*])/g,B=/(\[[^[\]]*])/.exec(O),F=B?O.slice(0,B.index):O,ut=[];if(F){if(!y.plainObjects&&Ze.call(Object.prototype,F)&&!y.allowPrototypes)return;ut.push(F)}for(var ct=0;(B=N.exec(O))!==null&&ct<y.depth;){if(ct+=1,!y.plainObjects&&Ze.call(Object.prototype,B[1].slice(1,-1))&&!y.allowPrototypes)return;ut.push(B[1])}return B&&ut.push("["+O.slice(B.index)+"]"),function It(yt,Pt,Ot){if(!yt.length)return Pt;var Et,Tt=yt.shift();if(Tt==="[]")Et=(Et=[]).concat(It(yt,Pt,Ot));else{Et=Ot.plainObjects?Object.create(null):{};var ie=Tt.charAt(0)==="["&&Tt.charAt(Tt.length-1)==="]"?Tt.slice(1,-1):Tt,_e=parseInt(ie,10);!isNaN(_e)&&Tt!==ie&&String(_e)===ie&&_e>=0&&Ot.parseArrays&&_e<=Ot.arrayLimit?(Et=[])[_e]=It(yt,Pt,Ot):Et[ie]=It(yt,Pt,Ot)}return Et}(ut,m,y)}},Qt=function(c,m){var y,O,N=c,B=m||{},F=B.delimiter===void 0?Xe.delimiter:B.delimiter,ut=typeof B.strictNullHandling=="boolean"?B.strictNullHandling:Xe.strictNullHandling,ct=typeof B.skipNulls=="boolean"?B.skipNulls:Xe.skipNulls,It=(typeof B.encode=="boolean"?B.encode:Xe.encode)?typeof B.encoder=="function"?B.encoder:Xe.encoder:null,yt=typeof B.sort=="function"?B.sort:null,Pt=B.allowDots!==void 0&&B.allowDots;if(B.encoder!==null&&B.encoder!==void 0&&typeof B.encoder!="function")throw new TypeError("Encoder has to be a function.");typeof B.filter=="function"?N=(O=B.filter)("",N):Array.isArray(B.filter)&&(y=O=B.filter);var Ot,Et=[];if(typeof N!="object"||N===null)return"";Ot=B.arrayFormat in si?B.arrayFormat:("indices"in B)?B.indices?"indices":"repeat":"indices";var Tt=si[Ot];y||(y=Object.keys(N)),yt&&y.sort(yt);for(var ie=0;ie<y.length;++ie){var _e=y[ie];ct&&N[_e]===null||(Et=Et.concat(Ii(N[_e],_e,Tt,ut,ct,It,O,yt,Pt)))}return Et.join(F)},qt=function(c,m){var y=m||{};if(y.decoder!==null&&y.decoder!==void 0&&typeof y.decoder!="function")throw new TypeError("Decoder has to be a function.");if(y.delimiter=typeof y.delimiter=="string"||Se.isRegExp(y.delimiter)?y.delimiter:Je.delimiter,y.depth=typeof y.depth=="number"?y.depth:Je.depth,y.arrayLimit=typeof y.arrayLimit=="number"?y.arrayLimit:Je.arrayLimit,y.parseArrays=y.parseArrays!==!1,y.decoder=typeof y.decoder=="function"?y.decoder:Je.decoder,y.allowDots=typeof y.allowDots=="boolean"?y.allowDots:Je.allowDots,y.plainObjects=typeof y.plainObjects=="boolean"?y.plainObjects:Je.plainObjects,y.allowPrototypes=typeof y.allowPrototypes=="boolean"?y.allowPrototypes:Je.allowPrototypes,y.parameterLimit=typeof y.parameterLimit=="number"?y.parameterLimit:Je.parameterLimit,y.strictNullHandling=typeof y.strictNullHandling=="boolean"?y.strictNullHandling:Je.strictNullHandling,c===""||c==null)return y.plainObjects?Object.create(null):{};for(var O=typeof c=="string"?function(It,yt){for(var Pt={},Ot=It.split(yt.delimiter,yt.parameterLimit===1/0?void 0:yt.parameterLimit),Et=0;Et<Ot.length;++Et){var Tt,ie,_e=Ot[Et],Be=_e.indexOf("]=")===-1?_e.indexOf("="):_e.indexOf("]=")+1;Be===-1?(Tt=yt.decoder(_e),ie=yt.strictNullHandling?null:""):(Tt=yt.decoder(_e.slice(0,Be)),ie=yt.decoder(_e.slice(Be+1))),Ze.call(Pt,Tt)?Pt[Tt]=[].concat(Pt[Tt]).concat(ie):Pt[Tt]=ie}return Pt}(c,y):c,N=y.plainObjects?Object.create(null):{},B=Object.keys(O),F=0;F<B.length;++F){var ut=B[F],ct=oi(ut,O[ut],y);N=Se.merge(N,ct,y)}return Se.compact(N)};let $t=at("fpads:macros"),he=/\[([\s\S]+?)\]/g;class de{static run(c){try{return c()}catch(m){return void console.error(m)}}static merge(...c){return c.reduce((m,y)=>Object.assign(m,y),{})}static cast(c){return c===void 0?"":typeof c=="function"?encodeURIComponent(de.run(c)||""):typeof c=="string"?encodeURIComponent(c):typeof c=="number"||typeof c=="boolean"?c.toString():""}static normalize(c){return c.trim()}static process_obj(c,m,y){return Object.keys(c).reduce((O,N)=>{let B=de.process_str(N,m,y,!0),F=c[N];return F===null?(O[B]=F,O):typeof F=="object"?(O[B]=de.process_obj(F,m,y),O):typeof F=="string"?(O[B]=de.process_str(F,m,y),O):(console.error(new Error(`${F} at ${N} not a handled Macro type`)),O)},{})}static process_str(c,m,y,O=!1){return c.replace(m.pattern,(N,B)=>{let F=de.normalize(B);if(!(F in y)||y[F]===void 0)return N;let ut=y[F],ct=O?ut:de.cast(ut);return $t("Macro.replace(raw: %s, macro: %s, value: %s)",O,B,ct),ct})}constructor(c={},m=he){this.vars=c,this.pattern=m}fork(c={},m=this.pattern){let y=de.merge(this.vars,c);return new de(y,m)}compile(c,m={}){let y=de.merge(this.vars,m),[O,N]=c.split("?"),B=qt(N||"",{strictNullHandling:!0,decoder:(ut)=>ut}),F=Qt(de.process_obj(B,this,y),{encode:!1,strictNullHandling:!0});return de.process_str(O,this,y,!0)+"?"+F}}function Oi(c,m={width:0,height:0}){let y,O;try{let ct=document.createElement("a");ct.href=y=window.location!=window.parent.location?document.referrer:document.location.href,O=ct.hostname}catch(ct){console.error(ct)}let{width:N,height:B}=m,{video_source:F}=c||{},ut=function(){let ct=window;return typeof ct.__flowplayerAdParameters=="object"?ct.__flowplayerAdParameters:{}}();return Object.assign({random:Date.now(),page_url:y,domain:O,player_width:N,player_height:B,video_url:F,videourl:F},ut)}de.patterns={BRACKETS:he,CURLY:/\{([\s\S]+?)\}/g,UNDERSCORE:/__([\s\S]+?)__/g};let en=/^flowplayer:\/\/(.+)/;async function Ai(c){if(typeof c=="string"&&en.test(c)){let m=en.exec(c),y=m&&window[m[1]];if(y)return Ai(y)}if(typeof c!="function")return c;try{return await c()}catch(m){return""}}class We{constructor(c,m={}){this._ads=c,this._opts=m,this._nextIndex=0,this._postroll=void 0,this._loadPending=!1,this._postrollActive=!1,this.reset(this._ads)}toJSON(){let c=(this._ads||[]).slice(this._nextIndex);return this._postroll&&c.push(this._postroll),c}reset(c){this.setAds(c),this._nextIndex=0,this._postrollActive=!1}resetCounter(){this._nextIndex=0,this._postrollActive=!1}setAds(c){this._ads=c||[],this.sort()}getAds(){return this._ads}getNextAd(c){return this._ads[this._nextIndex]||c}getCurrentAd(){return this._postrollActive?this._postroll:this._loadPending?0:this._ads[this._nextIndex-1]}getPostroll(){return this._postroll}isDrained(){return this._nextIndex+1>this._ads.length}setPostrollActive(){this._postrollActive=!0}updateContentDuration(c){this._opts.content_duration=c}increment(){++this._nextIndex}decrement(){this._nextIndex>0&&--this._nextIndex}getNextIndex(){return this._nextIndex}getCurrentType(){let c=this.getCurrentAd();if(c)return We.kindOf(c.time)}sort(){this._postroll=this._ads.find((c)=>c.time===-1),this._ads=this._ads.filter((c)=>c!==this._postroll).sort((c,m)=>c.time===m.time?this._ads.indexOf(c)-this._ads.indexOf(m):c.time-m.time)}shallPlayAd(c){if(this._loadPending)return!1;let m=this.getCurrentAd()||this.getNextAd();return!!(m&&m.time<=c&&m.time!==-1)}shallPlayNext(){let c=this.getNextAd(),m=this.getCurrentAd();return!(!c||!m||c.time!==m.time)}waitForLoad(c,m,y){if(this._loadPending=!1,!m)return!1;let O=y?this._opts.preload_advance:0;return m.time>=0?this._loadPending=c<m.time-O:m.time===-1&&(this._loadPending=this._opts.content_duration>0&&c!==-1?c<this._opts.content_duration-O:c!==-1),this._loadPending}static hasPreroll(c){return!!c.find((m)=>m.time===0)}static isOutstream(c){return We.hasPreroll(c)&&!!c[0].outstream}static kindOf(c){switch(c){case 0:return"preroll";case-1:return"postroll";default:return"midroll"}}}let{prototype:cn,getPrototypeOf:gi}=Object,_i=at("fpads:ads:state");var ve;(function(c){c[c.IDLE=0]="IDLE",c[c.INITIALIZING=1]="INITIALIZING",c[c.FETCHING_AD=2]="FETCHING_AD",c[c.AD_AVAILABLE=4]="AD_AVAILABLE",c[c.BREAK_ACTIVE=8]="BREAK_ACTIVE",c[c.PLAYING=16]="PLAYING",c[c.FATAL_ERROR=32]="FATAL_ERROR"})(ve||(ve={}));class Li{static of(){return new Li}constructor(c=0){this._state=c}reset(){this._state=0}toggleState(c,m){return c===void 0&&_i(new Error("AdState cannot toggleState for `undefined`")),m===void 0?this._state^=c:m?void(this._state|=c):this._state&=~c}hasAll(c){return this._state==(this._state|c)}hasAny(c){return!!(this._state&c)}get state(){return this._state}}let pe={ok:at("fpads:analytics:request-queue"),err:at("fpads:analytics:request-queue:err"),warn:at("fpads:analytics:request-queue:warn")};class fe{static of(){return new fe}static is_empty(c){return c.pending.length==0}static is_high_water(c){return c.open.length==fe.MAX_OPEN_REQUESTS}static maybe_spawn_req(c){if(fe.is_empty(c))return pe.ok("maybe_spawn_req called Queue that is EMPTY"),c;if(fe.is_high_water(c))return pe.warn("maybe_spawn_req called on Queue that is HIGH_WATER"),c;try{let m=fe.lpop(c);m&&fe.request(c,m)}catch(m){pe.err(m)}}static increment_failures(c){return c.stats.failures++,c.stats.failures>fe.MAX_FAILURE_COUNT&&(c.stats.ttl=Date.now()+fe.REQUEST_TTL_MS),c}static handle_error(c,m){fe.rm(c,m),fe.increment_failures(c)}static request(c,[m,y,O]){if(pe.ok(`Request[${O.event_type}] request`,O,c.stats),Date.now()<c.stats.ttl)return pe.warn(`Request[${O.event_type}] skipping because too many errors too quickly`,c.stats);let N=new XMLHttpRequest;c.open.push(N),N.timeout=fe.REQUEST_TIMEOUT_MS,N.ontimeout=function(){fe.handle_error(c,N),pe.warn(`Request[${O.event_type}] timed out in ${N.timeout}ms`,c.stats)},N.onerror=function(B){fe.handle_error(c,N),B&&pe.err(B),pe.warn(`Request[${O.event_type}] encountered an Error`,N.responseText,c.stats)},N.onreadystatechange=function(){N.readyState==XMLHttpRequest.DONE&&fe.rm(c,N),Math.floor(N.status/100)},N.onload=function(){fe.rm(c,N),c.stats.failures&&c.stats.failures--,pe.ok(`Request[${O.event_type}] :ok`,N.status)},N.open(y,m),N.setRequestHeader("Content-Type","text/plain;charset=UTF-8");try{N.send(JSON.stringify(O))}catch(B){pe.err(B)}}static rpush(c,...m){return m.forEach((y)=>{if(fe.is_high_water(c))return pe.warn("Too many open requests, skipping",c.stats);c.pending.push(y),fe.maybe_spawn_req(c)}),c}static lpop(c){return c.pending.shift()}static rm(c,m){let y=c.open.lastIndexOf(m);return~y&&c.open.splice(y,1),c}constructor(c=[],m=[],y={failures:0,ttl:0}){this.pending=c,this.open=m,this.stats=y}}fe.MAX_OPEN_REQUESTS=3,fe.REQUEST_TIMEOUT_MS=4000,fe.REQUEST_TTL_MS=5000,fe.MAX_FAILURE_COUNT=3;let qi={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},Zt={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},Fe={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},ti={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},Hi={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class Q{static getFirstMatch(c,m){let y=m.match(c);return y&&y.length>0&&y[1]||""}static getSecondMatch(c,m){let y=m.match(c);return y&&y.length>1&&y[2]||""}static matchAndReturnConst(c,m,y){if(c.test(m))return y}static getWindowsVersionName(c){switch(c){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(c){let m=c.split(".").splice(0,2).map((y)=>parseInt(y,10)||0);if(m.push(0),m[0]===10)switch(m[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(c){let m=c.split(".").splice(0,2).map((y)=>parseInt(y,10)||0);if(m.push(0),!(m[0]===1&&m[1]<5))return m[0]===1&&m[1]<6?"Cupcake":m[0]===1&&m[1]>=6?"Donut":m[0]===2&&m[1]<2?"Eclair":m[0]===2&&m[1]===2?"Froyo":m[0]===2&&m[1]>2?"Gingerbread":m[0]===3?"Honeycomb":m[0]===4&&m[1]<1?"Ice Cream Sandwich":m[0]===4&&m[1]<4?"Jelly Bean":m[0]===4&&m[1]>=4?"KitKat":m[0]===5?"Lollipop":m[0]===6?"Marshmallow":m[0]===7?"Nougat":m[0]===8?"Oreo":m[0]===9?"Pie":void 0}static getVersionPrecision(c){return c.split(".").length}static compareVersions(c,m,y=!1){let O=Q.getVersionPrecision(c),N=Q.getVersionPrecision(m),B=Math.max(O,N),F=0,ut=Q.map([c,m],(ct)=>{let It=B-Q.getVersionPrecision(ct),yt=ct+new Array(It+1).join(".0");return Q.map(yt.split("."),(Pt)=>new Array(20-Pt.length).join("0")+Pt).reverse()});for(y&&(F=B-Math.min(O,N)),B-=1;B>=F;){if(ut[0][B]>ut[1][B])return 1;if(ut[0][B]===ut[1][B]){if(B===F)return 0;B-=1}else if(ut[0][B]<ut[1][B])return-1}}static map(c,m){let y=[],O;if(Array.prototype.map)return Array.prototype.map.call(c,m);for(O=0;O<c.length;O+=1)y.push(m(c[O]));return y}static find(c,m){let y,O;if(Array.prototype.find)return Array.prototype.find.call(c,m);for(y=0,O=c.length;y<O;y+=1){let N=c[y];if(m(N,y))return N}}static assign(c,...m){let y=c,O,N;if(Object.assign)return Object.assign(c,...m);for(O=0,N=m.length;O<N;O+=1){let B=m[O];if(typeof B=="object"&&B!==null)Object.keys(B).forEach((F)=>{y[F]=B[F]})}return c}static getBrowserAlias(c){return qi[c]}static getBrowserTypeByAlias(c){return Zt[c]||""}}let De=/version\/(\d+(\.?_?\d+)+)/i,Tr=[{test:[/googlebot/i],describe(c){let m={name:"Googlebot"},y=Q.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/opera/i],describe(c){let m={name:"Opera"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/opr\/|opios/i],describe(c){let m={name:"Opera"},y=Q.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/SamsungBrowser/i],describe(c){let m={name:"Samsung Internet for Android"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/Whale/i],describe(c){let m={name:"NAVER Whale Browser"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/MZBrowser/i],describe(c){let m={name:"MZ Browser"},y=Q.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/focus/i],describe(c){let m={name:"Focus"},y=Q.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/swing/i],describe(c){let m={name:"Swing"},y=Q.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/coast/i],describe(c){let m={name:"Opera Coast"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(c){let m={name:"Opera Touch"},y=Q.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/yabrowser/i],describe(c){let m={name:"Yandex Browser"},y=Q.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/ucbrowser/i],describe(c){let m={name:"UC Browser"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/Maxthon|mxios/i],describe(c){let m={name:"Maxthon"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/epiphany/i],describe(c){let m={name:"Epiphany"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/puffin/i],describe(c){let m={name:"Puffin"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/sleipnir/i],describe(c){let m={name:"Sleipnir"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/k-meleon/i],describe(c){let m={name:"K-Meleon"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/micromessenger/i],describe(c){let m={name:"WeChat"},y=Q.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/qqbrowser/i],describe(c){let m={name:/qqbrowserlite/i.test(c)?"QQ Browser Lite":"QQ Browser"},y=Q.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/msie|trident/i],describe(c){let m={name:"Internet Explorer"},y=Q.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/\sedg\//i],describe(c){let m={name:"Microsoft Edge"},y=Q.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/edg([ea]|ios)/i],describe(c){let m={name:"Microsoft Edge"},y=Q.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/vivaldi/i],describe(c){let m={name:"Vivaldi"},y=Q.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/seamonkey/i],describe(c){let m={name:"SeaMonkey"},y=Q.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/sailfish/i],describe(c){let m={name:"Sailfish"},y=Q.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,c);return y&&(m.version=y),m}},{test:[/silk/i],describe(c){let m={name:"Amazon Silk"},y=Q.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/phantom/i],describe(c){let m={name:"PhantomJS"},y=Q.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/slimerjs/i],describe(c){let m={name:"SlimerJS"},y=Q.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(c){let m={name:"BlackBerry"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/(web|hpw)[o0]s/i],describe(c){let m={name:"WebOS Browser"},y=Q.getFirstMatch(De,c)||Q.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/bada/i],describe(c){let m={name:"Bada"},y=Q.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/tizen/i],describe(c){let m={name:"Tizen"},y=Q.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/qupzilla/i],describe(c){let m={name:"QupZilla"},y=Q.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/firefox|iceweasel|fxios/i],describe(c){let m={name:"Firefox"},y=Q.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/electron/i],describe(c){let m={name:"Electron"},y=Q.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/MiuiBrowser/i],describe(c){let m={name:"Miui"},y=Q.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/chromium/i],describe(c){let m={name:"Chromium"},y=Q.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,c)||Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/chrome|crios|crmo/i],describe(c){let m={name:"Chrome"},y=Q.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/GSA/i],describe(c){let m={name:"Google Search"},y=Q.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test(c){let m=!c.test(/like android/i),y=c.test(/android/i);return m&&y},describe(c){let m={name:"Android Browser"},y=Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/playstation 4/i],describe(c){let m={name:"PlayStation 4"},y=Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/safari|applewebkit/i],describe(c){let m={name:"Safari"},y=Q.getFirstMatch(De,c);return y&&(m.version=y),m}},{test:[/.*/i],describe(c){let m=c.search("\\(")!==-1?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:Q.getFirstMatch(m,c),version:Q.getSecondMatch(m,c)}}}];var Fs=[{test:[/Roku\/DVP/],describe(c){let m=Q.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,c);return{name:ti.Roku,version:m}}},{test:[/windows phone/i],describe(c){let m=Q.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,c);return{name:ti.WindowsPhone,version:m}}},{test:[/windows /i],describe(c){let m=Q.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,c),y=Q.getWindowsVersionName(m);return{name:ti.Windows,version:m,versionName:y}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(c){let m={name:ti.iOS},y=Q.getSecondMatch(/(Version\/)(\d[\d.]+)/,c);return y&&(m.version=y),m}},{test:[/macintosh/i],describe(c){let m=Q.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,c).replace(/[_\s]/g,"."),y=Q.getMacOSVersionName(m),O={name:ti.MacOS,version:m};return y&&(O.versionName=y),O}},{test:[/(ipod|iphone|ipad)/i],describe(c){let m=Q.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,c).replace(/[_\s]/g,".");return{name:ti.iOS,version:m}}},{test(c){let m=!c.test(/like android/i),y=c.test(/android/i);return m&&y},describe(c){let m=Q.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,c),y=Q.getAndroidVersionName(m),O={name:ti.Android,version:m};return y&&(O.versionName=y),O}},{test:[/(web|hpw)[o0]s/i],describe(c){let m=Q.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,c),y={name:ti.WebOS};return m&&m.length&&(y.version=m),y}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(c){let m=Q.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,c)||Q.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,c)||Q.getFirstMatch(/\bbb(\d+)/i,c);return{name:ti.BlackBerry,version:m}}},{test:[/bada/i],describe(c){let m=Q.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,c);return{name:ti.Bada,version:m}}},{test:[/tizen/i],describe(c){let m=Q.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,c);return{name:ti.Tizen,version:m}}},{test:[/linux/i],describe:()=>({name:ti.Linux})},{test:[/CrOS/],describe:()=>({name:ti.ChromeOS})},{test:[/PlayStation 4/],describe(c){let m=Q.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,c);return{name:ti.PlayStation4,version:m}}}],Ar=[{test:[/googlebot/i],describe:()=>({type:"bot",vendor:"Google"})},{test:[/huawei/i],describe(c){let m=Q.getFirstMatch(/(can-l01)/i,c)&&"Nova",y={type:Fe.mobile,vendor:"Huawei"};return m&&(y.model=m),y}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:()=>({type:Fe.tablet,vendor:"Nexus"})},{test:[/ipad/i],describe:()=>({type:Fe.tablet,vendor:"Apple",model:"iPad"})},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:()=>({type:Fe.tablet,vendor:"Apple",model:"iPad"})},{test:[/kftt build/i],describe:()=>({type:Fe.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"})},{test:[/silk/i],describe:()=>({type:Fe.tablet,vendor:"Amazon"})},{test:[/tablet(?! pc)/i],describe:()=>({type:Fe.tablet})},{test(c){let m=c.test(/ipod|iphone/i),y=c.test(/like (ipod|iphone)/i);return m&&!y},describe(c){let m=Q.getFirstMatch(/(ipod|iphone)/i,c);return{type:Fe.mobile,vendor:"Apple",model:m}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:()=>({type:Fe.mobile,vendor:"Nexus"})},{test:[/[^-]mobi/i],describe:()=>({type:Fe.mobile})},{test:(c)=>c.getBrowserName(!0)==="blackberry",describe:()=>({type:Fe.mobile,vendor:"BlackBerry"})},{test:(c)=>c.getBrowserName(!0)==="bada",describe:()=>({type:Fe.mobile})},{test:(c)=>c.getBrowserName()==="windows phone",describe:()=>({type:Fe.mobile,vendor:"Microsoft"})},{test(c){let m=Number(String(c.getOSVersion()).split(".")[0]);return c.getOSName(!0)==="android"&&m>=3},describe:()=>({type:Fe.tablet})},{test:(c)=>c.getOSName(!0)==="android",describe:()=>({type:Fe.mobile})},{test:(c)=>c.getOSName(!0)==="macos",describe:()=>({type:Fe.desktop,vendor:"Apple"})},{test:(c)=>c.getOSName(!0)==="windows",describe:()=>({type:Fe.desktop})},{test:(c)=>c.getOSName(!0)==="linux",describe:()=>({type:Fe.desktop})},{test:(c)=>c.getOSName(!0)==="playstation 4",describe:()=>({type:Fe.tv})},{test:(c)=>c.getOSName(!0)==="roku",describe:()=>({type:Fe.tv})}],kn=[{test:(c)=>c.getBrowserName(!0)==="microsoft edge",describe(c){if(/\sedg\//i.test(c))return{name:Hi.Blink};let m=Q.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,c);return{name:Hi.EdgeHTML,version:m}}},{test:[/trident/i],describe(c){let m={name:Hi.Trident},y=Q.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:(c)=>c.test(/presto/i),describe(c){let m={name:Hi.Presto},y=Q.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test(c){let m=c.test(/gecko/i),y=c.test(/like gecko/i);return m&&!y},describe(c){let m={name:Hi.Gecko},y=Q.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}},{test:[/(apple)?webkit\/537\.36/i],describe:()=>({name:Hi.Blink})},{test:[/(apple)?webkit/i],describe(c){let m={name:Hi.WebKit},y=Q.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,c);return y&&(m.version=y),m}}];class pi{constructor(c,m=!1){if(c==null||c==="")throw new Error("UserAgent parameter can't be empty");this._ua=c,this.parsedResult={},m!==!0&&this.parse()}getUA(){return this._ua}test(c){return c.test(this._ua)}parseBrowser(){this.parsedResult.browser={};let c=Q.find(Tr,(m)=>{if(typeof m.test=="function")return m.test(this);if(m.test instanceof Array)return m.test.some((y)=>this.test(y));throw new Error("Browser's test function is not valid")});return c&&(this.parsedResult.browser=c.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(c){return c?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};let c=Q.find(Fs,(m)=>{if(typeof m.test=="function")return m.test(this);if(m.test instanceof Array)return m.test.some((y)=>this.test(y));throw new Error("Browser's test function is not valid")});return c&&(this.parsedResult.os=c.describe(this.getUA())),this.parsedResult.os}getOSName(c){let{name:m}=this.getOS();return c?String(m).toLowerCase()||"":m||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(c=!1){let{type:m}=this.getPlatform();return c?String(m).toLowerCase()||"":m||""}parsePlatform(){this.parsedResult.platform={};let c=Q.find(Ar,(m)=>{if(typeof m.test=="function")return m.test(this);if(m.test instanceof Array)return m.test.some((y)=>this.test(y));throw new Error("Browser's test function is not valid")});return c&&(this.parsedResult.platform=c.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(c){return c?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};let c=Q.find(kn,(m)=>{if(typeof m.test=="function")return m.test(this);if(m.test instanceof Array)return m.test.some((y)=>this.test(y));throw new Error("Browser's test function is not valid")});return c&&(this.parsedResult.engine=c.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return Q.assign({},this.parsedResult)}satisfies(c){let m={},y=0,O={},N=0;if(Object.keys(c).forEach((B)=>{let F=c[B];typeof F=="string"?(O[B]=F,N+=1):typeof F=="object"&&(m[B]=F,y+=1)}),y>0){let B=Object.keys(m),F=Q.find(B,(ct)=>this.isOS(ct));if(F){let ct=this.satisfies(m[F]);if(ct!==void 0)return ct}let ut=Q.find(B,(ct)=>this.isPlatform(ct));if(ut){let ct=this.satisfies(m[ut]);if(ct!==void 0)return ct}}if(N>0){let B=Object.keys(O),F=Q.find(B,(ut)=>this.isBrowser(ut,!0));if(F!==void 0)return this.compareVersion(O[F])}}isBrowser(c,m=!1){let y=this.getBrowserName().toLowerCase(),O=c.toLowerCase(),N=Q.getBrowserTypeByAlias(O);return m&&N&&(O=N.toLowerCase()),O===y}compareVersion(c){let m=[0],y=c,O=!1,N=this.getBrowserVersion();if(typeof N=="string")return c[0]===">"||c[0]==="<"?(y=c.substr(1),c[1]==="="?(O=!0,y=c.substr(2)):m=[],c[0]===">"?m.push(1):m.push(-1)):c[0]==="="?y=c.substr(1):c[0]==="~"&&(O=!0,y=c.substr(1)),m.indexOf(Q.compareVersions(N,y,O))>-1}isOS(c){return this.getOSName(!0)===String(c).toLowerCase()}isPlatform(c){return this.getPlatformType(!0)===String(c).toLowerCase()}isEngine(c){return this.getEngineName(!0)===String(c).toLowerCase()}is(c,m=!1){return this.isBrowser(c,m)||this.isOS(c)||this.isPlatform(c)}some(c=[]){return c.some((m)=>this.is(m))}}/*!
|
|
10
|
+
* Bowser - a browser detector
|
|
11
|
+
* https://github.com/lancedikson/bowser
|
|
12
|
+
* MIT License | (c) Dustin Diaz 2012-2015
|
|
13
|
+
* MIT License | (c) Denis Demchenko 2015-2019
|
|
14
|
+
*/let _r=class c{static getParser(m,y=!1){if(typeof m!="string")throw new Error("UserAgent should be a string");return new pi(m,y)}static parse(m){return new pi(m).getResult()}static get BROWSER_MAP(){return Zt}static get ENGINE_MAP(){return Hi}static get OS_MAP(){return ti}static get PLATFORMS_MAP(){return Fe}}.parse(window.navigator.userAgent),{platform:Yi,os:li,browser:Rn}=_r,nn=(c)=>c&&c.toLowerCase();var Jr={rnd:Math.random().toString(36).substr(2,32),os:nn(li.name+(li.versionName?" "+li.versionName:"")),device:nn(Yi.type),browser:nn(Rn.name),browser_version:(Rn&&Rn.version?Rn.version:"unknown").split(".").shift(),plugin_version:"3.28.2"};let Xn="https://fp-eu-w1-aai.flowplayer.com/in",Qr="POST",vi=["ad-requested","ad-request-error","ad-request-completed","ad-completed","ad-started","ad-error","ad-skipped"],xi=["event_type","ad_tag_id","media_id","player_id","site_id","sitegroup_id","rnd","os","device","browser","browser_version","plugin_version","player_version"],Dn=["vast_error","reason","request_load_time","ad_type","vast_ad_id"],Ni=at("ads/analytics"),ci=fe.of(),Cn=(...c)=>Object.assign({},...c);class zi{static of(c,m){return new zi(c,m)}static ensure_required_keys(c,m){return c.required_keys.filter((y)=>!(y in m))}static pluck_valid_keys(c,m){return((y,...O)=>Object.keys(y).filter((N)=>~O.indexOf(N)).reduce((N,B)=>Object.assign(N,{[B]:y[B]}),{}))(m,...c.valid_keys)}static mergeMetadata(c,m={}){return c.metadata=zi.pluck_valid_keys(c,Cn(c.metadata,m,{player_version:"3.28.2"})),c}constructor(c,m={}){this.emitter=c,this.metadata=Cn(Jr,m.metadata||{}),this.emitter=c,this.events=m.events||[],this.required_keys=m.required_keys||[],this.optional_keys=m.optional_keys||[],this.valid_keys=this.required_keys.slice(0).concat(this.optional_keys),Ni(this),this.wireup()}wireup(){this.events.forEach((c)=>{this.emitter.on(c,(m)=>{let y=m.detail,O=Cn(this.metadata,{event_type:c},y),N=zi.pluck_valid_keys(this,O),B=zi.ensure_required_keys(this,N);if(Ni(`Event[${c}]`,{payload:N,observation:y}),B.length)return Ni(`Analytics.validate_metadata() failed for
|
|
15
|
+
Event[${c}]
|
|
16
|
+
missing keys: ${B}`,N);fe.rpush(ci,[Xn,Qr,N])})})}destroy(){this.emitter=this.metadata=this.events=this.required_keys=this.optional_keys=this.valid_keys=void 0}}let Ne=at("ads/controller"),Xi={show_all_ads_on_seek:!1,timeout:5000,preload_advance:10};class In extends class c{constructor(m=document.createElement("div"),y=[]){this._bus=m,this._listeners=y}removeAllListeners(){this._listeners.length=0,this._bus=document.createElement("div")}emit(m,y){let O=new CustomEvent(m,{detail:y||{}});this._bus.dispatchEvent(O)}on(m,y){this._listeners.push([m,y]),this._bus.addEventListener(m,y,{passive:!0})}once(m,y){this._bus.addEventListener(m,y,{once:!0})}removeListener(m,y){this._bus.removeEventListener(m,y)}}{constructor(c={}){var m;super(),this.adapter=function(y,O){return y.adapter?new y.adapter(O):new Ge(O)}(c,this),this.opts=Object.assign(Object.assign({},Xi),c),this.analytics=(m=this,zi.of(m,{required_keys:xi,optional_keys:Dn,events:vi})),this._state=Li.of(),this._schedule=void 0,this._lastAd=void 0,this._macros=new de(c.parameters||{}),this.wireup(),this.content_processing_src=!1}reset(){return this.removeAllListeners(),this.wireup(),this.analytics&&this.analytics.wireup(),this._state.reset(),this.adapter.reset(),this}destroy(){this.removeAllListeners(),this.analytics&&this.analytics.destroy(),this.adapter&&this.adapter.destroy(),this.analytics=void 0,this.opts=void 0,this.adapter=void 0,this._state=void 0,this._schedule=void 0,this._lastAd=void 0,this._macros=void 0}stop(){this.adapter&&this.adapter.stop()}onContentNewSrc(){this._state.reset(),this.adapter.destroyManager(),this.adapter.contentComplete()}wireup(){let c=()=>{var y,O;this.adapter.onAdRequestEnd(),(y=this.videoTag)===null||y===void 0||y.setState("ad-paused",!1),(O=this.videoTag)===null||O===void 0||O.setState("ad-playing",!0),this._state.toggleState(ve.PLAYING,!0)};this.on("ad-play-requested",c),this.on("ad-started",c),this.on("ad-resumed",c);let m=(y)=>{var O,N;(y==null?void 0:y.type)!=="ad-request-error"&&this.adapter.onAdRequestEnd(),(O=this.videoTag)===null||O===void 0||O.setState("ad-paused",(y==null?void 0:y.type)==="ad-paused"),(N=this.videoTag)===null||N===void 0||N.setState("ad-playing",!1),this.adPlaying&&this._state.toggleState(ve.PLAYING,!1)};this.on("ad-break-completed",m),this.on("ad-teardown",m),this.on("ad-playback-error",m),this.on("ad-request-error",m),this.on("ad-paused",m),this.on("ad-skipped",m),this.on("ad-completed",m),this.on("ad-break-completed",()=>{requestAnimationFrame(()=>{this._state.toggleState(ve.BREAK_ACTIVE,!1)})}),this.on("ad-adapter-init-failed",()=>{console.error("Adapter init failed"),m(),this._state.toggleState(ve.FATAL_ERROR,!0)}),this.on("reload-ad-requested",async(y)=>{if(Ne("Ads.on(RELOAD_AD_REQUESTED)",y),this._schedule){if(m(),y)return this._schedule.reset(this._schedule.getAds());this._state.hasAny(ve.AD_AVAILABLE)&&(this._schedule.decrement(),this._state.toggleState(ve.AD_AVAILABLE,!1))}})}async initialize(c,m={},y){return Ne("Ads.initialize():",c,m,y),this._state.toggleState(ve.INITIALIZING,!0),Object.assign(this.opts,m),Array.isArray(c)&&this.setSchedule(c),await this.adapter.init(this.opts),this._macros=this._macros.fork(Object.assign({},m.parameters||{},{autoplay:m.autoplay,muted:m.muted})),this.adapter.isReady()&&await this.adapterInitialized(y),this}get videoTag(){return this.adapter.getVideoTag()}get adInfo(){return this.adapter.getAdInfo()}async setVideoTag(c){Ne("Ads.setVideoTag():",c),await this.adapter.setVideoTag(c),this.trigger("ad-videotag-attached",c),this.adapter.isReady()&&await this.adapterInitialized(),c.on("request/ad/pause",()=>this.adapter.pause()),c.on("request/ad/play",()=>this.adapter.resume()),c.on("request/ad/muteunmute",()=>c.toggleMute()),c.on("volumechange",()=>{this.adapter.volume(c.muted?0:c.volume==0?0.1:c.volume)}),c.on("src",()=>c.hasState("ad-playing")||c.hasState("ad-paused")?(this.stop(),this.adapter.isLinearAd()?(this.setIsContentProcessingNewSrc(!0),void this.once("ad-break-completed",()=>{setTimeout(()=>{this.setIsContentProcessingNewSrc(!1),this.onContentNewSrc()},0)})):this.onContentNewSrc()):this.onContentNewSrc())}waitForVideoTag(){return new Promise((c)=>{let m=this.adapter.getVideoTag();if(m)return c(m);this.on("ad-videotag-attached",(y)=>{this.once(ft,()=>c(y))})})}async adapterInitialized(c){Ne("Ads.adapterInitialized()"),this._state.toggleState(ve.INITIALIZING,!1),this._state.toggleState(ve.BREAK_ACTIVE,!!this.hasPreroll()),await this.setCurrentTime(0,c),this.checkIfBreakComplete(),this.adapter.isAdPod()||c&&!this.opts.autoplay||this.trigger("ad-teardown")}async fetchNextAd(c,m=0){var y,O;if(!this._schedule)return;if(!this.adapter.isReady())return;if(m>50)throw this._state.toggleState(ve.FATAL_ERROR,!0),this._state.toggleState(ve.FETCHING_AD,!1),new Error("Ads.fetchNextAd() :max_recursion_depth");let N=((y=this._schedule)===null||y===void 0?void 0:y.getNextAd())||((O=this._schedule)===null||O===void 0?void 0:O.getPostroll());if(!N||this.adapter.canDismissNonLinear()||c===-1)if(this._schedule.waitForLoad(c,N,this.opts.preload_ads))this._state.toggleState(ve.FETCHING_AD,!1);else if(N!==this._schedule.getPostroll()||(this._schedule.setPostrollActive(),c===-1))if(this._schedule.isDrained()||this._schedule.increment(),N){Ne("Ads.fetchNextAd",N),this._state.toggleState(ve.FETCHING_AD,!0);try{return await this.requestAd(N),this._state.toggleState(ve.AD_AVAILABLE,!0),void this._state.toggleState(ve.FETCHING_AD,!1)}catch(B){return Ne("Ads.fetchNextAd(err: %o, ad: %o)",B,N),this.setLastAd(N),N!==this._schedule.getPostroll()?await this.fetchNextAd(c,++m):void this._state.toggleState(ve.FETCHING_AD,!1)}}else this._state.toggleState(ve.FETCHING_AD,!1);else this._state.toggleState(ve.FETCHING_AD,!1)}skipAdsOnSeek(c){if(!this._schedule)return;let m=this._schedule.getNextAd();for(;m&&m.time<c;)this._schedule.increment(),m=this._schedule.getNextAd()}async setCurrentTime(c,m=!1,y=!1){if(!this._schedule)return;if(!this.adapter.isReady())return;if(this._state.hasAny(ve.FETCHING_AD))return;if(this._state.hasAny(ve.PLAYING)&&this.adapter.isLinearAd())return;let O=c===0&&this._schedule.getNextIndex()===0;try{if(y&&!this.opts.show_all_ads_on_seek&&this.skipAdsOnSeek(c),this._state.hasAny(ve.AD_AVAILABLE)||await this.fetchNextAd(c),!this._state.hasAny(ve.AD_AVAILABLE)||!this.shallPlayAd(c)||m)return;await this.playAd(),await this.setCurrentTime(c),this.checkIfBreakComplete()}catch(N){Ne("setCurrentTime: Error(from: setCurrentTime, message: %s)",N.message)}finally{O&&this.trigger("ad-preroll-finished")}}async playAd(){var c;if(!this._state.hasAny(ve.AD_AVAILABLE))return;this._state.toggleState(ve.AD_AVAILABLE,!1),this._state.toggleState(ve.BREAK_ACTIVE,!0);let m=(c=this._schedule)===null||c===void 0?void 0:c.getCurrentAd();try{await this.adapter.playAd()}catch(y){console.error("Ads.playAd: error",y)}finally{m&&this.setLastAd(m)}}checkIfBreakComplete(){if(!this._state.hasAny(ve.BREAK_ACTIVE))return Ne("Ads.checkIfBreakComplete(:bail, ad: %o)",this.getLastAd());Ne("Ads.checkIfBreakComplete(:run, ad: %o)",this.getLastAd()),this._state.toggleState(ve.BREAK_ACTIVE,!1),this.adapter.isAdPod()||this.trigger("ad-break-completed")}resetScheduleCounter(){this._schedule&&this._schedule.resetCounter()}setSchedule(c,m){if(m&&!isNaN(m)&&this._schedule&&this._schedule.updateContentDuration(m),this._schedule&&this._schedule.getNextIndex()>0)return this._schedule.setAds(c);this._schedule=new We(c,{preload_advance:this.opts.preload_advance,content_duration:m?0:m})}toJSON(){return this._schedule?this._schedule.toJSON():[]}trigger(c,m={}){var y;if(!this.adapter.getVideoTag())return;if(!this._state)return;if(c==="ad-break-completed"&&this._state.hasAny(ve.BREAK_ACTIVE)&&!this.adapter.isAdPod()&&!m.force)return Ne("skipping AD_BREAK_COMPLETE reason: %s pod=%s",this._state.toString(),this.adapter.isAdPod());if((O=m)===null||typeof O!="object"||gi(O)!==cn)return this.dispatch(c,m);var O;let N=Object.assign({},this.adapter.getOpts()||{},((y=this._schedule)===null||y===void 0?void 0:y.getCurrentAd())||{},{ad_type:this.ad_type},m);return this.dispatch(c,N)}dispatch(c,m){let y=this.adapter.getVideoTag();if(y){Ne(":dispatch",c,m),this.adapter.isAdPod()&&typeof m=="object"&&"time"in m&&m.ad_type!=="preroll"&&(m.time=this.adapter.getAdBreakTime());try{let O={event:"ads/"+c,detail:{outstream:m.outstream,ad_type:m.ad_type,ad_break_time:m.time,ad_remaining_seconds:m.remaining,ad_muted:m.muted,ad_duration_seconds:m.duration,ad_error_reason:m.reason,ad_vast_error:m.vast_error,ad_vast_error_type:m.vast_error_type,ad_request_load_type:m.request_load_time}};y.dispatchEvent(new CustomEvent("health:record",{detail:O}))}catch(O){Ne(":error",O)}lt(y,c,m),this.emit(c,m)}}get ad_type(){if(!this.videoTag)return;if(!this.adapter.isAdPod())return this._schedule&&this._schedule.getCurrentType();let c=this.adapter.getAdBreakTime();return c===-1?"postroll":this.videoTag.hasState("is-live")||c<1?"preroll":"midroll"}shouldRestartContent(){if(this.getIsContentProcessingNewSrc())return!1;if(this.adapter.isAdPod())return!0;let c=this.getLastAd();return!c||!c.outstream&&c.restart!==!1}async finished(c){if(this._schedule&&(Ne("Ads.finished"),!(this.adapter.isCustomPlaybackEnabled()&&this._state.hasAny(ve.PLAYING)&&this.adapter.isLinearAd()))){Ne("Ads.finished: trying to play postroll");try{if(!this._schedule.getPostroll())return Ne("Ads.finished: no postroll found"),await this.adapter.contentComplete();this._state.hasAny(ve.AD_AVAILABLE)||await this.fetchNextAd(-1),await this.playAd(),this.adapter.contentComplete()}catch(m){Ne("Ads.finished: postroll failed:",m)}finally{this.trigger("ad-postroll-finished"),this.checkIfBreakComplete(),typeof c=="function"&&c()}}}hasPreroll(){return this._schedule&&We.hasPreroll(this._schedule.getAds())}shallPlayAd(c){var m;return(!this.adapter||!this.adapter.isAdPod())&&(!(!this._state||this._state.hasAny(ve.FATAL_ERROR))&&!!((m=this._schedule)===null||m===void 0?void 0:m.shallPlayAd(c)))}setLastAd(c){return this._lastAd=c,this}setIsContentProcessingNewSrc(c){this.content_processing_src=c}getLastAd(){return this._lastAd}getIsContentProcessingNewSrc(){return this.content_processing_src}mergeMacros(c={}){return this._macros=this._macros.fork(Object.assign({},c)),this}get paused(){return this.adapter&&this.adapter.isPaused()}pause(){this.adapter&&this.adapter.pause()}resume(){this.adapter&&this.adapter.resume()}resize(c){this.adapter&&this.adapter.onResize(c)}async requestAd(c,m=0,y=this.opts.timeout){if(!this._state)return;Ne("Ads.requestAd(ad: %o)",{ad:c,timeout:y,idx:m});let O=await async function B(F){if(typeof F=="function")return[await Ai(F)];if(typeof F=="string")return[await Ai(F)];if(Array.isArray(F)){let ut=F;return await Promise.all(ut.map(Ai))}if(typeof F=="object"&&F&&F.adTag)return await B(F.adTag);throw new Error(`
|
|
17
|
+
unhandled ads type ${typeof F}:
|
|
18
|
+
${JSON.stringify(F)}
|
|
19
|
+
can be:
|
|
20
|
+
| Array<string>
|
|
21
|
+
| string
|
|
22
|
+
| function
|
|
23
|
+
| {adTag: Array<string>|string|function}
|
|
24
|
+
`)}(c);if(O[m]===void 0)return setTimeout(()=>this.trigger("ad-teardown"),0),Promise.reject(new Error("Ad failed, no fallbacks left"));if(!O[m])return await this.requestAd(O,m+1,y);this.trigger("ad-requested",c);let N=this._macros.compile(O[m],Oi(this.opts,this.adapter.getDimensions()));try{return void await this.adapter.initAd(N,y)}catch(B){return Ne(`Ads.requestAd(:fallback, idx: ${m}, length: ${O.length}, adTag: ${O[m]})
|
|
25
|
+
Error `,{adTag:O,err:B}),this.requestAd(O,m+1,y)}}resetSchedule(c){this._schedule&&this._schedule.reset(c)}get adPlaying(){return this._state&&this._state.hasAny(ve.PLAYING)}get adBreak(){return this._state&&this._state.hasAny(ve.BREAK_ACTIVE)}get adRequesting(){return this._state.hasAny(ve.FETCHING_AD)}get adLinear(){return this.adBreak&&this.adapter.isLinearAd()}}var Jn=new Blob([new Uint8Array([255,227,24,196,0,0,0,3,72,1,64,0,0,4,132,16,31,227,192,225,76,255,67,12,255,221,27,255,228,97,73,63,255,195,131,69,192,232,223,255,255,207,102,239,255,255,255,101,158,206,70,20,59,255,254,95,70,149,66,4,16,128,0,2,2,32,240,138,255,36,106,183,255,227,24,196,59,11,34,62,80,49,135,40,0,253,29,191,209,200,141,71,7,255,252,152,74,15,130,33,185,6,63,255,252,195,70,203,86,53,15,255,255,247,103,76,121,64,32,47,255,34,227,194,209,138,76,65,77,69,51,46,57,55,170,170,170,170,170,170,170,170,170,170,255,227,24,196,73,13,153,210,100,81,135,56,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170])],{type:"audio/mpeg"}),Pi=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});function dn(c){return Object.assign({muted:!1,timeout:250,inline:!1},c)}function Ue(c,m){var{muted:y,timeout:O,inline:N}=c,B=m(),F=B.element,ut=B.source,ct=void 0,It=void 0,yt=void 0;return F.muted=y,y===!0&&F.setAttribute("muted","muted"),N===!0&&F.setAttribute("playsinline","playsinline"),F.src=ut,new Promise(function(Pt){ct=F.play(),It=setTimeout(function(){yt(!1,new Error("Timeout "+O+" ms has been reached"))},O),yt=function(Ot){var Et=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;F.remove(),F.srcObject=null,clearTimeout(It),Pt({result:Ot,error:Et})},ct!==void 0?ct.then(function(){return yt(!0)}).catch(function(Ot){return yt(!1,Ot)}):yt(!0)})}var On={audio:function(c){return Ue(c=dn(c),function(){return{element:document.createElement("audio"),source:URL.createObjectURL(Jn)}})},video:function(c){return Ue(c=dn(c),function(){return{element:document.createElement("video"),source:URL.createObjectURL(Pi)}})}};let Ji=void 0;async function Lr(c=!0){return Ji||(Ji=await On.video({timeout:500,muted:c}),Ji)}let xn=new Blob([new Uint8Array([0,0,0,28,102,116,121,112,105,115,111,109,0,0,2,0,105,115,111,109,105,115,111,50,109,112,52,49,0,0,0,8,102,114,101,101,0,0,2,239,109,100,97,116,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,33,16,5,32,164,27,255,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,167,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,0,0,2,194,109,111,111,118,0,0,0,108,109,118,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,232,0,0,0,47,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,236,116,114,97,107,0,0,0,92,116,107,104,100,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,101,100,116,115,0,0,0,28,101,108,115,116,0,0,0,0,0,0,0,1,0,0,0,47,0,0,0,0,0,1,0,0,0,0,1,100,109,100,105,97,0,0,0,32,109,100,104,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,172,68,0,0,8,0,85,196,0,0,0,0,0,45,104,100,108,114,0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0,0,0,1,15,109,105,110,102,0,0,0,16,115,109,104,100,0,0,0,0,0,0,0,0,0,0,0,36,100,105,110,102,0,0,0,28,100,114,101,102,0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1,0,0,0,211,115,116,98,108,0,0,0,103,115,116,115,100,0,0,0,0,0,0,0,1,0,0,0,87,109,112,52,97,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,16,0,0,0,0,172,68,0,0,0,0,0,51,101,115,100,115,0,0,0,0,3,128,128,128,34,0,2,0,4,128,128,128,20,64,21,0,0,0,0,1,244,0,0,1,243,249,5,128,128,128,2,18,16,6,128,128,128,1,2,0,0,0,24,115,116,116,115,0,0,0,0,0,0,0,1,0,0,0,2,0,0,4,0,0,0,0,28,115,116,115,99,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,1,0,0,0,28,115,116,115,122,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,115,0,0,1,116,0,0,0,20,115,116,99,111,0,0,0,0,0,0,0,1,0,0,0,44,0,0,0,98,117,100,116,97,0,0,0,90,109,101,116,97,0,0,0,0,0,0,0,33,104,100,108,114,0,0,0,0,0,0,0,0,109,100,105,114,97,112,112,108,0,0,0,0,0,0,0,0,0,0,0,0,45,105,108,115,116,0,0,0,37,169,116,111,111,0,0,0,29,100,97,116,97,0,0,0,1,0,0,0,0,76,97,118,102,53,54,46,52,48,46,49,48,49])],{type:"video/mp4"});var Zr=Object.freeze({__proto__:null,STICKY_CONTROLS:1,NO_FULLSCREEN:2,NO_AD_INDICATOR:4,AD_ATTRIBUTION:8,AD_CHOICES:16,REMAINING_TIME:32,VOLUME_BAR:64});let ts=["progress","duration","remaining"];class Qn extends HTMLElement{static get observedAttributes(){return ts}constructor(c){super(),this.player=c,this.className="fp-ad-ui",this.append(...c.createComponents("flowplayer-ad-controls","flowplayer-ad-countdown")),c.on("ad/set-ui-flags",(m)=>{let{ui_flags:y}=m.detail;if(y=y||0,(8&y)>0){let O=document.createElement("div");O.classList.add("ad-attribution"),O.textContent=this.player.i18n("ads.advertisement","Advertisement"),this.append(O)}})}}let Nn=at("fpads:native:outstream"),Zn={OUTSTREAM:"is-outstream",HIDDEN:"is-outstream-hidden",SHOWING:"is-outstream-visible",DONE:"is-outstream-done"};var Pn,Pe;(function(c){c.OUTSTREAM_VISIBLE="ads-outstream-visible",c.OUTSTREAM_VIEWPORT_UPDATE="ads-outstream-viewport-update",c.OUTSTREAM_TEARDOWN="ads-outstream-teardown",c.OUTSTREAM_ENDSCREEN_READY="ads-outstream-endscreen-ready"})(Pn||(Pn={})),function(c){c[c.None=0]="None",c[c.Booting=1]="Booting",c[c.Ready=2]="Ready",c[c.Disposed=3]="Disposed"}(Pe||(Pe={}));class di{constructor({ads:c,root:m,content:y,ima:O}){this.state=Pe.None,Nn("creating Outstream instance"),this.content=y,this.ads=c,this.root=m,this.ima=O,this.aspectRatio=y.videoHeight/y.videoWidth,this.dimensions=function(F){if(F.clientWidth>0||F.clientHeight)return Ft(F);let ut={height:F.style.height};H(F,"opacity",0),H(F,"display","absolute"),H(F,"display","inline-block"),H(F,"height","auto");let ct=Ft(F);return H(F,"height",ut.height),H(F,"opacity",1),ct}(this.root),this.adUi=new Qn(y),this.initialVolumeState={},m.classList.add(Zn.OUTSTREAM),m.append(this.adUi),this.hide(),this.ads.on("ad-pause-content",(F)=>{var ut;if(this.state==Pe.Disposed)return;let ct=!!((ut=F.detail)===null||ut===void 0?void 0:ut.linear);this.ads.resize(Object.assign(Object.assign({},this.dimensions),{linear:ct}))}),y.on("resize",(F)=>{if(this.state==Pe.Disposed)return;let ut=F.detail;ut&&(this.dimensions={width:ut.contentRect.width,height:ut.contentRect.height},this.ads.resize(this.dimensions))});let N=1,B=!0;y.on("intersectionchange",(F)=>{if(this.state==Pe.Disposed)return;let ut=F.detail;if(ut)switch(this.state){case Pe.Booting:return Nn(":boot skipping intersectionchange");case Pe.None:return this.state=Pe.Booting,this.begin_life_cycle();case Pe.Ready:if(N=ut.ratio,ut.ratio>=0.5&&this.ads.adPlaying)return;ut.ratio>=0.5&&B&&this.ads.resume(),ut.ratio<0.5&&this.ads.pause()}}),this.content.on("ad-paused",()=>B=N<0.5),this.setup(),setTimeout(()=>(this.state=Pe.Booting,this.begin_life_cycle()),0)}hide(){return this}restore_aspect_ratio(){return Nn(`Outstream.restore_aspect_ratio(${this.aspectRatio})`),this.content.setOpts({ratio:this.aspectRatio}),this}show(){this.root.classList.remove(di.CLASS.HIDDEN),this.root.classList.add(di.CLASS.SHOWING),this.content.setState("ad-linear",!0)}async begin_life_cycle(){var c;this.state=Pe.Ready;let{error:m,result:y}=await Lr(!1),{result:O}=await Lr(!0);this.content.emit("ad/set-ui-flags",{ui_flags:(c=this.content.opts.ads)===null||c===void 0?void 0:c.ui}),this.attach_ad_listeners(),this.initialVolumeState={can_autoplay:!(!y&&!O),muted:!y},Nn("Outstream.show() :autoplay >> sound="+y),m&&this.content&&!y&&(this.content.muted=!0,this.content.volume=0),await this.ads.setVideoTag(this.content),await mt({ads:this.ads,content:this.content,adContainer:this.adUi,ima:this.ima,state:{listening:!1},config:this.content.opts}),se({content:this.content,ads:this.ads}),this.state=Pe.Ready}attach_ad_listeners(){this.ads.once("ad-pause-content",()=>{this.show(),this.ads.adPlaying&&this.ads.pause()});let c=()=>{ce.forEach((y)=>this.ads.removeListener(y,c));let m=new CustomEvent(Pn.OUTSTREAM_TEARDOWN);Nn("Outstream(:teardown)",m),this.content.dispatchEvent(m)};ce.forEach((m)=>this.ads.once(m,c)),this.content.once(Pn.OUTSTREAM_TEARDOWN,(m)=>{setTimeout(()=>{if(m.defaultPrevented)return this.handle_endscreen();this.dispose()},0)})}handle_endscreen(){this.reset_ui(),this.ads.reset(),re({config:this.content.opts,ui:this.adUi,ads:this.ads,adContainer:this.adUi,ima:this.ima,content:this.content,root:this.content.root,state:{started:!0,listening:!1},initial:{muted:!0,volume:1}})}empty_src(){this.content.setSrc({type:"video/mp4",src:URL.createObjectURL(xn)})}setup(){this.root.classList.add(di.CLASS.OUTSTREAM),this.root.classList.add(di.CLASS.HIDDEN),this.content.setState("ad-linear",!1),this.empty_src()}reset_ui(){let c=this.root;c.classList.remove(di.CLASS.SHOWING),c.classList.remove(di.CLASS.OUTSTREAM)}dispose(){if(this.state==Pe.Disposed)return;let c=this.root,m=this.content;this.reset_ui(),c.classList.add(di.CLASS.OUTSTREAM),c.classList.add(di.CLASS.DONE),this.video=this.container=this.ads=0,this.state=Pe.Disposed,m.destroy(),c.innerHTML=""}}function Mn(c){return c&&typeof c.time=="number"}function Mi(c){return c&&typeof c.percentage=="number"&&typeof c.time!="number"}di.CLASS=Zn;let tr=at("ads/ima/sdk");var Ki,qe;async function wr(c,m){var y;let O=(y=window===null||window===void 0?void 0:window.google)===null||y===void 0?void 0:y.ima;if(m?O==null?void 0:O.dai:O)return void tr(":noop");let N=m?"https://imasdk.googleapis.com/js/sdkloader/ima3_dai.js":c._storage.getItem("ima/debug")?"https://imasdk.googleapis.com/js/sdkloader/ima3_debug.js":"https://imasdk.googleapis.com/js/sdkloader/ima3.js";try{return await async function(B){return new Promise((F,ut)=>{let ct=document.querySelector(`script[src='${B}']`);if(ct)return Qi(ct,F,ut);ct=document.createElement("script"),ct.setAttribute("state",Ki.LOADING),Qi(ct,F,ut),ct.src=B,document.head.appendChild(ct)})}(N),void tr(":loaded")}catch(B){tr(":error "+B.message,B)}}function Qi(c,m,y){let O=c.getAttribute("state");if(O&&[Ki.ERROR,Ki.LOADED].includes(O))return m(void 0);c.addEventListener("load",()=>{c.setAttribute("state",Ki.LOADED),m(void 0)},{once:!0}),["error","abort"].forEach((N)=>{c.addEventListener(N,()=>{c.setAttribute("state",Ki.ERROR),y("script failed to load")},{once:!0})})}(function(c){c.LOADING="loading",c.LOADED="loaded",c.ERROR="error"})(Ki||(Ki={})),function(c){c.LOADING="loading",c.LOADED="loaded",c.ERROR="error"}(qe||(qe={}));let Vi=at("ads/ima/sdk"),yi="https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js";async function Fi(c){var m;let y=c._storage.getItem("prebid/debug")?yi:"https://cdn.jsdelivr.net/npm/prebid.js@latest/dist/not-for-prod/prebid.js";if((m=window===null||window===void 0?void 0:window.pbjs)===null||m===void 0?void 0:m.version)Vi(":noop");else if(!document.querySelector(`script[src='${y}']`))try{return await async function(O){return new Promise((N,B)=>{let F=document.querySelector(`script[src='${O}']`);F||(F=document.createElement("script")),F.setAttribute("state",qe.LOADING);let ut=F.getAttribute("state");if(ut&&[qe.ERROR,qe.LOADED].includes(ut))return N(void 0);F.addEventListener("load",()=>{F.setAttribute("state",qe.LOADED),N(void 0)},{once:!0}),["error","abort"].forEach((ct)=>{F.addEventListener(ct,()=>{F.setAttribute("state",qe.ERROR),B("script failed to load")},{once:!0})}),F.src=O,document.head.appendChild(F)})}(y),void Vi(":loaded")}catch(O){console.warn(":error / failed to load prebid.js / "+O.message,O)}}let me=window.pbjs=window.pbjs||{};me.que=me.que||[];class ei{constructor(c,m){this.player=c,this.config=m,this.player=c,this.bestOffer="",me.que.push(()=>{var y,O;let N=this.createAdUnit();me.addAdUnits(N);let B=((O=(y=m.ads)===null||y===void 0?void 0:y.prebid)===null||O===void 0?void 0:O.pbjs)||{};me.setConfig(Object.assign({enableSendAllBids:!0},B)),c.emit("ad/pbjs",{pbjs:me}),me.requestBids({bidsBackHandler:(F)=>{var ut,ct,It,yt,Pt;let Ot=(ut=F[this.prebidCode()])===null||ut===void 0?void 0:ut.bids;if(!Ot)return;if(Ot.length==0)return;let Et=Ot[0];if(Et&&Et.vastUrl)return this.bestOffer=Et.vastUrl;let Tt=me.adServers.dfp.buildVideoUrl({adUnit:N,params:{iu:(It=(ct=m.ads)===null||ct===void 0?void 0:ct.prebid)===null||It===void 0?void 0:It.iu,cust_params:(Pt=(yt=m.ads)===null||yt===void 0?void 0:yt.prebid)===null||Pt===void 0?void 0:Pt.custom_params,output:"vast"}});this.bestOffer=Tt}})})}prebidCode(){var c,m;return((m=(c=this.config.ads)===null||c===void 0?void 0:c.prebid)===null||m===void 0?void 0:m.code)||this.player.root.id}videoInfo(){var c,m;return((m=(c=this.config.ads)===null||c===void 0?void 0:c.prebid)===null||m===void 0?void 0:m.video)||{context:"instream",playerSize:[[this.player.videoWidth||640,this.player.videoHeight||480]]}}createAdUnit(){var c,m;return{code:this.prebidCode(),mediaTypes:{video:this.videoInfo()},bids:(m=(c=this.config.ads)===null||c===void 0?void 0:c.prebid)===null||m===void 0?void 0:m.bidders}}vastGenerator(){return async()=>this.bestOffer}}function Bi(c,m){var y,O;let N=(y=m.ads)===null||y===void 0?void 0:y.prebid;if(!N)return;if(((O=c.prebidController)===null||O===void 0?void 0:O.config)===m)return;c.prebidController||(c.prebidController=new ei(c,m),Fi(c));let B=c.prebidController;if(B){let F=N.breaks.map((ut)=>({adTag:B.vastGenerator(),time:ut}));c.setOpts({ima:{ads:F}})}}let kr=at("ads/index");async function er(c,m,y){var O;let N;if(y.on("config",()=>{var It,yt,Pt;N===void 0&&c.autoplay&&!y.currentSrc&&(Pt=c.autoplay,N=Pt===!0?C.ON:Pt===!1?C.OFF:Pt,c.autoplay=0),((It=c.ads)===null||It===void 0?void 0:It.prebid)&&Bi(y,c),Array.isArray((yt=c==null?void 0:c.ima)===null||yt===void 0?void 0:yt.ads)&&Qe(y)&&Object.assign(c,{hls:{native:!0}}),y.ads&&ct()}),y.once("loadstart",()=>{setTimeout(()=>{var It;if(!Array.isArray((It=c==null?void 0:c.ima)===null||It===void 0?void 0:It.ads)&&N!==void 0){if(c.autoplay=N,y.setState("is-autoplay",!0),!y.hasState(Mt))return y.once("viewenter",()=>y.togglePlay(!0));y.togglePlay(!0)}},0)}),await wr(y),!("google"in window))return console.warn("google.ima unavailable");let B=!1,F=y.ads=new In,ut=F.analytics;function ct(){let It=c.ima;if(!It||!Array.isArray(It.ads))return;let yt=c.duration||y.duration;if(It.ads=function(Pt,Ot){return Array.isArray(Pt)?Pt.filter((Et)=>Mn(Et)||Mi(Et)).reduce((Et,Tt)=>{if(Mn(Tt))return Et.push(Tt),Et;if(Tt.lazy)return Et.push(Tt),Et;if(Mi(Tt)){let ie=Object.assign({},Tt),_e=Tt.percentage?Tt.percentage*Ot:0;return isNaN(_e)||(ie.time=_e<0||_e===Ot?-1:_e),Et.push(ie),Et}return Et},[]):(console.warn("AdSchedule was not an Array"),[])}(It.ads,yt),F.setSchedule(It.ads,yt),c.metadata&&zi.mergeMetadata(ut,c.metadata),c.metadata&&F.mergeMacros(c.metadata),c.metadata&&It.parameters&&(It.parameters=Object.assign(Object.assign({},It.parameters),c.metadata)),zi.mergeMetadata(ut,{muted:c.muted||!1,autoplay:c.autoplay||!1}),!B){if(B=!0,c.lang&&!It.Locale&&(It.Locale=c.lang),We.isOutstream(It.ads))return kr("is outstream, returning"),new di({root:m,content:y,ads:F,ima:It});dt({config:Object.assign(Object.assign({},c),{autoplay:N}),root:m,content:y,ads:F,ima:It})}}F.resize(Ft(m)),F.on("ad-postroll-finished",()=>{F.adapter.isCustomPlaybackEnabled()&&F.once("ad-break-completed",()=>{y.src=y.original_src,y.once("canplay",()=>{y.togglePlay(!1)}),y.webkitExitFullscreen()})}),y.on("reap",function(){F&&F.destroy()}),((O=c.ads)===null||O===void 0?void 0:O.prebid)&&Bi(y,c),ct()}class Rr extends HTMLElement{constructor(c){super(),this.player=c,this.classList.add("fp-ad-controls"),this.append(this.adRemainingTime(),gt(this.player,"flowplayer-ad-indicator"),this.playbackButtons(),this.volumeBtn(),gt(this.player,"flowplayer-volume-bar"),...this.fullscreenIcons(),this.adChoices()),c.on("ad/set-ui-flags",this.applyStyleFlags.bind(this))}fullscreenIcons(){return this.player.createComponents("flowplayer-fullscreen-enter-icon","flowplayer-fullscreen-exit-icon").map((c)=>(c.onclick=()=>this.player.toggleFullScreen(),c))}volumeBtn(){let c=gt(this.player,"flowplayer-volume-icon");return c.onclick=()=>this.player.emit("request/ad/muteunmute"),c}playbackButtons(){let c=document.createElement("div");c.classList.add("ad-playback-controls");let m=gt(this.player,"flowplayer-small-play-icon"),y=gt(this.player,"flowplayer-small-pause-icon");return m.addEventListener("click",()=>{this.player.emit("request/ad/play"),setTimeout(function(){y.focus&&y.focus()},100)}),y.addEventListener("click",()=>{this.player.emit("request/ad/pause"),setTimeout(function(){m.focus&&m.focus()},100)}),c.append(m,y),c}adChoices(){let c=document.createElement("div");return c.classList.add("fp-ad-choices"),c.textContent=this.player.i18n("ads.adchoices","AdChoices"),c.addEventListener("click",(m)=>{m.preventDefault(),this.player.togglePlay(!1),window.open("https://adssettings.google.com","_blank")}),c}adRemainingTime(){let c=document.createElement("div");return c.classList.add("fp-ad-remaining","fp-color-text"),this.prepend(c),this.player.on("ad-progress",(m)=>{let y=m.detail.remaining;c.textContent=function(O){if(isNaN(O)||O>=Number.MAX_SAFE_INTEGER)return"";let N=O<0?"-":"";O=Math.round(Math.abs(O));let B=Math.floor(O/3600),F=Math.floor(O/60);return O-=60*F,B>=1?(F-=60*B,N+B+":"+W(F)+":"+W(O)):N+W(F)+":"+W(O)}(parseFloat(y+""))}),c}applyStyleFlags(c){var m;let y=(m=c.detail.ui_flags)!==null&&m!==void 0?m:0;this.classList.toggle("is-ad-controls-sticky",(1&y)>0),this.classList.toggle("no-indicator",(4&y)>0),this.classList.toggle("is-ad-choices",(16&y)>0),this.classList.toggle("no-volume-bar",(64&y)==0),this.classList.toggle("is-ad-remaining",(32&y)>0),this.classList.toggle("no-fullscreen",(2&y)>0)}}class ir extends HTMLElement{static get observedAttributes(){return["remaining"]}constructor(c){super(),this.player=c,this.className="fp-ad-countdown",c.on("ad-progress",(m)=>{let{duration:y,remaining:O}=m.detail;this.setAttribute("duration",y+""),this.setAttribute("remaining",O+"")}),c.on("ad-started",(m)=>{m.detail.linear&&(this.style.setProperty("--ad-percent-previous","0"),this.style.setProperty("--ad-percent-complete","0"))}),this.addEventListener("animationend",()=>{let m=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",m)})}attributeChangedCallback(c,m,y){switch(c){case"remaining":return this.onRemaining(y)}}onRemaining(c){let m=parseFloat(this.getAttribute("duration")||"0");c||(c=m+"");let y=parseFloat(c),O=this.style.getPropertyValue("--ad-percent-complete")||"0";this.style.setProperty("--ad-percent-previous",O),this.classList.remove("go");let N=((m-y)/m*100).toFixed(3);requestAnimationFrame(()=>{this.style.setProperty("--ad-percent-complete",N),this.classList.add("go")})}}class Dr extends HTMLElement{static get observedAttributes(){return["position","totals"]}constructor(c){super(),this.player=c,this.render(),c.on("ad-started",(m)=>{let{position:y,totals:O}=m.detail.ad;this.setAttribute("position",y+""),this.setAttribute("totals",O+"")})}attributeChangedCallback(c,m){switch(c){case"position":case"totals":return this.updateText()}}updateText(){if(!this.element)return;let c=parseFloat(this.getAttribute("position")||"0"),m=parseFloat(this.getAttribute("totals")||"0");this.element.textContent=`${this.player.i18n("ads.indicator","ADS")} ${c} / ${m}`}render(){this.element=document.createElement("div"),this.element.classList.add("ad-indicator","fp-color-text"),this.element.textContent=this.player.i18n("ads.indicator","ADS"),this.append(this.element)}}var Ui,nr=Object.freeze({__proto__:null,SINGlE_INLINE_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_SKIPPABLE_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_preroll_skippable&sz=640x480&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirectlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_ERROR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_REDIRECT_BROKEN:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dredirecterror&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&nofb=1&correlator=",SINGLE_VPAID_20_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dlinearvpaid2js&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_VPAID_20_NON_LINEAR:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/single_ad_samples&sz=640x480&cust_params=sample_ct%3Dnonlinearvpaid2js&ciu_szs=728x90%2C300x250&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",SINGLE_NON_LINEAR_INLINE:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/nonlinear_ad_samples&sz=480x70&cust_params=sample_ct%3Dnonlinear&ciu_szs=300x250%2C728x90&gdfp_req=1&output=vast&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_SESSION_AD_RULE_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sar%3Da0f2&ciu_szs=300x250&ad_rule=1&gdfp_req=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonly&ciu_szs=300x250%2C728x90&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_PREROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpreonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonly&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator=",VMAP_POSTROLL_BUMPER:"https://pubads.g.doubleclick.net/gampad/ads?iu=/21775744923/external/vmap_ad_samples&sz=640x480&cust_params=sample_ar%3Dpostonlybumper&ciu_szs=300x250&gdfp_req=1&ad_rule=1&output=vmap&unviewed_position_start=1&env=vp&impl=s&correlator="});let{samsung_tv:rr}=A(),Fn=((Ui=class c{constructor(m){this.umd=m,Rt(m,Jt,Qn),Rt(m,"flowplayer-ad-controls",Rr),Rt(m,"flowplayer-ad-countdown",ir),Rt(m,"flowplayer-ad-indicator",Dr)}init(m,y,O){if(ne.from_token(m.token||"").is_granted(ne.permissions.ADS)&&!rr)return er(m,y,O)}}).pluginName="ads",Ui.events=Ct,Ui.ui=Zr,Ui.tags=nr,Ui);return function(c,m){if(typeof io=="object"&&typeof no!="undefined")return m;if(document.currentScript===null)return m;"flowplayer"in c||(c.flowplayer={extensions:[]});let y=c.flowplayer;return typeof y=="function"?(y(m),m):(Array.isArray(y.extensions)||(y.extensions=[]),~y.extensions.indexOf(m)||y.extensions.push(m),m)}(window,Fn)})});var Wc=gn((ro,so)=>{(function(o,p){typeof ro=="object"&&typeof so!="undefined"?so.exports=p():typeof define=="function"&&define.amd?define(p):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.asel=p())})(ro,function(){var b=Object.freeze({__proto__:null,SET:"audio:set",SWITCH:"audio:update",TRACKS:"audio:tracks"});function k(C,W,G){let J=function(st){return Array.isArray(st)?st.slice(0):st.split(".")}(W);for(;J.length;){if(C==null)return G;let st=J.shift();if(typeof st!="string")return G;C=C[st]}return C==null?G:C}let L=navigator.languages||[navigator.language];function P(C,W){C.emit("audio:set",W),W.autoselect&&C._storage.setItem("@flowplayer/audio/track",W.lang)}function U(C){return C.toLowerCase()}function z(C,W,G){W=W.slice(0);let J={},st=C.getItem("@flowplayer/audio/track"),pt=function(){try{return L.reduce((gt,Rt)=>~Rt.indexOf("-")?gt.concat(Rt,Rt.split("-")[0]):gt.concat(Rt),[])}catch(gt){return[]}}().map(U),at=-1;if(typeof G=="number")return G;for(typeof G=="string"&&(G=G.toLowerCase(),~pt.indexOf(G)&&pt.splice(pt.indexOf(G),1),pt.unshift(U(G))),Array.isArray(G)&&(pt=G.map(U));W.length;){++at;let gt=W.shift();if(gt==null?void 0:gt.autoselect){if(st==gt.lang)return console.debug("restoring lang from previous session: ",st),at;if(gt.default&&(J.fallback=[at,gt]),gt.lang&&~pt.indexOf(gt.lang.toLowerCase())){let Rt=pt.indexOf(gt.lang);if(Rt<k(J,"by_lang.2",1/0)&&(J.by_lang=[at,gt,Rt]),Rt===0)break}}}return k(J,"by_lang.0",k(J,"fallback.0",void 0))}let j=(C,W)=>new(((G,J)=>{let st=G.get(J);if(!st)throw new Error(`no flowplayer component with the name ${J} exists`);let pt=window.customElements.get(J);if(!pt)throw new Error(`no default flowplayer component with the name ${J} exists`);let at=window.customElements.get(st);return typeof at!="function"?pt:at})(C._customElements,W))(C);class Nt extends HTMLElement{constructor(C){super(),this.player=C}}let ne="fp-on",A="fp-invis";class Ft extends Nt{constructor(C){super(C),this.player=C,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=ft(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(W)=>{if(W.defaultPrevented)return;W.preventDefault();let G=this.menuContainer.open;G||(H(),document.active_menu=this.menuContainer),this.menuContainer.open=!G,C.root.classList.toggle("has-menu-opened",!G),this.summaryEle.setAttribute("aria-expanded",G?"false":"true")}),this.addEventListener("focusin",(W)=>{let G=W.target;G instanceof HTMLLIElement&&G.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(W)=>{let G=W.target;G instanceof HTMLLIElement&&G.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(C){if(this.className=C.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=C.id||ft()),this.summaryEle.setAttribute("aria-label",C.menuTitle||"Menu"),C.summaryTitle&&(this.summaryEle.textContent=C.summaryTitle),C.summaryIcon){let W=j(this.player,C.summaryIcon);W.setAttribute("tabindex",""),this.summaryEle.append(W)}C.menuTitle&&(this.menuTitle.textContent=C.menuTitle),this.menu.classList.toggle("fp-icons",!!C.icons),this.addEventListener(C.options_event,(W)=>{this.render(W.data)}),C.item_selected_event&&this.addEventListener(C.item_selected_event,(W)=>{W.data!==void 0&&this.select_item(W.data.selected_index)})}render(C){this.olEle&&(this.olEle.innerHTML="",C&&C.forEach(this.menuOption,this),this.toggle_visibility(!(C==null?void 0:C.length)))}menuOption(C,W){let G=document.createElement("li");G.setAttribute("role","menuitem"),G.setAttribute("aria-selected","false"),G.setAttribute("tabindex","0"),C.icon&&G.append(C.icon);let J=document.createElement("span");J.textContent=C.text,G.append(J),G.addEventListener("click",()=>{this.select_item(W),typeof C.onclick=="function"&&C.onclick()}),this.olEle.appendChild(G),C.selected&&this.select_item(W)}select_item(C){this.options.forEach((W,G)=>{W.classList.toggle(ne,G===C)})}unselect_item(){this.options.forEach((C)=>{C.classList.remove(ne)})}toggle_visibility(C){this.classList.toggle(A,C),this.menu.style.setProperty("display",C?"none":"flex")}}function H(){Array.from(document.querySelectorAll(".fp-engine")).forEach((C)=>{var W;let G=C.root.querySelector("details[open].fp-menu-container");G&&(G.open=!1,(W=G.querySelector("summary"))===null||W===void 0||W.removeAttribute("aria-expanded"),C.root.classList.toggle("has-menu-opened",!1))})}function ft(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function Ct(C,W,G){let J=function(st,pt){let at=new CustomEvent(st,{detail:pt,cancelable:!0});return pt&&Object.defineProperty(at,"data",{get:()=>pt}),at}(W,G);return C.dispatchEvent(J),C}document.addEventListener("click",function(C){this.active_menu&&!C.composedPath().includes(this.active_menu)&&(H(),this.active_menu=void 0)}),function(){let C=!1;try{let W=Object.defineProperty({},"passive",{get:function(){C=!0}});window.addEventListener("testPassive",null,W),window.removeEventListener("testPassive",null,W)}catch(W){}}();var Mt;let lt=((Mt=class C{constructor(W){((G,J,st)=>{window.customElements.get(J)||window.customElements.define(J,st),G.customElements.get(J)||G.customElements.set(J,J)})(W,"flowplayer-audio-menu",Ft)}init(W,G,J){if(W.asel===!1)return;let st=[],pt=j(J,"flowplayer-audio-menu");pt instanceof Ft&&pt.setMenuAttrs({summaryTitle:J.i18n("audio.button_txt"),menuTitle:J.i18n("audio.menu_title"),class:"fp-asel",options_event:Mt.events.TRACKS,item_selected_event:Mt.events.SWITCH});let at=function(gt){let Rt={tracks:[],events:b};return Object.assign(Rt,{set:function(Jt){if(!(typeof Jt!="number"||Jt<0||Jt>Rt.tracks.length-1))return gt.emit("audio:set",Rt.tracks[Jt]),Rt},get:function(Jt){if(typeof Jt=="number")return Rt.tracks[Jt]}}),Rt}(J);J.asel=at,J.on("mount",function(){var gt;(gt=function(Rt,Jt){let xt=Rt._customElements.get(Jt);return xt&&Rt.root.querySelector(xt)||void 0}(J,J.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||gt===void 0||gt.append(pt)}),J.on("src",()=>{at.tracks=[],at.active_track=void 0,Ct(pt,Mt.events.TRACKS,[])}),J.on("audio:tracks",function(gt){if(!Array.isArray(gt.data)||gt.data.length===st.length&>.data.every((xt,ce)=>xt===st[ce]))return;st=gt.data,at.tracks=st.slice();let Rt=k(W,"asel.sort");typeof Rt=="function"&&at.tracks.sort(Rt),Ct(pt,Mt.events.TRACKS,Array.from({length:at.tracks.length}).map((xt,ce)=>{let dt=at.tracks[ce];return{text:dt.name||dt.label||dt.lang,onclick:P.bind(0,J,dt)}})),at.active_track=at.tracks.find((xt)=>xt.enabled),at.active_track&&Ct(pt,Mt.events.SWITCH,{selected_index:at.tracks.indexOf(at.active_track)});let Jt=z(J._storage,at.tracks,k(W,"asel.default_lang",!1));return pt instanceof Ft&&pt.toggle_visibility(gt.data.length<2),Jt!==void 0?at.set(Jt):void 0}),J.on("audio:update",function(gt){var Rt;(Rt=J.asel)===null||Rt===void 0||Rt.tracks.find((Jt,xt)=>{var ce,dt;Jt!==gt.detail&&Jt.id!==((dt=(ce=gt.detail)===null||ce===void 0?void 0:ce.id)!==null&&dt!==void 0?dt:-1)||(J.asel.active_track=Jt,Ct(pt,Mt.events.SWITCH,{selected_index:xt}))})}),J.audioTracks&&(J.audioTracks.addEventListener("addtrack",function(){J.hls||J.emit("audio:tracks",Array.from(J.audioTracks))}),J.on("audio:set",function(gt){if(J.hls)return;let Rt=gt.detail;at.active_track=Rt,Rt&&Array.from(J.audioTracks).forEach((Jt)=>{Jt.enabled=Rt.id===Jt.id,Jt.enabled&&Ct(pt,Mt.events.SWITCH,{selected_index:at.tracks.indexOf(Rt)})})}))}}).pluginName="asel",Mt.events=b,Mt);return function(C,W){if(typeof ro=="object"&&typeof so!="undefined")return W;if(document.currentScript===null)return W;"flowplayer"in C||(C.flowplayer={extensions:[]});let G=C.flowplayer;return typeof G=="function"?(G(W),W):(Array.isArray(G.extensions)||(G.extensions=[]),~G.extensions.indexOf(W)||G.extensions.push(W),W)}(window,lt)})});var jc=gn((ao,oo)=>{(function(o,p){typeof ao=="object"&&typeof oo!="undefined"?oo.exports=p():typeof define=="function"&&define.amd?define(p):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.consent=p())})(ao,function(){class o{constructor(P,U){this.implementation=P,U&&U.keys().forEach((z)=>{typeof U.implementation[z]=="string"&&this.implementation.setItem(z,U.implementation[z])})}keys(){var P;let U=[];for(var z=0;z<this.implementation.length;z++)((P=this.implementation.key(z))===null||P===void 0?void 0:P.startsWith("flowplayer/"))&&U.push(this.implementation.key(z));return U}removeItem(P){try{this.implementation.removeItem("flowplayer/"+P)}catch(U){}}getItem(P){try{return this.implementation.getItem("flowplayer/"+P)}catch(U){return null}}setItem(P,U){try{this.implementation.setItem("flowplayer/"+P,U)}catch(z){}}clear(){try{this.keys().forEach((P)=>this.implementation.removeItem(P))}catch(P){}}get length(){try{return this.keys().length}catch(P){return 0}}key(P){try{return this.implementation.key(P)}catch(U){return null}}}var p,b,k;(function(P){P[P.ALL=1]="ALL",P[P.NONE=2]="NONE"})(p||(p={})),function(P){P[P.ALL=8]="ALL",P[P.NONE=16]="NONE"}(b||(b={}));let L=((k=class P{constructor(U,z){let j=z._storage.getItem("consent"),Nt=this.current_value=j&&!isNaN(Number(j))?Number(z._storage.getItem("consent")):p.NONE|b.NONE;this.player=z,this.adapt(Object.assign({consent:Nt},z.opts))}init(U,z,j){this.adapt(U),j.on("config",(ne)=>{this.adapt(ne.detail)});let Nt=(ne)=>{j.setOpts({consent:ne.detail})};document.addEventListener("flowplayer/consent",Nt),j.on("reap",()=>document.removeEventListener("flowplayer/consent",Nt))}adapt(U){let z=U.consent===void 0?this.current_value:U.consent;b.ALL&z?this.setStorage(b.ALL):b.NONE&z&&this.setStorage(b.NONE),p.ALL&z?this.setTracking(p.ALL):p.NONE&z&&this.setTracking(p.NONE),this.player._storage.setItem("consent",z.toString())}setStorage(U){try{let z=this.player._storage;switch(this.player.setState("consent-no-storage",U===b.NONE),U){case b.ALL:this.player._storage=new o(localStorage,this.player._storage);break;case b.NONE:this.player._storage=new o(sessionStorage,z),z.clear()}}catch(z){console.debug(z)}}setTracking(U){var z,j;switch(this.player.setState("consent-no-tracking",U===p.NONE),U){case p.ALL:(z=this.player.health)===null||z===void 0||z.toggle(!0);break;case p.NONE:(j=this.player.health)===null||j===void 0||j.toggle(!1)}}}).pluginName="consent",k.tracking=p,k.storage=b,k);return function(P,U){if(typeof ao=="object"&&typeof oo!="undefined")return U;if(document.currentScript===null)return U;"flowplayer"in P||(P.flowplayer={extensions:[]});let z=P.flowplayer;return typeof z=="function"?(z(U),U):(Array.isArray(z.extensions)||(z.extensions=[]),~z.extensions.indexOf(U)||z.extensions.push(U),U)}(window,L)})});var qc=gn((lo,co)=>{(function(o,p){typeof lo=="object"&&typeof co!="undefined"?co.exports=p():typeof define=="function"&&define.amd?define(p):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.hls=p())})(lo,function(){function o(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var p={exports:{}};(function(t,e){var i,n,r,s,a;i=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,n=/^(?=([^\/?#]*))\1([^]*)$/,r=/(?:\/|^)\.(?=\/)/g,s=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,a={buildAbsoluteURL:function(l,d,u){if(u=u||{},l=l.trim(),!(d=d.trim())){if(!u.alwaysNormalize)return l;var f=a.parseURL(l);if(!f)throw new Error("Error trying to parse base URL.");return f.path=a.normalizePath(f.path),a.buildURLFromParts(f)}var E=a.parseURL(d);if(!E)throw new Error("Error trying to parse relative URL.");if(E.scheme)return u.alwaysNormalize?(E.path=a.normalizePath(E.path),a.buildURLFromParts(E)):d;var S=a.parseURL(l);if(!S)throw new Error("Error trying to parse base URL.");if(!S.netLoc&&S.path&&S.path[0]!=="/"){var T=n.exec(S.path);S.netLoc=T[1],S.path=T[2]}S.netLoc&&!S.path&&(S.path="/");var _={scheme:S.scheme,netLoc:E.netLoc,path:null,params:E.params,query:E.query,fragment:E.fragment};if(!E.netLoc&&(_.netLoc=S.netLoc,E.path[0]!=="/"))if(E.path){var D=S.path,w=D.substring(0,D.lastIndexOf("/")+1)+E.path;_.path=a.normalizePath(w)}else _.path=S.path,E.params||(_.params=S.params,E.query||(_.query=S.query));return _.path===null&&(_.path=u.alwaysNormalize?a.normalizePath(E.path):E.path),a.buildURLFromParts(_)},parseURL:function(l){var d=i.exec(l);return d?{scheme:d[1]||"",netLoc:d[2]||"",path:d[3]||"",params:d[4]||"",query:d[5]||"",fragment:d[6]||""}:null},normalizePath:function(l){for(l=l.split("").reverse().join("").replace(r,"");l.length!==(l=l.replace(s,"")).length;);return l.split("").reverse().join("")},buildURLFromParts:function(l){return l.scheme+l.netLoc+l.path+l.params+l.query+l.fragment}},t.exports=a})(p);var b=p.exports;function k(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),i.push.apply(i,n)}return i}function L(t){for(var e=1;e<arguments.length;e++){var i=arguments[e]!=null?arguments[e]:{};e%2?k(Object(i),!0).forEach(function(n){U(t,n,i[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(i)):k(Object(i)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(i,n))})}return t}function P(t){var e=function(i,n){if(typeof i!="object"||!i)return i;var r=i[Symbol.toPrimitive];if(r!==void 0){var s=r.call(i,n||"default");if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(i)}(t,"string");return typeof e=="symbol"?e:String(e)}function U(t,e,i){return(e=P(e))in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function z(){return(z=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var i=arguments[e];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(t[n]=i[n])}return t}).apply(this,arguments)}let j=Number.isFinite||function(t){return typeof t=="number"&&isFinite(t)},Nt=Number.isSafeInteger||function(t){return typeof t=="number"&&Math.abs(t)<=ne},ne=Number.MAX_SAFE_INTEGER||9007199254740991,A=function(t){return t.MEDIA_ATTACHING="hlsMediaAttaching",t.MEDIA_ATTACHED="hlsMediaAttached",t.MEDIA_DETACHING="hlsMediaDetaching",t.MEDIA_DETACHED="hlsMediaDetached",t.BUFFER_RESET="hlsBufferReset",t.BUFFER_CODECS="hlsBufferCodecs",t.BUFFER_CREATED="hlsBufferCreated",t.BUFFER_APPENDING="hlsBufferAppending",t.BUFFER_APPENDED="hlsBufferAppended",t.BUFFER_EOS="hlsBufferEos",t.BUFFER_FLUSHING="hlsBufferFlushing",t.BUFFER_FLUSHED="hlsBufferFlushed",t.MANIFEST_LOADING="hlsManifestLoading",t.MANIFEST_LOADED="hlsManifestLoaded",t.MANIFEST_PARSED="hlsManifestParsed",t.LEVEL_SWITCHING="hlsLevelSwitching",t.LEVEL_SWITCHED="hlsLevelSwitched",t.LEVEL_LOADING="hlsLevelLoading",t.LEVEL_LOADED="hlsLevelLoaded",t.LEVEL_UPDATED="hlsLevelUpdated",t.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",t.LEVELS_UPDATED="hlsLevelsUpdated",t.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",t.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",t.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",t.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",t.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",t.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",t.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",t.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",t.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",t.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",t.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",t.CUES_PARSED="hlsCuesParsed",t.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",t.INIT_PTS_FOUND="hlsInitPtsFound",t.FRAG_LOADING="hlsFragLoading",t.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",t.FRAG_LOADED="hlsFragLoaded",t.FRAG_DECRYPTED="hlsFragDecrypted",t.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",t.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",t.FRAG_PARSING_METADATA="hlsFragParsingMetadata",t.FRAG_PARSED="hlsFragParsed",t.FRAG_BUFFERED="hlsFragBuffered",t.FRAG_CHANGED="hlsFragChanged",t.FPS_DROP="hlsFpsDrop",t.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",t.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",t.ERROR="hlsError",t.DESTROYING="hlsDestroying",t.KEY_LOADING="hlsKeyLoading",t.KEY_LOADED="hlsKeyLoaded",t.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",t.BACK_BUFFER_REACHED="hlsBackBufferReached",t.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",t}({}),Ft=function(t){return t.NETWORK_ERROR="networkError",t.MEDIA_ERROR="mediaError",t.KEY_SYSTEM_ERROR="keySystemError",t.MUX_ERROR="muxError",t.OTHER_ERROR="otherError",t}({}),H=function(t){return t.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",t.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",t.KEY_SYSTEM_NO_SESSION="keySystemNoSession",t.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",t.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",t.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",t.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",t.MANIFEST_LOAD_ERROR="manifestLoadError",t.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",t.MANIFEST_PARSING_ERROR="manifestParsingError",t.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",t.LEVEL_EMPTY_ERROR="levelEmptyError",t.LEVEL_LOAD_ERROR="levelLoadError",t.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",t.LEVEL_PARSING_ERROR="levelParsingError",t.LEVEL_SWITCH_ERROR="levelSwitchError",t.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",t.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",t.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",t.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",t.FRAG_LOAD_ERROR="fragLoadError",t.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",t.FRAG_DECRYPT_ERROR="fragDecryptError",t.FRAG_PARSING_ERROR="fragParsingError",t.FRAG_GAP="fragGap",t.REMUX_ALLOC_ERROR="remuxAllocError",t.KEY_LOAD_ERROR="keyLoadError",t.KEY_LOAD_TIMEOUT="keyLoadTimeOut",t.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",t.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",t.BUFFER_APPEND_ERROR="bufferAppendError",t.BUFFER_APPENDING_ERROR="bufferAppendingError",t.BUFFER_STALLED_ERROR="bufferStalledError",t.BUFFER_FULL_ERROR="bufferFullError",t.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",t.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",t.INTERNAL_EXCEPTION="internalException",t.INTERNAL_ABORTED="aborted",t.UNKNOWN="unknown",t}({}),ft=function(){},Ct={trace:ft,debug:ft,log:ft,warn:ft,info:ft,error:ft},Mt=Ct;function lt(t,...e){e.forEach(function(i){Mt[i]=t[i]?t[i].bind(t):function(n){let r=self.console[n];return r?r.bind(self.console,`[${n}] >`):ft}(i)})}let C=Mt,W=/^(\d+)x(\d+)$/,G=/(.+?)=(".*?"|.*?)(?:,|$)/g;class J{constructor(t){typeof t=="string"&&(t=J.parseAttrList(t)),z(this,t)}get clientAttrs(){return Object.keys(this).filter((t)=>t.substring(0,2)==="X-")}decimalInteger(t){let e=parseInt(this[t],10);return e>Number.MAX_SAFE_INTEGER?1/0:e}hexadecimalInteger(t){if(this[t]){let e=(this[t]||"0x").slice(2);e=(1&e.length?"0":"")+e;let i=new Uint8Array(e.length/2);for(let n=0;n<e.length/2;n++)i[n]=parseInt(e.slice(2*n,2*n+2),16);return i}return null}hexadecimalIntegerAsNumber(t){let e=parseInt(this[t],16);return e>Number.MAX_SAFE_INTEGER?1/0:e}decimalFloatingPoint(t){return parseFloat(this[t])}optionalFloat(t,e){let i=this[t];return i?parseFloat(i):e}enumeratedString(t){return this[t]}bool(t){return this[t]==="YES"}decimalResolution(t){let e=W.exec(this[t]);if(e!==null)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}}static parseAttrList(t){let e,i={};for(G.lastIndex=0;(e=G.exec(t))!==null;){let n=e[2];n.indexOf('"')===0&&n.lastIndexOf('"')===n.length-1&&(n=n.slice(1,-1)),i[e[1].trim()]=n}return i}}function st(t){return t==="SCTE35-OUT"||t==="SCTE35-IN"}class pt{constructor(t,e){if(this.attr=void 0,this._startDate=void 0,this._endDate=void 0,this._badValueForSameId=void 0,e){let i=e.attr;for(let n in i)if(Object.prototype.hasOwnProperty.call(t,n)&&t[n]!==i[n]){C.warn(`DATERANGE tag attribute: "${n}" does not match for tags with ID: "${t.ID}"`),this._badValueForSameId=n;break}t=z(new J({}),i,t)}if(this.attr=t,this._startDate=new Date(t["START-DATE"]),"END-DATE"in this.attr){let i=new Date(this.attr["END-DATE"]);j(i.getTime())&&(this._endDate=i)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get startDate(){return this._startDate}get endDate(){if(this._endDate)return this._endDate;let t=this.duration;return t!==null?new Date(this._startDate.getTime()+1000*t):null}get duration(){if("DURATION"in this.attr){let t=this.attr.decimalFloatingPoint("DURATION");if(j(t))return t}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1000;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isValid(){return!!this.id&&!this._badValueForSameId&&j(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)}}class at{constructor(){this.aborted=!1,this.loaded=0,this.retry=0,this.total=0,this.chunkCount=0,this.bwEstimate=0,this.loading={start:0,first:0,end:0},this.parsing={start:0,end:0},this.buffering={start:0,first:0,end:0}}}var gt="audio",Rt="video",Jt="audiovideo";class xt{constructor(t){this._byteRange=null,this._url=null,this.baseurl=void 0,this.relurl=void 0,this.elementaryStreams={[gt]:null,[Rt]:null,[Jt]:null},this.baseurl=t}setByteRange(t,e){let i=t.split("@",2),n;n=i.length===1?(e==null?void 0:e.byteRangeEndOffset)||0:parseInt(i[1]),this._byteRange=[n,parseInt(i[0])+n]}get byteRange(){return this._byteRange?this._byteRange:[]}get byteRangeStartOffset(){return this.byteRange[0]}get byteRangeEndOffset(){return this.byteRange[1]}get url(){return!this._url&&this.baseurl&&this.relurl&&(this._url=b.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url||""}set url(t){this._url=t}}class ce extends xt{constructor(t,e){super(e),this._decryptdata=null,this.rawProgramDateTime=null,this.programDateTime=null,this.tagList=[],this.duration=0,this.sn=0,this.levelkeys=void 0,this.type=void 0,this.loader=null,this.keyLoader=null,this.level=-1,this.cc=0,this.startPTS=void 0,this.endPTS=void 0,this.startDTS=void 0,this.endDTS=void 0,this.start=0,this.deltaPTS=void 0,this.maxStartPTS=void 0,this.minEndPTS=void 0,this.stats=new at,this.data=void 0,this.bitrateTest=!1,this.title=null,this.initSegment=null,this.endList=void 0,this.gap=void 0,this.urlId=0,this.type=t}get decryptdata(){let{levelkeys:t}=this;if(!t&&!this._decryptdata)return null;if(!this._decryptdata&&this.levelkeys&&!this.levelkeys.NONE){let e=this.levelkeys.identity;if(e)this._decryptdata=e.getDecryptData(this.sn);else{let i=Object.keys(this.levelkeys);if(i.length===1)return this._decryptdata=this.levelkeys[i[0]].getDecryptData(this.sn)}}return this._decryptdata}get end(){return this.start+this.duration}get endProgramDateTime(){if(this.programDateTime===null)return null;if(!j(this.programDateTime))return null;let t=j(this.duration)?this.duration:0;return this.programDateTime+1000*t}get encrypted(){var t;if((t=this._decryptdata)!=null&&t.encrypted)return!0;if(this.levelkeys){let e=Object.keys(this.levelkeys),i=e.length;if(i>1||i===1&&this.levelkeys[e[0]].encrypted)return!0}return!1}setKeyFormat(t){if(this.levelkeys){let e=this.levelkeys[t];e&&!this._decryptdata&&(this._decryptdata=e.getDecryptData(this.sn))}}abortRequests(){var t,e;(t=this.loader)==null||t.abort(),(e=this.keyLoader)==null||e.abort()}setElementaryStreamInfo(t,e,i,n,r,s=!1){let{elementaryStreams:a}=this,l=a[t];l?(l.startPTS=Math.min(l.startPTS,e),l.endPTS=Math.max(l.endPTS,i),l.startDTS=Math.min(l.startDTS,n),l.endDTS=Math.max(l.endDTS,r)):a[t]={startPTS:e,endPTS:i,startDTS:n,endDTS:r,partial:s}}clearElementaryStreamInfo(){let{elementaryStreams:t}=this;t[gt]=null,t[Rt]=null,t[Jt]=null}}class dt extends xt{constructor(t,e,i,n,r){super(i),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.stats=new at,this.duration=t.decimalFloatingPoint("DURATION"),this.gap=t.bool("GAP"),this.independent=t.bool("INDEPENDENT"),this.relurl=t.enumeratedString("URI"),this.fragment=e,this.index=n;let s=t.enumeratedString("BYTERANGE");s&&this.setByteRange(s,r),r&&(this.fragOffset=r.fragOffset+r.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){let{elementaryStreams:t}=this;return!!(t.audio||t.video||t.audiovideo)}}class mt{constructor(t){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.live=!0,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.availabilityDelay=void 0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=t}reloaded(t){if(!t)return this.advanced=!0,void(this.updated=!0);let e=this.lastPartSn-t.lastPartSn,i=this.lastPartIndex-t.lastPartIndex;this.updated=this.endSN!==t.endSN||!!i||!!e||!this.live,this.advanced=this.endSN>t.endSN||e>0||e===0&&i>0,this.updated||this.advanced?this.misses=Math.floor(0.6*t.misses):this.misses=t.misses+1,this.availabilityDelay=t.availabilityDelay}get hasProgramDateTime(){return!!this.fragments.length&&j(this.fragments[this.fragments.length-1].programDateTime)}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||10}get drift(){let t=this.driftEndTime-this.driftStartTime;if(t>0)return 1000*(this.driftEnd-this.driftStart)/t;return 1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){var t;return(t=this.fragments)!=null&&t.length?this.fragments[this.fragments.length-1].end:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1000:0}get lastPartIndex(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].index:-1}get lastPartSn(){var t;return(t=this.partList)!=null&&t.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}}function Dt(t){return Uint8Array.from(atob(t),(e)=>e.charCodeAt(0))}function te(t){let e=t.split(":"),i=null;if(e[0]==="data"&&e.length===2){let n=e[1].split(";"),r=n[n.length-1].split(",");if(r.length===2){let s=r[0]==="base64",a=r[1];s?(n.splice(-1,1),i=Dt(a)):i=function(l){let d=re(l).subarray(0,16),u=new Uint8Array(16);return u.set(d,16-d.length),u}(a)}}return i}function re(t){return Uint8Array.from(unescape(encodeURIComponent(t)),(e)=>e.charCodeAt(0))}let we=typeof self!="undefined"?self:void 0;var se={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},q="org.w3.clearkey",tt="com.apple.streamingkeydelivery",Lt="com.microsoft.playready",_t="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function Gt(t){switch(t){case tt:return se.FAIRPLAY;case Lt:return se.PLAYREADY;case _t:return se.WIDEVINE;case q:return se.CLEARKEY}}var Oe="edef8ba979d64acea3c827dcd51d21ed";function Re(t){switch(t){case se.FAIRPLAY:return tt;case se.PLAYREADY:return Lt;case se.WIDEVINE:return _t;case se.CLEARKEY:return q}}function ai(t){let{drmSystems:e,widevineLicenseUrl:i}=t,n=e?[se.FAIRPLAY,se.WIDEVINE,se.PLAYREADY,se.CLEARKEY].filter((r)=>!!e[r]):[];return!n[se.WIDEVINE]&&i&&n.push(se.WIDEVINE),n}let Qe=we!=null&&(Ge=we.navigator)!=null&&Ge.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;var Ge;function Se(t,e,i){return Uint8Array.prototype.slice?t.slice(e,i):new Uint8Array(Array.prototype.slice.call(t,e,i))}let si=(t,e)=>e+10<=t.length&&t[e]===73&&t[e+1]===68&&t[e+2]===51&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128,Xe=(t,e)=>e+10<=t.length&&t[e]===51&&t[e+1]===68&&t[e+2]===73&&t[e+3]<255&&t[e+4]<255&&t[e+6]<128&&t[e+7]<128&&t[e+8]<128&&t[e+9]<128,Ii=(t,e)=>{let i=e,n=0;for(;si(t,e);)n+=10,n+=Ze(t,e+6),Xe(t,e+10)&&(n+=10),e+=n;if(n>0)return t.subarray(i,i+n)},Ze=(t,e)=>{let i=0;return i=(127&t[e])<<21,i|=(127&t[e+1])<<14,i|=(127&t[e+2])<<7,i|=127&t[e+3],i},Je=(t,e)=>si(t,e)&&Ze(t,e+6)+10<=t.length-e,oi=(t)=>{let e=$t(t);for(let i=0;i<e.length;i++){let n=e[i];if(Qt(n))return Ai(n)}},Qt=(t)=>t&&t.key==="PRIV"&&t.info==="com.apple.streaming.transportStreamTimestamp",qt=(t)=>{let e=String.fromCharCode(t[0],t[1],t[2],t[3]),i=Ze(t,4);return{type:e,size:i,data:t.subarray(10,10+i)}},$t=(t)=>{let e=0,i=[];for(;si(t,e);){let n=Ze(t,e+6);e+=10;let r=e+n;for(;e+8<r;){let s=qt(t.subarray(e)),a=he(s);a&&i.push(a),e+=s.size+10}Xe(t,e)&&(e+=10)}return i},he=(t)=>t.type==="PRIV"?de(t):t.type[0]==="W"?en(t):Oi(t),de=(t)=>{if(t.size<2)return;let e=We(t.data,!0),i=new Uint8Array(t.data.subarray(e.length+1));return{key:t.type,info:e,data:i.buffer}},Oi=(t)=>{if(t.size<2)return;if(t.type==="TXXX"){let i=1,n=We(t.data.subarray(i),!0);i+=n.length+1;let r=We(t.data.subarray(i));return{key:t.type,info:n,data:r}}let e=We(t.data.subarray(1));return{key:t.type,data:e}},en=(t)=>{if(t.type==="WXXX"){if(t.size<2)return;let i=1,n=We(t.data.subarray(i),!0);i+=n.length+1;let r=We(t.data.subarray(i));return{key:t.type,info:n,data:r}}let e=We(t.data);return{key:t.type,data:e}},Ai=(t)=>{if(t.data.byteLength===8){let e=new Uint8Array(t.data),i=1&e[3],n=(e[4]<<23)+(e[5]<<15)+(e[6]<<7)+e[7];return n/=45,i&&(n+=47721858.84),Math.round(n)}},We=(t,e=!1)=>{let i=gi();if(i){let u=i.decode(t);if(e){let f=u.indexOf("\x00");return f!==-1?u.substring(0,f):u}return u.replace(/\0/g,"")}let n=t.length,r,s,a,l="",d=0;for(;d<n;){if(r=t[d++],r===0&&e)return l;if(r!==0&&r!==3)switch(r>>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:l+=String.fromCharCode(r);break;case 12:case 13:s=t[d++],l+=String.fromCharCode((31&r)<<6|63&s);break;case 14:s=t[d++],a=t[d++],l+=String.fromCharCode((15&r)<<12|(63&s)<<6|(63&a)<<0)}}return l},cn;function gi(){if(!navigator.userAgent.includes("PlayStation 4"))return cn||self.TextDecoder===void 0||(cn=new self.TextDecoder("utf-8")),cn}let _i=function(t){let e="";for(let i=0;i<t.length;i++){let n=t[i].toString(16);n.length<2&&(n="0"+n),e+=n}return e},ve=Math.pow(2,32)-1,Li=[].push,pe={video:1,audio:2,id3:3,text:4};function fe(t){return String.fromCharCode.apply(null,t)}function qi(t,e){let i=t[e]<<8|t[e+1];return i<0?65536+i:i}function Zt(t,e){let i=ti(t,e);return i<0?4294967296+i:i}function Fe(t,e){let i=Zt(t,e);return i*=Math.pow(2,32),i+=Zt(t,e+4),i}function ti(t,e){return t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3]}function Hi(t,e,i){t[e]=i>>24,t[e+1]=i>>16&255,t[e+2]=i>>8&255,t[e+3]=255&i}function Q(t,e){let i=[];if(!e.length)return i;let n=t.byteLength;for(let r=0;r<n;){let s=Zt(t,r),a=s>1?r+s:n;if(fe(t.subarray(r+4,r+8))===e[0])if(e.length===1)i.push(t.subarray(r+8,a));else{let l=Q(t.subarray(r+8,a),e.slice(1));l.length&&Li.apply(i,l)}r=a}return i}function De(t){let e=[],i=t[0],n=8,r=Zt(t,n);n+=4;let s=0,a=0;i===0?(s=Zt(t,n),a=Zt(t,n+4),n+=8):(s=Fe(t,n),a=Fe(t,n+8),n+=16),n+=2;let l=t.length+a,d=qi(t,n);n+=2;for(let u=0;u<d;u++){let f=n,E=Zt(t,f);f+=4;let S=2147483647&E;if((2147483648&E)>>>31===1)return C.warn("SIDX has hierarchical references (not supported)"),null;let T=Zt(t,f);f+=4,e.push({referenceSize:S,subsegmentDuration:T,info:{duration:T/r,start:l,end:l+S-1}}),l+=S,f+=4,n=f}return{earliestPresentationTime:s,timescale:r,version:i,referencesCount:d,references:e}}function Tr(t){let e=[],i=Q(t,["moov","trak"]);for(let n=0;n<i.length;n++){let r=i[n],s=Q(r,["tkhd"])[0];if(s){let a=s[0],l=Zt(s,a===0?12:20),d=Q(r,["mdia","mdhd"])[0];if(d){a=d[0];let u=Zt(d,a===0?12:20),f=Q(r,["mdia","hdlr"])[0];if(f){let E=fe(f.subarray(8,12)),S={soun:gt,vide:Rt}[E];if(S){let T=Fs(Q(r,["mdia","minf","stbl","stsd"])[0]);e[l]={timescale:u,type:S},e[S]=L({timescale:u,id:l},T)}}}}}return Q(t,["moov","mvex","trex"]).forEach((n)=>{let r=Zt(n,4),s=e[r];s&&(s.default={duration:Zt(n,12),flags:Zt(n,20)})}),e}function Fs(t){let e=t.subarray(8),i=e.subarray(86),n=fe(e.subarray(4,8)),r=n,s=n==="enca"||n==="encv";if(s){let a=Q(e,[n])[0];Q(a.subarray(n==="enca"?28:78),["sinf"]).forEach((l)=>{let d=Q(l,["schm"])[0];if(d){let u=fe(d.subarray(4,8));if(u==="cbcs"||u==="cenc"){let f=Q(l,["frma"])[0];f&&(r=fe(f))}}})}switch(r){case"avc1":case"avc2":case"avc3":case"avc4":{let a=Q(i,["avcC"])[0];r+="."+kn(a[1])+kn(a[2])+kn(a[3]);break}case"mp4a":{let a=Q(e,[n])[0],l=Q(a.subarray(28),["esds"])[0];if(l&&l.length>12){let d=4;if(l[d++]!==3)break;d=Ar(l,d),d+=2;let u=l[d++];if(128&u&&(d+=2),64&u&&(d+=l[d++]),l[d++]!==4)break;d=Ar(l,d);let f=l[d++];if(f!==64)break;if(r+="."+kn(f),d+=12,l[d++]!==5)break;d=Ar(l,d);let E=l[d++],S=(248&E)>>3;S===31&&(S+=1+((7&E)<<3)+((224&l[d])>>5)),r+="."+S}break}case"hvc1":case"hev1":{let a=Q(i,["hvcC"])[0],l=a[1],d=["","A","B","C"][l>>6],u=31&l,f=Zt(a,2),E=(32&l)>>5?"H":"L",S=a[12],T=a.subarray(6,12);r+="."+d+u,r+="."+f.toString(16).toUpperCase(),r+="."+E+S;let _="";for(let D=T.length;D--;){let w=T[D];if(w||_)_="."+w.toString(16).toUpperCase()+_}r+=_;break}case"dvh1":case"dvhe":{let a=Q(i,["dvcC"])[0],l=a[2]>>1&127,d=a[2]<<5&32|a[3]>>3&31;r+="."+pi(l)+"."+pi(d);break}case"vp09":{let a=Q(i,["vpcC"])[0],l=a[4],d=a[5],u=a[6]>>4&15;r+="."+pi(l)+"."+pi(d)+"."+pi(u);break}case"av01":{let a=Q(i,["av1C"])[0],l=a[1]>>>5,d=31&a[1],u=a[2]>>>7?"H":"M",f=(64&a[2])>>6,E=(32&a[2])>>5,S=l===2&&f?E?12:10:f?10:8,T=(16&a[2])>>4,_=(8&a[2])>>3,D=(4&a[2])>>2,w=3&a[2];r+="."+l+"."+pi(d)+u+"."+pi(S)+"."+T+"."+_+D+w+"."+pi(1)+"."+pi(1)+"."+pi(1)+".0";break}}return{codec:r,encrypted:s}}function Ar(t,e){let i=e+5;for(;128&t[e++]&&e<i;);return e}function kn(t){return("0"+t.toString(16).toUpperCase()).slice(-2)}function pi(t){return(t<10?"0":"")+t}function _r(t){let e=Q(t,["schm"])[0];if(e){let i=fe(e.subarray(4,8));if(i==="cbcs"||i==="cenc")return Q(t,["schi","tenc"])[0]}return C.error("[eme] missing 'schm' box"),null}function Yi(t){let e=Zt(t,0),i=8;1&e&&(i+=4),4&e&&(i+=4);let n=0,r=Zt(t,4);for(let s=0;s<r;s++){if(256&e)n+=Zt(t,i),i+=4;512&e&&(i+=4),1024&e&&(i+=4),2048&e&&(i+=4)}return n}function li(t,e){let i=new Uint8Array(t.length+e.length);return i.set(t),i.set(e,t.length),i}function Rn(t,e){let i=[],n=e.samples,r=e.timescale,s=e.id,a=!1;return Q(n,["moof"]).map((l)=>{let d=l.byteOffset-8;Q(l,["traf"]).map((u)=>{let f=Q(u,["tfdt"]).map((E)=>{let S=E[0],T=Zt(E,4);return S===1&&(T*=Math.pow(2,32),T+=Zt(E,8)),T/r})[0];return f!==void 0&&(t=f),Q(u,["tfhd"]).map((E)=>{let S=Zt(E,4),T=16777215&Zt(E,0),_=0,D=(16&T)!=0,w=0,x=(32&T)!=0,M=8;S===s&&((1&T)!=0&&(M+=8),(2&T)!=0&&(M+=4),(8&T)!=0&&(_=Zt(E,M),M+=4),D&&(w=Zt(E,M),M+=4),x&&(M+=4),e.type==="video"&&(a=function(V){if(!V)return!1;let X=V.indexOf("."),ot=X<0?V:V.substring(0,X);return ot==="hvc1"||ot==="hev1"||ot==="dvh1"||ot==="dvhe"}(e.codec)),Q(u,["trun"]).map((V)=>{let X=V[0],ot=16777215&Zt(V,0),et=(1&ot)!=0,vt=0,St=(4&ot)!=0,nt=(256&ot)!=0,it=0,jt=(512&ot)!=0,At=0,Kt=(1024&ot)!=0,zt=(2048&ot)!=0,Xt=0,ht=Zt(V,4),wt=8;et&&(vt=Zt(V,wt),wt+=4),St&&(wt+=4);let Wt=vt+d;for(let Yt=0;Yt<ht;Yt++){if(nt?(it=Zt(V,wt),wt+=4):it=_,jt?(At=Zt(V,wt),wt+=4):At=w,Kt&&(wt+=4),zt&&(Xt=X===0?Zt(V,wt):ti(V,wt),wt+=4),e.type===Rt){let ae=0;for(;ae<At;){let Ce=Zt(n,Wt);if(Wt+=4,nn(a,n[Wt]))Jr(n.subarray(Wt,Wt+Ce),a?2:1,t+Xt/r,i);Wt+=Ce,ae+=Ce+4}}t+=it/r}}))})})}),i}function nn(t,e){if(t){let i=e>>1&63;return i===39||i===40}return(31&e)===6}function Jr(t,e,i,n){let r=Xn(t),s=0;s+=e;let a=0,l=0,d=0;for(;s<r.length;){a=0;do{if(s>=r.length)break;d=r[s++],a+=d}while(d===255);l=0;do{if(s>=r.length)break;d=r[s++],l+=d}while(d===255);let u=r.length-s,f=s;if(l<u)s+=l;else if(l>u){C.error(`Malformed SEI payload. ${l} is too small, only ${u} bytes left to parse.`);break}if(a===4){if(r[f++]===181){let E=qi(r,f);if(f+=2,E===49){let S=Zt(r,f);if(f+=4,S===1195456820){let T=r[f++];if(T===3){let _=r[f++],D=31&_,w=64&_,x=w?2+3*D:0,M=new Uint8Array(x);if(w){M[0]=_;for(let V=1;V<x;V++)M[V]=r[f++]}n.push({type:T,payloadType:a,pts:i,bytes:M})}}}}}else if(a===5&&l>16){let E=[];for(let _=0;_<16;_++){let D=r[f++].toString(16);E.push(D.length==1?"0"+D:D),_!==3&&_!==5&&_!==7&&_!==9||E.push("-")}let S=l-16,T=new Uint8Array(S);for(let _=0;_<S;_++)T[_]=r[f++];n.push({payloadType:a,pts:i,uuid:E.join(""),userData:We(T),userDataBytes:T})}}}function Xn(t){let e=t.byteLength,i=[],n=1;for(;n<e-2;)t[n]===0&&t[n+1]===0&&t[n+2]===3?(i.push(n+2),n+=2):n++;if(i.length===0)return t;let r=e-i.length,s=new Uint8Array(r),a=0;for(n=0;n<r;a++,n++)a===i[0]&&(a++,i.shift()),s[n]=t[a];return s}function Qr(t,e,i){if(t.byteLength!==16)throw new RangeError("Invalid system id");let n,r,s;if(e){n=1,r=new Uint8Array(16*e.length);for(let l=0;l<e.length;l++){let d=e[l];if(d.byteLength!==16)throw new RangeError("Invalid key");r.set(d,16*l)}}else n=0,r=new Uint8Array;n>0?(s=new Uint8Array(4),e.length>0&&new DataView(s.buffer).setUint32(0,e.length,!1)):s=new Uint8Array;let a=new Uint8Array(4);return i&&i.byteLength>0&&new DataView(a.buffer).setUint32(0,i.byteLength,!1),function(l,...d){let u=d.length,f=8,E=u;for(;E--;)f+=d[E].byteLength;let S=new Uint8Array(f);for(S[0]=f>>24&255,S[1]=f>>16&255,S[2]=f>>8&255,S[3]=255&f,S.set(l,4),E=0,f=8;E<u;E++)S.set(d[E],f),f+=d[E].byteLength;return S}([112,115,115,104],new Uint8Array([n,0,0,0]),t,s,r,a,i||new Uint8Array)}let vi={};class xi{static clearKeyUriToKeyIdMap(){vi={}}constructor(t,e,i,n=[1],r=null){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=t,this.uri=e,this.keyFormat=i,this.keyFormatVersions=n,this.iv=r,this.encrypted=!!t&&t!=="NONE",this.isCommonEncryption=this.encrypted&&t!=="AES-128"}isSupported(){if(this.method){if(this.method==="AES-128"||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case tt:case _t:case Lt:case q:return["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(t){if(!this.encrypted||!this.uri)return null;if(this.method==="AES-128"&&this.uri&&!this.iv){typeof t!="number"&&(this.method!=="AES-128"||this.iv||C.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),t=0);let i=function(n){let r=new Uint8Array(16);for(let s=12;s<16;s++)r[s]=n>>8*(15-s)&255;return r}(t);return new xi(this.method,this.uri,"identity",this.keyFormatVersions,i)}let e=te(this.uri);if(e)switch(this.keyFormat){case _t:this.pssh=e,e.length>=22&&(this.keyId=e.subarray(e.length-22,e.length-6));break;case Lt:{let i=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=Qr(i,null,e);let n=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),r=String.fromCharCode.apply(null,Array.from(n)),s=r.substring(r.indexOf("<"),r.length),a=new DOMParser().parseFromString(s,"text/xml").getElementsByTagName("KID")[0];if(a){let l=a.childNodes[0]?a.childNodes[0].nodeValue:a.getAttribute("VALUE");if(l){let d=Dt(l).subarray(0,16);(function(u){let f=function(E,S,T){let _=E[S];E[S]=E[T],E[T]=_};f(u,0,3),f(u,1,2),f(u,4,5),f(u,6,7)})(d),this.keyId=d}}break}default:{let i=e.subarray(0,16);if(i.length!==16){let n=new Uint8Array(16);n.set(i,16-i.length),i=n}this.keyId=i;break}}if(!this.keyId||this.keyId.byteLength!==16){let i=vi[this.uri];if(!i){let n=Object.keys(vi).length%Number.MAX_SAFE_INTEGER;i=new Uint8Array(16),new DataView(i.buffer,12,4).setUint32(0,n),vi[this.uri]=i}this.keyId=i}return this}}let Dn=/\{\$([a-zA-Z0-9-_]+)\}/g;function Ni(t){return Dn.test(t)}function ci(t,e,i){if(t.variableList!==null||t.hasVariableRefs)for(let n=i.length;n--;){let r=i[n],s=e[r];s&&(e[r]=Cn(t,s))}}function Cn(t,e){if(t.variableList!==null||t.hasVariableRefs){let i=t.variableList;return e.replace(Dn,(n)=>{let r=n.substring(2,n.length-1),s=i==null?void 0:i[r];return s===void 0?(t.playlistParsingError||(t.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${r}"`)),n):s})}return e}function zi(t,e,i){let n,r,s=t.variableList;if(s||(t.variableList=s={}),"QUERYPARAM"in e){n=e.QUERYPARAM;try{let a=new self.URL(i).searchParams;if(!a.has(n))throw new Error(`"${n}" does not match any query parameter in URI: "${i}"`);r=a.get(n)}catch(a){t.playlistParsingError||(t.playlistParsingError=new Error("EXT-X-DEFINE QUERYPARAM: "+a.message))}}else n=e.NAME,r=e.VALUE;n in s?t.playlistParsingError||(t.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${n}"`)):s[n]=r||""}function Ne(t,e,i){let n=e.IMPORT;if(i&&n in i){let r=t.variableList;r||(t.variableList=r={}),r[n]=i[n]}else t.playlistParsingError||(t.playlistParsingError=new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${n}"`))}function Xi(t=!0){if(typeof self=="undefined")return;return(t||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}let In={audio:{a3ds:1,"ac-3":0.95,"ac-4":1,alac:0.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":0.9,enca:1,fLaC:0.9,flac:0.9,FLAC:0.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:0.8,drac:1,dva1:1,dvav:1,dvh1:0.7,dvhe:0.7,encv:1,hev1:0.75,hvc1:0.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:0.9},text:{stpp:1,wvtt:1}};function Jn(t,e,i=!0){return!t.split(",").some((n)=>!Pi(n,e,i))}function Pi(t,e,i=!0){var n;let r=Xi(i);return(n=r==null?void 0:r.isTypeSupported(dn(t,e)))!=null&&n}function dn(t,e){return`${e}/mp4;codecs="${t}"`}function Ue(t){if(t){let e=t.substring(0,4);return In.video[e]}return 2}function On(t){return t.split(",").reduce((e,i)=>{let n=In.video[i];return n?(2*n+e)/(e?3:2):(In.audio[i]+e)/(e?2:1)},0)}let Ji={},Lr=/flac|opus/i;function xn(t,e=!0){return t.replace(Lr,(i)=>function(n,r=!0){if(Ji[n])return Ji[n];let s={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"]}[n];for(let a=0;a<s.length;a++)if(Pi(s[a],"audio",r))return Ji[n]=s[a],s[a];return n}(i.toLowerCase(),e))}function Zr(t,e){return t&&t!=="mp4a"?t:e?e.split(",")[0]:e}let ts=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,Qn=/#EXT-X-MEDIA:(.*)/g,Nn=/^#EXT(?:INF|-X-TARGETDURATION):/m,Zn=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[\S ]*)/.source,/#EXT-X-BYTERANGE:*(.+)/.source,/#EXT-X-PROGRAM-DATE-TIME:(.+)/.source,/#.*/.source].join("|"),"g"),Pn=new RegExp([/#(EXTM3U)/.source,/#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class Pe{static findGroup(t,e){for(let i=0;i<t.length;i++){let n=t[i];if(n.id===e)return n}}static resolve(t,e){return b.buildAbsoluteURL(e,t,{alwaysNormalize:!0})}static isMediaPlaylist(t){return Nn.test(t)}static parseMasterPlaylist(t,e){let i={contentSteering:null,levels:[],playlistParsingError:null,sessionData:null,sessionKeys:null,startTimeOffset:null,variableList:null,hasVariableRefs:Ni(t)},n=[],r;for(ts.lastIndex=0;(r=ts.exec(t))!=null;)if(r[1]){var s;let l=new J(r[1]);ci(i,l,["CODECS","SUPPLEMENTAL-CODECS","ALLOWED-CPC","PATHWAY-ID","STABLE-VARIANT-ID","AUDIO","VIDEO","SUBTITLES","CLOSED-CAPTIONS","NAME"]);let d=Cn(i,r[2]),u={attrs:l,bitrate:l.decimalInteger("BANDWIDTH")||l.decimalInteger("AVERAGE-BANDWIDTH"),name:l.NAME,url:Pe.resolve(d,e)},f=l.decimalResolution("RESOLUTION");f&&(u.width=f.width,u.height=f.height),Mi(l.CODECS,u),(s=u.unknownCodecs)!=null&&s.length||n.push(u),i.levels.push(u)}else if(r[3]){let l=r[3],d=r[4];switch(l){case"SESSION-DATA":{let u=new J(d);ci(i,u,["DATA-ID","LANGUAGE","VALUE","URI"]);let f=u["DATA-ID"];f&&(i.sessionData===null&&(i.sessionData={}),i.sessionData[f]=u);break}case"SESSION-KEY":{let u=di(d,e,i);u.encrypted&&u.isSupported()?(i.sessionKeys===null&&(i.sessionKeys=[]),i.sessionKeys.push(u)):C.warn(`[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "${d}"`);break}case"DEFINE":{let u=new J(d);ci(i,u,["NAME","VALUE","QUERYPARAM"]),zi(i,u,e)}break;case"CONTENT-STEERING":{let u=new J(d);ci(i,u,["SERVER-URI","PATHWAY-ID"]),i.contentSteering={uri:Pe.resolve(u["SERVER-URI"],e),pathwayId:u["PATHWAY-ID"]||"."};break}case"START":i.startTimeOffset=Mn(d)}}let a=n.length>0&&n.length<i.levels.length;return i.levels=a?n:i.levels,i.levels.length===0&&(i.playlistParsingError=new Error("no levels found in manifest")),i}static parseMasterPlaylistMedia(t,e,i){let n,r={},s=i.levels,a={AUDIO:s.map((d)=>({id:d.attrs.AUDIO,audioCodec:d.audioCodec})),SUBTITLES:s.map((d)=>({id:d.attrs.SUBTITLES,textCodec:d.textCodec})),"CLOSED-CAPTIONS":[]},l=0;for(Qn.lastIndex=0;(n=Qn.exec(t))!==null;){let d=new J(n[1]),u=d.TYPE;if(u){let f=a[u],E=r[u]||[];r[u]=E,ci(i,d,["URI","GROUP-ID","LANGUAGE","ASSOC-LANGUAGE","STABLE-RENDITION-ID","NAME","INSTREAM-ID","CHARACTERISTICS","CHANNELS"]);let S=d.LANGUAGE,T=d["ASSOC-LANGUAGE"],_=d.CHANNELS,D=d.CHARACTERISTICS,w=d["INSTREAM-ID"],x={attrs:d,bitrate:0,id:l++,groupId:d["GROUP-ID"]||"",name:d.NAME||S||"",type:u,default:d.bool("DEFAULT"),autoselect:d.bool("AUTOSELECT"),forced:d.bool("FORCED"),lang:S,url:d.URI?Pe.resolve(d.URI,e):""};if(T&&(x.assocLang=T),_&&(x.channels=_),D&&(x.characteristics=D),w&&(x.instreamId=w),f!=null&&f.length){let M=Pe.findGroup(f,x.groupId)||f[0];tr(x,M,"audioCodec"),tr(x,M,"textCodec")}E.push(x)}}return r}static parseLevelPlaylist(t,e,i,n,r,s){let a=new mt(e),l=a.fragments,d,u,f,E=null,S=0,T=0,_=0,D=0,w=null,x=new ce(n,e),M=-1,V=!1,X=null;for(Zn.lastIndex=0,a.m3u8=t,a.hasVariableRefs=Ni(t);(d=Zn.exec(t))!==null;){V&&(V=!1,x=new ce(n,e),x.start=_,x.sn=S,x.cc=D,x.level=i,E&&(x.initSegment=E,x.rawProgramDateTime=E.rawProgramDateTime,E.rawProgramDateTime=null,X&&(x.setByteRange(X),X=null)));let St=d[1];if(St){x.duration=parseFloat(St);let nt=(" "+d[2]).slice(1);x.title=nt||null,x.tagList.push(nt?["INF",St,nt]:["INF",St])}else if(d[3]){if(j(x.duration)){x.start=_,f&&wr(x,f,a),x.sn=S,x.level=i,x.cc=D,l.push(x);let nt=(" "+d[3]).slice(1);x.relurl=Cn(a,nt),Ki(x,w),w=x,_+=x.duration,S++,T=0,V=!0}}else if(d[4]){let nt=(" "+d[4]).slice(1);w?x.setByteRange(nt,w):x.setByteRange(nt)}else if(d[5])x.rawProgramDateTime=(" "+d[5]).slice(1),x.tagList.push(["PROGRAM-DATE-TIME",x.rawProgramDateTime]),M===-1&&(M=l.length);else{if(d=d[0].match(Pn),!d){C.warn("No matches on slow regex match for level playlist!");continue}for(u=1;u<d.length&&d[u]===void 0;u++);let nt=(" "+d[u]).slice(1),it=(" "+d[u+1]).slice(1),jt=d[u+2]?(" "+d[u+2]).slice(1):"";switch(nt){case"PLAYLIST-TYPE":a.type=it.toUpperCase();break;case"MEDIA-SEQUENCE":S=a.startSN=parseInt(it);break;case"SKIP":{let At=new J(it);ci(a,At,["RECENTLY-REMOVED-DATERANGES"]);let Kt=At.decimalInteger("SKIPPED-SEGMENTS");if(j(Kt)){a.skippedSegments=Kt;for(let Xt=Kt;Xt--;)l.unshift(null);S+=Kt}let zt=At.enumeratedString("RECENTLY-REMOVED-DATERANGES");zt&&(a.recentlyRemovedDateranges=zt.split("\t"));break}case"TARGETDURATION":a.targetduration=Math.max(parseInt(it),1);break;case"VERSION":a.version=parseInt(it);break;case"INDEPENDENT-SEGMENTS":case"EXTM3U":break;case"ENDLIST":a.live=!1;break;case"#":(it||jt)&&x.tagList.push(jt?[it,jt]:[it]);break;case"DISCONTINUITY":D++,x.tagList.push(["DIS"]);break;case"GAP":x.gap=!0,x.tagList.push([nt]);break;case"BITRATE":x.tagList.push([nt,it]);break;case"DATERANGE":{let At=new J(it);ci(a,At,["ID","CLASS","START-DATE","END-DATE","SCTE35-CMD","SCTE35-OUT","SCTE35-IN"]),ci(a,At,At.clientAttrs);let Kt=new pt(At,a.dateRanges[At.ID]);Kt.isValid||a.skippedSegments?a.dateRanges[Kt.id]=Kt:C.warn(`Ignoring invalid DATERANGE tag: "${it}"`),x.tagList.push(["EXT-X-DATERANGE",it]);break}case"DEFINE":{let At=new J(it);ci(a,At,["NAME","VALUE","IMPORT","QUERYPARAM"]),"IMPORT"in At?Ne(a,At,s):zi(a,At,e)}break;case"DISCONTINUITY-SEQUENCE":D=parseInt(it);break;case"KEY":{let At=di(it,e,a);if(At.isSupported()){if(At.method==="NONE"){f=void 0;break}f||(f={}),f[At.keyFormat]&&(f=z({},f)),f[At.keyFormat]=At}else C.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${it}"`);break}case"START":a.startTimeOffset=Mn(it);break;case"MAP":{let At=new J(it);if(ci(a,At,["BYTERANGE","URI"]),x.duration){let Kt=new ce(n,e);qe(Kt,At,i,f),E=Kt,x.initSegment=E,E.rawProgramDateTime&&!x.rawProgramDateTime&&(x.rawProgramDateTime=E.rawProgramDateTime)}else{let Kt=x.byteRangeEndOffset;if(Kt){let zt=x.byteRangeStartOffset;X=`${Kt-zt}@${zt}`}else X=null;qe(x,At,i,f),E=x,V=!0}break}case"SERVER-CONTROL":{let At=new J(it);a.canBlockReload=At.bool("CAN-BLOCK-RELOAD"),a.canSkipUntil=At.optionalFloat("CAN-SKIP-UNTIL",0),a.canSkipDateRanges=a.canSkipUntil>0&&At.bool("CAN-SKIP-DATERANGES"),a.partHoldBack=At.optionalFloat("PART-HOLD-BACK",0),a.holdBack=At.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{let At=new J(it);a.partTarget=At.decimalFloatingPoint("PART-TARGET");break}case"PART":{let At=a.partList;At||(At=a.partList=[]);let Kt=T>0?At[At.length-1]:void 0,zt=T++,Xt=new J(it);ci(a,Xt,["BYTERANGE","URI"]);let ht=new dt(Xt,x,e,zt,Kt);At.push(ht),x.duration+=ht.duration;break}case"PRELOAD-HINT":{let At=new J(it);ci(a,At,["URI"]),a.preloadHint=At;break}case"RENDITION-REPORT":{let At=new J(it);ci(a,At,["URI"]),a.renditionReports=a.renditionReports||[],a.renditionReports.push(At);break}default:C.warn("line parsed but not handled: "+d)}}}w&&!w.relurl?(l.pop(),_-=w.duration,a.partList&&(a.fragmentHint=w)):a.partList&&(Ki(x,w),x.cc=D,a.fragmentHint=x,f&&wr(x,f,a));let ot=l.length,et=l[0],vt=l[ot-1];if(_+=a.skippedSegments*a.targetduration,_>0&&ot&&vt){a.averagetargetduration=_/ot;let St=vt.sn;a.endSN=St!=="initSegment"?St:0,a.live||(vt.endList=!0),et&&(a.startCC=et.cc)}else a.endSN=0,a.startCC=0;return a.fragmentHint&&(_+=a.fragmentHint.duration),a.totalduration=_,a.endCC=D,M>0&&function(St,nt){let it=St[nt];for(let jt=nt;jt--;){let At=St[jt];if(!At)return;At.programDateTime=it.programDateTime-1000*At.duration,it=At}}(l,M),a}}function di(t,e,i){var n,r;let s=new J(t);ci(i,s,["KEYFORMAT","KEYFORMATVERSIONS","URI","IV","URI"]);let a=(n=s.METHOD)!=null?n:"",l=s.URI,d=s.hexadecimalInteger("IV"),u=s.KEYFORMATVERSIONS,f=(r=s.KEYFORMAT)!=null?r:"identity";l&&s.IV&&!d&&C.error("Invalid IV: "+s.IV);let E=l?Pe.resolve(l,e):"",S=(u||"1").split("/").map(Number).filter(Number.isFinite);return new xi(a,E,f,S,d)}function Mn(t){let e=new J(t).decimalFloatingPoint("TIME-OFFSET");return j(e)?e:null}function Mi(t,e){let i=(t||"").split(/[ ,]+/).filter((n)=>n);["video","audio","text"].forEach((n)=>{let r=i.filter((s)=>function(a,l){let d=In[l];return!!d&&!!d[a.slice(0,4)]}(s,n));r.length&&(e[n+"Codec"]=r.join(","),i=i.filter((s)=>r.indexOf(s)===-1))}),e.unknownCodecs=i}function tr(t,e,i){let n=e[i];n&&(t[i]=n)}function Ki(t,e){t.rawProgramDateTime?t.programDateTime=Date.parse(t.rawProgramDateTime):e!=null&&e.programDateTime&&(t.programDateTime=e.endProgramDateTime),j(t.programDateTime)||(t.programDateTime=null,t.rawProgramDateTime=null)}function qe(t,e,i,n){t.relurl=e.URI,e.BYTERANGE&&t.setByteRange(e.BYTERANGE),t.level=i,t.sn="initSegment",n&&(t.levelkeys=n),t.initSegment=null}function wr(t,e,i){t.levelkeys=e;let{encryptedFragments:n}=i;n.length&&n[n.length-1].levelkeys===e||!Object.keys(e).some((r)=>e[r].isCommonEncryption)||n.push(t)}var Qi="manifest",Vi="level",yi="audioTrack",Fi="subtitleTrack",me="main",ei="audio",Bi="subtitle";function kr(t){let{type:e}=t;switch(e){case yi:return ei;case Fi:return Bi;default:return me}}function er(t,e){let i=t.url;return i!==void 0&&i.indexOf("data:")!==0||(i=e.url),i}class Rr{constructor(t){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.hls=t,this.registerListeners()}startLoad(t){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){let{hls:t}=this;t.on(A.MANIFEST_LOADING,this.onManifestLoading,this),t.on(A.LEVEL_LOADING,this.onLevelLoading,this),t.on(A.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.on(A.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}unregisterListeners(){let{hls:t}=this;t.off(A.MANIFEST_LOADING,this.onManifestLoading,this),t.off(A.LEVEL_LOADING,this.onLevelLoading,this),t.off(A.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),t.off(A.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this)}createInternalLoader(t){let e=this.hls.config,i=e.pLoader,n=e.loader,r=new(i||n)(e);return this.loaders[t.type]=r,r}getInternalLoader(t){return this.loaders[t.type]}resetInternalLoader(t){this.loaders[t]&&delete this.loaders[t]}destroyInternalLoaders(){for(let t in this.loaders){let e=this.loaders[t];e&&e.destroy(),this.resetInternalLoader(t)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(t,e){let{url:i}=e;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:Qi,url:i,deliveryDirectives:null})}onLevelLoading(t,e){let{id:i,level:n,pathwayId:r,url:s,deliveryDirectives:a}=e;this.load({id:i,level:n,pathwayId:r,responseType:"text",type:Vi,url:s,deliveryDirectives:a})}onAudioTrackLoading(t,e){let{id:i,groupId:n,url:r,deliveryDirectives:s}=e;this.load({id:i,groupId:n,level:null,responseType:"text",type:yi,url:r,deliveryDirectives:s})}onSubtitleTrackLoading(t,e){let{id:i,groupId:n,url:r,deliveryDirectives:s}=e;this.load({id:i,groupId:n,level:null,responseType:"text",type:Fi,url:r,deliveryDirectives:s})}load(t){var e;let i=this.hls.config,n,r=this.getInternalLoader(t);if(r){let d=r.context;if(d&&d.url===t.url&&d.level===t.level)return void C.trace("[playlist-loader]: playlist request ongoing");C.log("[playlist-loader]: aborting previous loader for type: "+t.type),r.abort()}if(n=t.type===Qi?i.manifestLoadPolicy.default:z({},i.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),r=this.createInternalLoader(t),j((e=t.deliveryDirectives)==null?void 0:e.part)){let d;if(t.type===Vi&&t.level!==null?d=this.hls.levels[t.level].details:t.type===yi&&t.id!==null?d=this.hls.audioTracks[t.id].details:t.type===Fi&&t.id!==null&&(d=this.hls.subtitleTracks[t.id].details),d){let{partTarget:u,targetduration:f}=d;if(u&&f){let E=1000*Math.max(3*u,0.8*f);n=z({},n,{maxTimeToFirstByteMs:Math.min(E,n.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(E,n.maxTimeToFirstByteMs)})}}}let s=n.errorRetry||n.timeoutRetry||{},a={loadPolicy:n,timeout:n.maxLoadTimeMs,maxRetry:s.maxNumRetry||0,retryDelay:s.retryDelayMs||0,maxRetryDelay:s.maxRetryDelayMs||0},l={onSuccess:(d,u,f,E)=>{let S=this.getInternalLoader(f);this.resetInternalLoader(f.type);let T=d.data;T.indexOf("#EXTM3U")===0?(u.parsing.start=performance.now(),Pe.isMediaPlaylist(T)?this.handleTrackOrLevelPlaylist(d,u,f,E||null,S):this.handleMasterPlaylist(d,u,f,E)):this.handleManifestParsingError(d,f,new Error("no EXTM3U delimiter"),E||null,u)},onError:(d,u,f,E)=>{this.handleNetworkError(u,f,!1,d,E)},onTimeout:(d,u,f)=>{this.handleNetworkError(u,f,!0,void 0,d)}};r.load(t,a,l)}handleMasterPlaylist(t,e,i,n){let r=this.hls,s=t.data,a=er(t,i),l=Pe.parseMasterPlaylist(s,a);if(l.playlistParsingError)return void this.handleManifestParsingError(t,i,l.playlistParsingError,n,e);let{contentSteering:d,levels:u,sessionData:f,sessionKeys:E,startTimeOffset:S,variableList:T}=l;this.variableList=T;let{AUDIO:_=[],SUBTITLES:D,"CLOSED-CAPTIONS":w}=Pe.parseMasterPlaylistMedia(s,a,l);if(_.length)_.some((x)=>!x.url)||!u[0].audioCodec||u[0].attrs.AUDIO||(C.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),_.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new J({}),bitrate:0,url:""}));r.trigger(A.MANIFEST_LOADED,{levels:u,audioTracks:_,subtitles:D,captions:w,contentSteering:d,url:a,stats:e,networkDetails:n,sessionData:f,sessionKeys:E,startTimeOffset:S,variableList:T})}handleTrackOrLevelPlaylist(t,e,i,n,r){let s=this.hls,{id:a,level:l,type:d}=i,u=er(t,i),f=j(l)?l:j(a)?a:0,E=kr(i),S=Pe.parseLevelPlaylist(t.data,u,f,E,0,this.variableList);if(d===Qi){let T={attrs:new J({}),bitrate:0,details:S,name:"",url:u};s.trigger(A.MANIFEST_LOADED,{levels:[T],audioTracks:[],url:u,stats:e,networkDetails:n,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}e.parsing.end=performance.now(),i.levelDetails=S,this.handlePlaylistLoaded(S,t,e,i,n,r)}handleManifestParsingError(t,e,i,n,r){this.hls.trigger(A.ERROR,{type:Ft.NETWORK_ERROR,details:H.MANIFEST_PARSING_ERROR,fatal:e.type===Qi,url:t.url,err:i,error:i,reason:i.message,response:t,context:e,networkDetails:n,stats:r})}handleNetworkError(t,e,i=!1,n,r){let s=`A network ${i?"timeout":"error"+(n?" (status "+n.code+")":"")} occurred while loading ${t.type}`;t.type===Vi?s+=`: ${t.level} id: ${t.id}`:t.type!==yi&&t.type!==Fi||(s+=` id: ${t.id} group-id: "${t.groupId}"`);let a=new Error(s);C.warn("[playlist-loader]: "+s);let l=H.UNKNOWN,d=!1,u=this.getInternalLoader(t);switch(t.type){case Qi:l=i?H.MANIFEST_LOAD_TIMEOUT:H.MANIFEST_LOAD_ERROR,d=!0;break;case Vi:l=i?H.LEVEL_LOAD_TIMEOUT:H.LEVEL_LOAD_ERROR,d=!1;break;case yi:l=i?H.AUDIO_TRACK_LOAD_TIMEOUT:H.AUDIO_TRACK_LOAD_ERROR,d=!1;break;case Fi:l=i?H.SUBTITLE_TRACK_LOAD_TIMEOUT:H.SUBTITLE_LOAD_ERROR,d=!1}u&&this.resetInternalLoader(t.type);let f={type:Ft.NETWORK_ERROR,details:l,fatal:d,url:t.url,loader:u,context:t,error:a,networkDetails:e,stats:r};if(n){let E=(e==null?void 0:e.url)||t.url;f.response=L({url:E,data:void 0},n)}this.hls.trigger(A.ERROR,f)}handlePlaylistLoaded(t,e,i,n,r,s){let a=this.hls,{type:l,level:d,id:u,groupId:f,deliveryDirectives:E}=n,S=er(e,n),T=kr(n),_=typeof n.level=="number"&&T===me?d:void 0;if(!t.fragments.length){let w=new Error("No Segments found in Playlist");return void a.trigger(A.ERROR,{type:Ft.NETWORK_ERROR,details:H.LEVEL_EMPTY_ERROR,fatal:!1,url:S,error:w,reason:w.message,response:e,context:n,level:_,parent:T,networkDetails:r,stats:i})}t.targetduration||(t.playlistParsingError=new Error("Missing Target Duration"));let D=t.playlistParsingError;if(D)a.trigger(A.ERROR,{type:Ft.NETWORK_ERROR,details:H.LEVEL_PARSING_ERROR,fatal:!1,url:S,error:D,reason:D.message,response:e,context:n,level:_,parent:T,networkDetails:r,stats:i});else switch(t.live&&s&&(s.getCacheAge&&(t.ageHeader=s.getCacheAge()||0),s.getCacheAge&&!isNaN(t.ageHeader)||(t.ageHeader=0)),l){case Qi:case Vi:a.trigger(A.LEVEL_LOADED,{details:t,level:_||0,id:u||0,stats:i,networkDetails:r,deliveryDirectives:E});break;case yi:a.trigger(A.AUDIO_TRACK_LOADED,{details:t,id:u||0,groupId:f||"",stats:i,networkDetails:r,deliveryDirectives:E});break;case Fi:a.trigger(A.SUBTITLE_TRACK_LOADED,{details:t,id:u||0,groupId:f||"",stats:i,networkDetails:r,deliveryDirectives:E})}}}function ir(t,e){let i;try{i=new Event("addtrack")}catch(n){i=document.createEvent("Event"),i.initEvent("addtrack",!1,!1)}i.track=t,e.dispatchEvent(i)}function Dr(t,e){let i=t.mode;if(i==="disabled"&&(t.mode="hidden"),t.cues&&!t.cues.getCueById(e.id))try{if(t.addCue(e),!t.cues.getCueById(e.id))throw new Error("addCue is failed for: "+e)}catch(n){C.debug("[texttrack-utils]: "+n);try{let r=new self.TextTrackCue(e.startTime,e.endTime,e.text);r.id=e.id,t.addCue(r)}catch(r){C.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: "+r)}}i==="disabled"&&(t.mode=i)}function Ui(t){let e=t.mode;if(e==="disabled"&&(t.mode="hidden"),t.cues)for(let i=t.cues.length;i--;)t.removeCue(t.cues[i]);e==="disabled"&&(t.mode=e)}function nr(t,e,i,n){let r=t.mode;if(r==="disabled"&&(t.mode="hidden"),t.cues&&t.cues.length>0){let s=function(a,l,d){let u=[],f=function(E,S){if(S<E[0].startTime)return 0;let T=E.length-1;if(S>E[T].endTime)return-1;let _=0,D=T;for(;_<=D;){let w=Math.floor((D+_)/2);if(S<E[w].startTime)D=w-1;else{if(!(S>E[w].startTime&&_<T))return w;_=w+1}}return E[_].startTime-S<S-E[D].startTime?_:D}(a,l);if(f>-1)for(let E=f,S=a.length;E<S;E++){let T=a[E];if(T.startTime>=l&&T.endTime<=d)u.push(T);else if(T.startTime>d)return u}return u}(t.cues,e,i);for(let a=0;a<s.length;a++)n&&!n(s[a])||t.removeCue(s[a])}r==="disabled"&&(t.mode=r)}function rr(t){let e=[];for(let i=0;i<t.length;i++){let n=t[i];n.kind!=="subtitles"&&n.kind!=="captions"||!n.label||e.push(t[i])}return e}var Fn="org.id3",c="com.apple.quicktime.HLS",m="https://aomedia.org/emsg/ID3";function y(){if(typeof self!="undefined")return self.VTTCue||self.TextTrackCue}function O(t,e,i,n,r){let s=new t(e,i,"");try{s.value=n,r&&(s.type=r)}catch(a){s=new t(e,i,JSON.stringify(r?L({type:r},n):n))}return s}let N=(()=>{let t=y();try{t&&new t(0,Number.POSITIVE_INFINITY,"")}catch(e){return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();function B(t,e){return t.getTime()/1000-e}class F{constructor(t){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=t,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=null}_registerListeners(){let{hls:t}=this;t.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(A.MANIFEST_LOADING,this.onManifestLoading,this),t.on(A.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.on(A.BUFFER_FLUSHING,this.onBufferFlushing,this),t.on(A.LEVEL_UPDATED,this.onLevelUpdated,this)}_unregisterListeners(){let{hls:t}=this;t.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(A.MANIFEST_LOADING,this.onManifestLoading,this),t.off(A.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),t.off(A.BUFFER_FLUSHING,this.onBufferFlushing,this),t.off(A.LEVEL_UPDATED,this.onLevelUpdated,this)}onMediaAttached(t,e){this.media=e.media}onMediaDetaching(){this.id3Track&&(Ui(this.id3Track),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(t){let e=this.getID3Track(t.textTracks);return e.mode="hidden",e}getID3Track(t){if(this.media){for(let e=0;e<t.length;e++){let i=t[e];if(i.kind==="metadata"&&i.label==="id3")return ir(i,this.media),i}return this.media.addTextTrack("metadata","id3")}}onFragParsingMetadata(t,e){if(!this.media)return;let{hls:{config:{enableEmsgMetadataCues:i,enableID3MetadataCues:n}}}=this;if(!i&&!n)return;let{samples:r}=e;this.id3Track||(this.id3Track=this.createTrack(this.media));let s=y();if(s)for(let a=0;a<r.length;a++){let l=r[a].type;if(l===m&&!i||!n)continue;let d=$t(r[a].data);if(d){let u=r[a].pts,f=u+r[a].duration;f>N&&(f=N),f-u<=0&&(f=u+0.25);for(let E=0;E<d.length;E++){let S=d[E];if(!Qt(S)){this.updateId3CueEnds(u,l);let T=O(s,u,f,S,l);T&&this.id3Track.addCue(T)}}}}}updateId3CueEnds(t,e){var i;let n=(i=this.id3Track)==null?void 0:i.cues;if(n)for(let r=n.length;r--;){let s=n[r];s.type===e&&s.startTime<t&&s.endTime===N&&(s.endTime=t)}}onBufferFlushing(t,{startOffset:e,endOffset:i,type:n}){let{id3Track:r,hls:s}=this;if(!s)return;let{config:{enableEmsgMetadataCues:a,enableID3MetadataCues:l}}=s;if(r&&(a||l)){let d;d=n==="audio"?(u)=>u.type===Fn&&l:n==="video"?(u)=>u.type===m&&a:(u)=>u.type===Fn&&l||u.type===m&&a,nr(r,e,i,d)}}onLevelUpdated(t,{details:e}){if(!this.media||!e.hasProgramDateTime||!this.hls.config.enableDateRangeMetadataCues)return;let{dateRangeCuesAppended:i,id3Track:n}=this,{dateRanges:r}=e,s=Object.keys(r);if(n){let E=Object.keys(i).filter((S)=>!s.includes(S));for(let S=E.length;S--;){let T=E[S];Object.keys(i[T].cues).forEach((_)=>{n.removeCue(i[T].cues[_])}),delete i[T]}}let a=e.fragments[e.fragments.length-1];if(s.length===0||!j(a==null?void 0:a.programDateTime))return;this.id3Track||(this.id3Track=this.createTrack(this.media));let l=a.programDateTime/1000-a.start,d=y();for(let E=0;E<s.length;E++){let S=s[E],T=r[S],_=B(T.startDate,l),D=i[S],w=(D==null?void 0:D.cues)||{},x=(D==null?void 0:D.durationKnown)||!1,M=N,V=T.endDate;if(V)M=B(V,l),x=!0;else if(T.endOnNext&&!x){let ot=s.reduce((et,vt)=>{if(vt!==T.id){let St=r[vt];if(St.class===T.class&&St.startDate>T.startDate&&(!et||T.startDate<et.startDate))return St}return et},null);ot&&(M=B(ot.startDate,l),x=!0)}let X=Object.keys(T.attr);for(let ot=0;ot<X.length;ot++){let et=X[ot];if((f=et)==="ID"||f==="CLASS"||f==="START-DATE"||f==="DURATION"||f==="END-DATE"||f==="END-ON-NEXT")continue;let vt=w[et];if(vt)x&&!D.durationKnown&&(vt.endTime=M);else if(d){let St=T.attr[et];st(et)&&(u=St,St=Uint8Array.from(u.replace(/^0x/,"").replace(/([\da-fA-F]{2}) ?/g,"0x$1 ").replace(/ +$/,"").split(" ")).buffer);let nt=O(d,_,M,{key:et,data:St},c);nt&&(nt.id=S,this.id3Track.addCue(nt),w[et]=nt)}}i[S]={cues:w,dateRange:T,durationKnown:x}}var u,f}}class ut{constructor(t){this.hls=void 0,this.config=void 0,this.media=null,this.levelDetails=null,this.currentTime=0,this.stallCount=0,this._latency=null,this.timeupdateHandler=()=>this.timeupdate(),this.hls=t,this.config=t.config,this.registerListeners()}get latency(){return this._latency||0}get maxLatency(){let{config:t,levelDetails:e}=this;return t.liveMaxLatencyDuration!==void 0?t.liveMaxLatencyDuration:e?t.liveMaxLatencyDurationCount*e.targetduration:0}get targetLatency(){let{levelDetails:t}=this;if(t===null)return null;let{holdBack:e,partHoldBack:i,targetduration:n}=t,{liveSyncDuration:r,liveSyncDurationCount:s,lowLatencyMode:a}=this.config,l=this.hls.userConfig,d=a&&i||e;(l.liveSyncDuration||l.liveSyncDurationCount||d===0)&&(d=r!==void 0?r:s*n);let u=n;return d+Math.min(1*this.stallCount,u)}get liveSyncPosition(){let t=this.estimateLiveEdge(),e=this.targetLatency,i=this.levelDetails;if(t===null||e===null||i===null)return null;let n=i.edge,r=t-e-this.edgeStalled,s=n-i.totalduration,a=n-(this.config.lowLatencyMode&&i.partTarget||i.targetduration);return Math.min(Math.max(s,r),a)}get drift(){let{levelDetails:t}=this;return t===null?1:t.drift}get edgeStalled(){let{levelDetails:t}=this;if(t===null)return 0;let e=3*(this.config.lowLatencyMode&&t.partTarget||t.targetduration);return Math.max(t.age-e,0)}get forwardBufferLength(){let{media:t,levelDetails:e}=this;if(!t||!e)return 0;let i=t.buffered.length;return(i?t.buffered.end(i-1):e.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.levelDetails=null,this.hls=this.timeupdateHandler=null}registerListeners(){this.hls.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.on(A.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(A.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.on(A.ERROR,this.onError,this)}unregisterListeners(){this.hls.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),this.hls.off(A.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(A.LEVEL_UPDATED,this.onLevelUpdated,this),this.hls.off(A.ERROR,this.onError,this)}onMediaAttached(t,e){this.media=e.media,this.media.addEventListener("timeupdate",this.timeupdateHandler)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.timeupdateHandler),this.media=null)}onManifestLoading(){this.levelDetails=null,this._latency=null,this.stallCount=0}onLevelUpdated(t,{details:e}){this.levelDetails=e,e.advanced&&this.timeupdate(),!e.live&&this.media&&this.media.removeEventListener("timeupdate",this.timeupdateHandler)}onError(t,e){var i;e.details===H.BUFFER_STALLED_ERROR&&(this.stallCount++,(i=this.levelDetails)!=null&&i.live&&C.warn("[playback-rate-controller]: Stall detected, adjusting target latency"))}timeupdate(){let{media:t,levelDetails:e}=this;if(!t||!e)return;this.currentTime=t.currentTime;let i=this.computeLatency();if(i===null)return;this._latency=i;let{lowLatencyMode:n,maxLiveSyncPlaybackRate:r}=this.config;if(!n||r===1||!e.live)return;let s=this.targetLatency;if(s===null)return;let a=i-s;if(a<Math.min(this.maxLatency,s+e.targetduration)&&a>0.05&&this.forwardBufferLength>1){let l=Math.min(2,Math.max(1,r)),d=Math.round(2/(1+Math.exp(-0.75*a-this.edgeStalled))*20)/20;t.playbackRate=Math.min(l,Math.max(1,d))}else t.playbackRate!==1&&t.playbackRate!==0&&(t.playbackRate=1)}estimateLiveEdge(){let{levelDetails:t}=this;return t===null?null:t.edge+t.age}computeLatency(){let t=this.estimateLiveEdge();return t===null?null:t-this.currentTime}}let ct=["NONE","TYPE-0","TYPE-1",null],It=["SDR","PQ","HLG"];var yt="",Pt="YES",Ot="v2";function Et(t){let{canSkipUntil:e,canSkipDateRanges:i,age:n}=t;return e&&n<e/2?i?Ot:Pt:yt}class Tt{constructor(t,e,i){this.msn=void 0,this.part=void 0,this.skip=void 0,this.msn=t,this.part=e,this.skip=i}addDirectives(t){let e=new self.URL(t);return this.msn!==void 0&&e.searchParams.set("_HLS_msn",this.msn.toString()),this.part!==void 0&&e.searchParams.set("_HLS_part",this.part.toString()),this.skip&&e.searchParams.set("_HLS_skip",this.skip),e.href}}class ie{constructor(t){this._attrs=void 0,this.audioCodec=void 0,this.bitrate=void 0,this.codecSet=void 0,this.url=void 0,this.frameRate=void 0,this.height=void 0,this.id=void 0,this.name=void 0,this.videoCodec=void 0,this.width=void 0,this.details=void 0,this.fragmentError=0,this.loadError=0,this.loaded=void 0,this.realBitrate=0,this.supportedPromise=void 0,this.supportedResult=void 0,this._avgBitrate=0,this._audioGroups=void 0,this._subtitleGroups=void 0,this._urlId=0,this.url=[t.url],this._attrs=[t.attrs],this.bitrate=t.bitrate,t.details&&(this.details=t.details),this.id=t.id||0,this.name=t.name,this.width=t.width||0,this.height=t.height||0,this.frameRate=t.attrs.optionalFloat("FRAME-RATE",0),this._avgBitrate=t.attrs.decimalInteger("AVERAGE-BANDWIDTH"),this.audioCodec=t.audioCodec,this.videoCodec=t.videoCodec,this.codecSet=[t.videoCodec,t.audioCodec].filter((e)=>!!e).map((e)=>e.substring(0,4)).join(","),this.addGroupId("audio",t.attrs.AUDIO),this.addGroupId("text",t.attrs.SUBTITLES)}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get averageBitrate(){return this._avgBitrate||this.realBitrate||this.bitrate}get attrs(){return this._attrs[0]}get codecs(){return this.attrs.CODECS||""}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get videoRange(){return this.attrs["VIDEO-RANGE"]||"SDR"}get score(){return this.attrs.optionalFloat("SCORE",0)}get uri(){return this.url[0]||""}hasAudioGroup(t){return _e(this._audioGroups,t)}hasSubtitleGroup(t){return _e(this._subtitleGroups,t)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(t,e){if(e){if(t==="audio"){let i=this._audioGroups;i||(i=this._audioGroups=[]),i.indexOf(e)===-1&&i.push(e)}else if(t==="text"){let i=this._subtitleGroups;i||(i=this._subtitleGroups=[]),i.indexOf(e)===-1&&i.push(e)}}}get urlId(){return 0}set urlId(t){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var t;return(t=this.audioGroups)==null?void 0:t[0]}get textGroupId(){var t;return(t=this.subtitleGroups)==null?void 0:t[0]}addFallback(){}}function _e(t,e){return!(!e||!t)&&t.indexOf(e)!==-1}function Be(t,e){let i=e.startPTS;if(j(i)){let n,r=0;e.sn>t.sn?(r=i-t.start,n=t):(r=t.start-i,n=e),n.duration!==r&&(n.duration=r)}else if(e.sn>t.sn)t.cc===e.cc&&t.minEndPTS?e.start=t.start+(t.minEndPTS-t.start):e.start=t.start+t.duration;else e.start=Math.max(t.start-e.duration,0)}function He(t,e,i,n,r,s){n-i<=0&&(C.warn("Fragment should have a positive duration",e),n=i+e.duration,s=r+e.duration);let a=i,l=n,d=e.startPTS,u=e.endPTS;if(j(d)){let D=Math.abs(d-i);j(e.deltaPTS)?e.deltaPTS=Math.max(D,e.deltaPTS):e.deltaPTS=D,a=Math.max(i,d),i=Math.min(i,d),r=Math.min(r,e.startDTS),l=Math.min(n,u),n=Math.max(n,u),s=Math.max(s,e.endDTS)}let f=i-e.start;e.start!==0&&(e.start=i),e.duration=n-e.start,e.startPTS=i,e.maxStartPTS=a,e.startDTS=r,e.endPTS=n,e.minEndPTS=l,e.endDTS=s;let E=e.sn;if(!t||E<t.startSN||E>t.endSN)return 0;let S,T=E-t.startSN,_=t.fragments;for(_[T]=e,S=T;S>0;S--)Be(_[S],_[S-1]);for(S=T;S<_.length-1;S++)Be(_[S],_[S+1]);return t.fragmentHint&&Be(_[_.length-1],t.fragmentHint),t.PTSKnown=t.alignedSliding=!0,f}function wi(t,e){let i=null,n=t.fragments;for(let d=n.length-1;d>=0;d--){let u=n[d].initSegment;if(u){i=u;break}}t.fragmentHint&&delete t.fragmentHint.endPTS;let r,s=0;if(function(d,u,f){let E=u.skippedSegments,S=Math.max(d.startSN,u.startSN)-u.startSN,T=(d.fragmentHint?1:0)+(E?u.endSN:Math.min(d.endSN,u.endSN))-u.startSN,_=u.startSN-d.startSN,D=u.fragmentHint?u.fragments.concat(u.fragmentHint):u.fragments,w=d.fragmentHint?d.fragments.concat(d.fragmentHint):d.fragments;for(let x=S;x<=T;x++){let M=w[_+x],V=D[x];E&&!V&&x<E&&(V=u.fragments[x]=M),M&&V&&f(M,V)}}(t,e,(d,u)=>{d.relurl&&(s=d.cc-u.cc),j(d.startPTS)&&j(d.endPTS)&&(u.start=u.startPTS=d.startPTS,u.startDTS=d.startDTS,u.maxStartPTS=d.maxStartPTS,u.endPTS=d.endPTS,u.endDTS=d.endDTS,u.minEndPTS=d.minEndPTS,u.duration=d.endPTS-d.startPTS,u.duration&&(r=u),e.PTSKnown=e.alignedSliding=!0),u.elementaryStreams=d.elementaryStreams,u.loader=d.loader,u.stats=d.stats,d.initSegment&&(u.initSegment=d.initSegment,i=d.initSegment)}),i)(e.fragmentHint?e.fragments.concat(e.fragmentHint):e.fragments).forEach((d)=>{var u;!d||d.initSegment&&d.initSegment.relurl!==((u=i)==null?void 0:u.relurl)||(d.initSegment=i)});if(e.skippedSegments)if(e.deltaUpdateFailed=e.fragments.some((d)=>!d),e.deltaUpdateFailed){C.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let d=e.skippedSegments;d--;)e.fragments.shift();e.startSN=e.fragments[0].sn,e.startCC=e.fragments[0].cc}else e.canSkipDateRanges&&(e.dateRanges=function(d,u,f){let E=z({},d);return f&&f.forEach((S)=>{delete E[S]}),Object.keys(u).forEach((S)=>{let T=new pt(u[S].attr,E[S]);T.isValid?E[S]=T:C.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${JSON.stringify(u[S].attr)}"`)}),E}(t.dateRanges,e.dateRanges,e.recentlyRemovedDateranges));let a=e.fragments;if(s){C.warn("discontinuity sliding from playlist, take drift into account");for(let d=0;d<a.length;d++)a[d].cc+=s}e.skippedSegments&&(e.startCC=e.fragments[0].cc),function(d,u,f){if(d&&u){let E=0;for(let S=0,T=d.length;S<=T;S++){let _=d[S],D=u[S+E];_&&D&&_.index===D.index&&_.fragment.sn===D.fragment.sn?f(_,D):E--}}}(t.partList,e.partList,(d,u)=>{u.elementaryStreams=d.elementaryStreams,u.stats=d.stats}),r?He(e,r,r.startPTS,r.endPTS,r.startDTS,r.endDTS):sr(t,e),a.length&&(e.totalduration=e.edge-a[0].start),e.driftStartTime=t.driftStartTime,e.driftStart=t.driftStart;let l=e.advancedDateTime;if(e.advanced&&l){let d=e.edge;e.driftStart||(e.driftStartTime=l,e.driftStart=d),e.driftEndTime=l,e.driftEnd=d}else e.driftEndTime=t.driftEndTime,e.driftEnd=t.driftEnd,e.advancedDateTime=t.advancedDateTime}function sr(t,e){let i=e.startSN+e.skippedSegments-t.startSN,n=t.fragments;i<0||i>=n.length||Bn(e,n[i].start)}function Bn(t,e){if(e){let i=t.fragments;for(let n=t.skippedSegments;n<i.length;n++)i[n].start+=e;t.fragmentHint&&(t.fragmentHint.start+=e)}}function Cr(t,e,i){var n;return t!=null&&t.details?_a((n=t.details)==null?void 0:n.partList,e,i):null}function _a(t,e,i){if(t)for(let n=t.length;n--;){let r=t[n];if(r.index===i&&r.fragment.sn===e)return r}return null}function Bs(t){t.forEach((e,i)=>{let{details:n}=e;n!=null&&n.fragments&&n.fragments.forEach((r)=>{r.level=i})})}function es(t){switch(t.details){case H.FRAG_LOAD_TIMEOUT:case H.KEY_LOAD_TIMEOUT:case H.LEVEL_LOAD_TIMEOUT:case H.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function La(t,e){let i=es(e);return t.default[(i?"timeout":"error")+"Retry"]}function Us(t,e){let i=t.backoff==="linear"?1:Math.pow(2,e);return Math.min(i*t.retryDelayMs,t.maxRetryDelayMs)}function wa(t){return L(L({},t),{errorRetry:null,timeoutRetry:null})}function ar(t,e,i,n){if(!t)return!1;let r=n==null?void 0:n.code,s=e<t.maxNumRetry&&(function(a){return a===0&&navigator.onLine===!1||!!a&&(a<400||a>499)}(r)||!!i);return t.shouldRetry?t.shouldRetry(t,e,i,n,s):s}let Ir=function(t,e){let i=0,n=t.length-1,r=null,s=null;for(;i<=n;){r=(i+n)/2|0,s=t[r];let a=e(s);if(a>0)i=r+1;else{if(!(a<0))return s;n=r-1}}return null};function or(t,e,i=0,n=0){let r=null;if(t){r=e[t.sn-e[0].sn+1]||null;let a=t.endDTS-i;a>0&&a<0.0000015&&(i+=0.0000015)}else i===0&&e[0].start===0&&(r=e[0]);if(r&&(!t||t.level===r.level)&&Un(i,n,r)===0)return r;let s=Ir(e,Un.bind(null,i,n));return!s||s===t&&r?r:s}function Un(t=0,e=0,i){if(i.start<=t&&i.start+i.duration>t)return 0;let n=Math.min(e,i.duration+(i.deltaPTS?i.deltaPTS:0));return i.start+i.duration-n<=t?1:i.start-n>t&&i.start?-1:0}function ki(t,e,i){let n=1000*Math.min(e,i.duration+(i.deltaPTS?i.deltaPTS:0));return(i.endProgramDateTime||0)-n>t}var $s=0,un=2,Or=3,ui=5,$n=0,Gs=1,Hs=2;class ii{constructor(t,e){this.hls=void 0,this.timer=-1,this.requestScheduled=-1,this.canLoad=!1,this.log=void 0,this.warn=void 0,this.log=C.log.bind(C,e+":"),this.warn=C.warn.bind(C,e+":"),this.hls=t}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){this.timer!==-1&&(self.clearTimeout(this.timer),this.timer=-1)}startLoad(){this.canLoad=!0,this.requestScheduled=-1,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(t,e,i){let n=e==null?void 0:e.renditionReports;if(n){let r=-1;for(let s=0;s<n.length;s++){let a=n[s],l;try{l=new self.URL(a.URI,e.url).href}catch(d){C.warn("Could not construct new URL for Rendition Report: "+d),l=a.URI||""}if(l===t){r=s;break}l===t.substring(0,l.length)&&(r=s)}if(r!==-1){let s=n[r],a=parseInt(s["LAST-MSN"])||(e==null?void 0:e.lastPartSn),l=parseInt(s["LAST-PART"])||(e==null?void 0:e.lastPartIndex);if(this.hls.config.lowLatencyMode){let u=Math.min(e.age-e.partTarget,e.targetduration);l>=0&&u>e.partTarget&&(l+=1)}let d=i&&Et(i);return new Tt(a,l>=0?l:void 0,d)}}}loadPlaylist(t){this.requestScheduled===-1&&(this.requestScheduled=self.performance.now())}shouldLoadPlaylist(t){return this.canLoad&&!!t&&!!t.url&&(!t.details||t.details.live)}shouldReloadPlaylist(t){return this.timer===-1&&this.requestScheduled===-1&&this.shouldLoadPlaylist(t)}playlistLoaded(t,e,i){let{details:n,stats:r}=e,s=self.performance.now(),a=r.loading.first?Math.max(0,s-r.loading.first):0;if(n.advancedDateTime=Date.now()-a,n.live||i!=null&&i.live){if(n.reloaded(i),i&&this.log(`live playlist ${t} ${n.advanced?"REFRESHED "+n.lastPartSn+"-"+n.lastPartIndex:n.updated?"UPDATED":"MISSED"}`),i&&n.fragments.length>0&&wi(i,n),!this.canLoad||!n.live)return;let l,d=void 0,u=void 0;if(n.canBlockReload&&n.endSN&&n.advanced){let _=this.hls.config.lowLatencyMode,D=n.lastPartSn,w=n.endSN,x=n.lastPartIndex,M=D===w,V=_?0:x;x!==-1?(d=M?w+1:D,u=M?V:x+1):d=w+1;let X=n.age,ot=X+n.ageHeader,et=Math.min(ot-n.partTarget,1.5*n.targetduration);if(et>0){if(i&&et>i.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${i.tuneInGoal} to: ${et} with playlist age: ${n.age}`),et=0;else{let vt=Math.floor(et/n.targetduration);if(d+=vt,u!==void 0)u+=Math.round(et%n.targetduration/n.partTarget);this.log(`CDN Tune-in age: ${n.ageHeader}s last advanced ${X.toFixed(2)}s goal: ${et} skip sn ${vt} to part ${u}`)}n.tuneInGoal=et}if(l=this.getDeliveryDirectives(n,e.deliveryDirectives,d,u),_||!M)return void this.loadPlaylist(l)}else(n.canBlockReload||n.canSkipUntil)&&(l=this.getDeliveryDirectives(n,e.deliveryDirectives,d,u));let f=this.hls.mainForwardBufferInfo,E=f?f.end-f.len:0,S=function(_,D=1/0){let w=1000*_.targetduration;if(_.updated){let x=_.fragments;if(x.length&&w*4>D){let V=1000*x[x.length-1].duration;V<w&&(w=V)}}else w/=2;return Math.round(w)}(n,1000*(n.edge-E));n.updated&&s>this.requestScheduled+S&&(this.requestScheduled=r.loading.start),d!==void 0&&n.canBlockReload?this.requestScheduled=r.loading.first+S-(1000*n.partTarget||1000):this.requestScheduled===-1||this.requestScheduled+S<s?this.requestScheduled=s:this.requestScheduled-s<=0&&(this.requestScheduled+=S);let T=this.requestScheduled-s;T=Math.max(0,T),this.log(`reload live playlist ${t} in ${Math.round(T)} ms`),this.timer=self.setTimeout(()=>this.loadPlaylist(l),T)}else this.clearTimer()}getDeliveryDirectives(t,e,i,n){let r=Et(t);return e!=null&&e.skip&&t.deltaUpdateFailed&&(i=e.msn,n=e.part,r=yt),new Tt(i,n,r)}checkRetry(t){let e=t.details,i=es(t),n=t.errorAction,{action:r,retryCount:s=0,retryConfig:a}=n||{},l=!!n&&!!a&&(r===ui||!n.resolved&&r===un);if(l){var d;if(this.requestScheduled=-1,s>=a.maxNumRetry)return!1;if(i&&(d=t.context)!=null&&d.deliveryDirectives)this.warn(`Retrying playlist loading ${s+1}/${a.maxNumRetry} after "${e}" without delivery-directives`),this.loadPlaylist();else{let u=Us(a,s);this.timer=self.setTimeout(()=>this.loadPlaylist(),u),this.warn(`Retrying playlist loading ${s+1}/${a.maxNumRetry} after "${e}" in ${u}ms`)}t.levelRetry=!0,n.resolved=!0}return l}}class Gn{constructor(t,e=0,i=0){this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=t,this.alpha_=t?Math.exp(Math.log(0.5)/t):0,this.estimate_=e,this.totalWeight_=i}sample(t,e){let i=Math.pow(this.alpha_,t);this.estimate_=e*(1-i)+i*this.estimate_,this.totalWeight_+=t}getTotalWeight(){return this.totalWeight_}getEstimate(){if(this.alpha_){let t=1-Math.pow(this.alpha_,this.totalWeight_);if(t)return this.estimate_/t}return this.estimate_}}class Ks{constructor(t,e,i,n=100){this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=i,this.minWeight_=0.001,this.minDelayMs_=50,this.slow_=new Gn(t),this.fast_=new Gn(e),this.defaultTTFB_=n,this.ttfb_=new Gn(t)}update(t,e){let{slow_:i,fast_:n,ttfb_:r}=this;i.halfLife!==t&&(this.slow_=new Gn(t,i.getEstimate(),i.getTotalWeight())),n.halfLife!==e&&(this.fast_=new Gn(e,n.getEstimate(),n.getTotalWeight())),r.halfLife!==t&&(this.ttfb_=new Gn(t,r.getEstimate(),r.getTotalWeight()))}sample(t,e){let i=(t=Math.max(t,this.minDelayMs_))/1000,n=8*e/i;this.fast_.sample(i,n),this.slow_.sample(i,n)}sampleTTFB(t){let e=t/1000,i=Math.sqrt(2)*Math.exp(-Math.pow(e,2)/2);this.ttfb_.sample(i,Math.max(t,5))}canEstimate(){return this.fast_.getTotalWeight()>=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}destroy(){}}let is={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]},Vs={};function bo(t,e,i,n,r,s){let a=t.audioCodec?t.audioGroups:null,l=s==null?void 0:s.audioCodec,d=s==null?void 0:s.channels,u=d?parseInt(d):l?1/0:2,f=null;if(a!=null&&a.length)try{f=a.length===1&&a[0]?e.groups[a[0]].channels:a.reduce((E,S)=>{if(S){let T=e.groups[S];if(!T)throw new Error(`Audio track group ${S} not found`);Object.keys(T.channels).forEach((_)=>{E[_]=(E[_]||0)+T.channels[_]})}return E},{2:0})}catch(E){return!0}return t.videoCodec!==void 0&&(t.width>1920&&t.height>1088||t.height>1920&&t.width>1088||t.frameRate>Math.max(n,30)||t.videoRange!=="SDR"&&t.videoRange!==i||t.bitrate>Math.max(r,8000000))||!!f&&j(u)&&Object.keys(f).some((E)=>parseInt(E)>u)}function bn(t,e,i){let{videoCodec:n,audioCodec:r}=t;if(!n||!r||!i)return Promise.resolve(is);let s={width:t.width,height:t.height,bitrate:Math.ceil(Math.max(0.9*t.bitrate,t.averageBitrate)),framerate:t.frameRate||30},a=t.videoRange;a!=="SDR"&&(s.transferFunction=a.toLowerCase());let l=n.split(",").map((d)=>({type:"media-source",video:L(L({},s),{},{contentType:dn(d,"video")})}));return r&&t.audioGroups&&t.audioGroups.forEach((d)=>{var u;d&&((u=e.groups[d])==null||u.tracks.forEach((f)=>{if(f.groupId===d){let E=f.channels||"",S=parseFloat(E);j(S)&&S>2&&l.push.apply(l,r.split(",").map((T)=>({type:"media-source",audio:{contentType:dn(T,"audio"),channels:""+S}})))}}))}),Promise.all(l.map((d)=>{let u=function(f){let{audio:E,video:S}=f,T=S||E;if(T){let _=T.contentType.split('"')[1];if(S)return`r${S.height}x${S.width}f${Math.ceil(S.framerate)}${S.transferFunction||"sd"}_${_}_${Math.ceil(S.bitrate/1e5)}`;if(E)return`c${E.channels}${E.spatialRendering?"s":"n"}_${_}`}return""}(d);return Vs[u]||(Vs[u]=i.decodingInfo(d))})).then((d)=>({supported:!d.some((u)=>!u.supported),configurations:l,decodingInfoResults:d})).catch((d)=>({supported:!1,configurations:l,decodingInfoResults:[],error:d}))}function To(t,e){let i=!1,n=[];return t&&(i=t!=="SDR",n=[t]),e&&(n=e.allowedVideoRanges||It.slice(0),i=e.preferHDR!==void 0?e.preferHDR:function(){if(typeof matchMedia=="function"){let r=matchMedia("(dynamic-range: high)"),s=matchMedia("bad query");if(r.media!==s.media)return r.matches===!0}return!1}(),n=i?n.filter((r)=>r!=="SDR"):["SDR"]),{preferHDR:i,allowedVideoRanges:n}}function Ei(t,e){C.log(`[abr] start candidates with "${t}" ignored because ${e}`)}function rn(t,e,i){if("attrs"in t){let n=e.indexOf(t);if(n!==-1)return n}for(let n=0;n<e.length;n++)if(lr(t,e[n],i))return n;return-1}function lr(t,e,i){let{groupId:n,name:r,lang:s,assocLang:a,characteristics:l,default:d}=t,u=t.forced;return(n===void 0||e.groupId===n)&&(r===void 0||e.name===r)&&(s===void 0||e.lang===s)&&(s===void 0||e.assocLang===a)&&(d===void 0||e.default===d)&&(u===void 0||e.forced===u)&&(l===void 0||function(f,E=""){let S=f.split(","),T=E.split(",");return S.length===T.length&&!S.some((_)=>T.indexOf(_)===-1)}(l,e.characteristics))&&(i===void 0||i(t,e))}function cr(t,e){let{audioCodec:i,channels:n}=t;return!(i!==void 0&&(e.audioCodec||"").substring(0,4)!==i.substring(0,4)||n!==void 0&&n!==(e.channels||"2"))}function ka(t,e,i){for(let n=e;n;n--)if(i(t[n]))return n;for(let n=e+1;n<t.length;n++)if(i(t[n]))return n;return-1}var Ri="NOT_LOADED",xr="APPENDING",Hn="PARTIAL",Ie="OK";class Ws{constructor(t){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=0.2,this.hls=void 0,this.hasGaps=!1,this.hls=t,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(A.BUFFER_APPENDED,this.onBufferAppended,this),t.on(A.FRAG_BUFFERED,this.onFragBuffered,this),t.on(A.FRAG_LOADED,this.onFragLoaded,this)}_unregisterListeners(){let{hls:t}=this;t.off(A.BUFFER_APPENDED,this.onBufferAppended,this),t.off(A.FRAG_BUFFERED,this.onFragBuffered,this),t.off(A.FRAG_LOADED,this.onFragLoaded,this)}destroy(){this._unregisterListeners(),this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null}getAppendedFrag(t,e){let i=this.activePartLists[e];if(i)for(let n=i.length;n--;){let r=i[n];if(!r)break;let s=r.end;if(r.start<=t&&s!==null&&t<=s)return r}return this.getBufferedFrag(t,e)}getBufferedFrag(t,e){let{fragments:i}=this,n=Object.keys(i);for(let r=n.length;r--;){let s=i[n[r]];if((s==null?void 0:s.body.type)===e&&s.buffered){let a=s.body;if(a.start<=t&&t<=a.end)return a}}return null}detectEvictedFragments(t,e,i,n){this.timeRanges&&(this.timeRanges[t]=e);let r=(n==null?void 0:n.fragment.sn)||-1;Object.keys(this.fragments).forEach((s)=>{let a=this.fragments[s];if(!a)return;if(r>=a.body.sn)return;if(!a.buffered&&!a.loaded)return void(a.body.type===i&&this.removeFragment(a.body));let l=a.range[t];l&&l.time.some((d)=>{let u=!this.isTimeBuffered(d.startPTS,d.endPTS,e);return u&&this.removeFragment(a.body),u})})}detectPartialFragments(t){let e=this.timeRanges,{frag:i,part:n}=t;if(!e||i.sn==="initSegment")return;let r=Si(i),s=this.fragments[r];if(!s||s.buffered&&i.gap)return;let a=!i.relurl;if(Object.keys(e).forEach((l)=>{let d=i.elementaryStreams[l];if(!d)return;let u=e[l],f=a||d.partial===!0;s.range[l]=this.getBufferedTimes(i,n,f,u)}),s.loaded=null,Object.keys(s.range).length)s.buffered=!0,(s.body.endList=i.endList||s.body.endList)&&(this.endListFragments[s.body.type]=s),ns(s)||this.removeParts(i.sn-1,i.type);else this.removeFragment(s.body)}removeParts(t,e){let i=this.activePartLists[e];i&&(this.activePartLists[e]=i.filter((n)=>n.fragment.sn>=t))}fragBuffered(t,e){let i=Si(t),n=this.fragments[i];!n&&e&&(n=this.fragments[i]={body:t,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},t.gap&&(this.hasGaps=!0)),n&&(n.loaded=null,n.buffered=!0)}getBufferedTimes(t,e,i,n){let r={time:[],partial:i},s=t.start,a=t.end,l=t.minEndPTS||a,d=t.maxStartPTS||s;for(let u=0;u<n.length;u++){let f=n.start(u)-this.bufferPadding,E=n.end(u)+this.bufferPadding;if(d>=f&&l<=E){r.time.push({startPTS:Math.max(s,n.start(u)),endPTS:Math.min(a,n.end(u))});break}if(s<E&&a>f){let S=Math.max(s,n.start(u)),T=Math.min(a,n.end(u));T>S&&(r.partial=!0,r.time.push({startPTS:S,endPTS:T}))}else if(a<=f)break}return r}getPartialFragment(t){let e,i,n,r=null,s=0,{bufferPadding:a,fragments:l}=this;return Object.keys(l).forEach((d)=>{let u=l[d];u&&ns(u)&&(i=u.body.start-a,n=u.body.end+a,t>=i&&t<=n&&(e=Math.min(t-i,n-t),s<=e&&(r=u.body,s=e)))}),r}isEndListAppended(t){let e=this.endListFragments[t];return e!==void 0&&(e.buffered||ns(e))}getState(t){let e=Si(t),i=this.fragments[e];return i?i.buffered?ns(i)?Hn:Ie:xr:Ri}isTimeBuffered(t,e,i){let n,r;for(let s=0;s<i.length;s++){if(n=i.start(s)-this.bufferPadding,r=i.end(s)+this.bufferPadding,t>=n&&e<=r)return!0;if(e<=n)return!1}return!1}onFragLoaded(t,e){let{frag:i,part:n}=e;if(i.sn==="initSegment"||i.bitrateTest)return;let r=n?null:e,s=Si(i);this.fragments[s]={body:i,appendedPTS:null,loaded:r,buffered:!1,range:Object.create(null)}}onBufferAppended(t,e){let{frag:i,part:n,timeRanges:r}=e;if(i.sn==="initSegment")return;let s=i.type;if(n){let a=this.activePartLists[s];a||(this.activePartLists[s]=a=[]),a.push(n)}this.timeRanges=r,Object.keys(r).forEach((a)=>{let l=r[a];this.detectEvictedFragments(a,l,s,n)})}onFragBuffered(t,e){this.detectPartialFragments(e)}hasFragment(t){let e=Si(t);return!!this.fragments[e]}hasParts(t){var e;return!((e=this.activePartLists[t])==null||!e.length)}removeFragmentsInRange(t,e,i,n,r){n&&!this.hasGaps||Object.keys(this.fragments).forEach((s)=>{let a=this.fragments[s];if(!a)return;let l=a.body;l.type!==i||n&&!l.gap||l.start<e&&l.end>t&&(a.buffered||r)&&this.removeFragment(l)})}removeFragment(t){let e=Si(t);t.stats.loaded=0,t.clearElementaryStreamInfo();let i=this.activePartLists[t.type];if(i){let n=t.sn;this.activePartLists[t.type]=i.filter((r)=>r.fragment.sn!==n)}delete this.fragments[e],t.endList&&delete this.endListFragments[t.type]}removeAllFragments(){this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1}}function ns(t){var e,i,n;return t.buffered&&(t.body.gap||((e=t.range.video)==null?void 0:e.partial)||((i=t.range.audio)==null?void 0:i.partial)||((n=t.range.audiovideo)==null?void 0:n.partial))}function Si(t){return`${t.type}_${t.level}_${t.sn}`}let js={length:0,start:()=>0,end:()=>0};class ye{static isBuffered(t,e){try{if(t){let i=ye.getBuffered(t);for(let n=0;n<i.length;n++)if(e>=i.start(n)&&e<=i.end(n))return!0}}catch(i){}return!1}static bufferInfo(t,e,i){try{if(t){let n=ye.getBuffered(t),r=[],s;for(s=0;s<n.length;s++)r.push({start:n.start(s),end:n.end(s)});return this.bufferedInfo(r,e,i)}}catch(n){}return{len:0,start:e,end:e,nextStart:void 0}}static bufferedInfo(t,e,i){e=Math.max(0,e),t.sort(function(d,u){return d.start-u.start||u.end-d.end});let n=[];if(i)for(let d=0;d<t.length;d++){let u=n.length;if(u){let f=n[u-1].end;t[d].start-f<i?t[d].end>f&&(n[u-1].end=t[d].end):n.push(t[d])}else n.push(t[d])}else n=t;let r,s=0,a=e,l=e;for(let d=0;d<n.length;d++){let u=n[d].start,f=n[d].end;if(e+i>=u&&e<f)a=u,l=f,s=l-e;else if(e+i<u){r=u;break}}return{len:s,start:a||0,end:l||0,nextStart:r}}static getBuffered(t){try{return t.buffered}catch(e){return C.log("failed to get media.buffered",e),js}}}class dr{constructor(t,e,i,n=0,r=-1,s=!1){this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=t,this.sn=e,this.id=i,this.size=n,this.part=r,this.partial=s}}function Nr(t,e){for(let n=0,r=t.length;n<r;n++){var i;if(((i=t[n])==null?void 0:i.cc)===e)return t[n]}return null}function rs(t,e){if(t){let i=t.start+e;t.start=t.startPTS=i,t.endPTS=i+t.duration}}function Ra(t,e){let i=e.fragments;for(let n=0,r=i.length;n<r;n++)rs(i[n],t);e.fragmentHint&&rs(e.fragmentHint,t),e.alignedSliding=!0}function Ao(t,e,i){e&&(function(n,r,s){if(function(a,l,d){return!(!l||!(d.endCC>d.startCC||a&&a.cc<d.startCC))}(n,s,r)){let a=function(l,d){let u=l.fragments,f=d.fragments;if(!f.length||!u.length)return void C.log("No fragments to align");let E=Nr(u,f[0].cc);if(E&&(!E||E.startPTS))return E;C.log("No frag in previous level to align on")}(s,r);a&&j(a.start)&&(C.log("Adjusting PTS using last level due to CC increase within current level "+r.url),Ra(a.start,r))}}(t,i,e),!i.alignedSliding&&e&&ss(i,e),i.alignedSliding||!e||i.skippedSegments||sr(e,i))}function ss(t,e){if(!t.hasProgramDateTime||!e.hasProgramDateTime)return;let i=t.fragments,n=e.fragments;if(!i.length||!n.length)return;let r,s,a=Math.min(e.endCC,t.endCC);e.startCC<a&&t.startCC<a&&(r=Nr(n,a),s=Nr(i,a)),r&&s||(r=n[Math.floor(n.length/2)],s=Nr(i,r.cc)||i[Math.floor(i.length/2)]);let l=r.programDateTime,d=s.programDateTime;if(!l||!d)return;Ra((d-l)/1000-(s.start-r.start),t)}let qs=Math.pow(2,17);class Da{constructor(t){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=t}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(t,e){let i=t.url;if(!i)return Promise.reject(new sn({type:Ft.NETWORK_ERROR,details:H.FRAG_LOAD_ERROR,fatal:!1,frag:t,error:new Error("Fragment does not have a "+(i?"part list":"url")),networkDetails:null}));this.abort();let n=this.config,r=n.fLoader,s=n.loader;return new Promise((a,l)=>{if(this.loader&&this.loader.destroy(),t.gap){if(t.tagList.some((S)=>S[0]==="GAP"))return void l(zs(t));t.gap=!1}let d=this.loader=t.loader=r?new r(n):new s(n),u=Ys(t),f=wa(n.fragLoadPolicy.default),E={loadPolicy:f,timeout:f.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:t.sn==="initSegment"?1/0:qs};t.stats=d.stats,d.load(u,E,{onSuccess:(S,T,_,D)=>{this.resetLoader(t,d);let w=S.data;_.resetIV&&t.decryptdata&&(t.decryptdata.iv=new Uint8Array(w.slice(0,16)),w=w.slice(16)),a({frag:t,part:null,payload:w,networkDetails:D})},onError:(S,T,_,D)=>{this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.FRAG_LOAD_ERROR,fatal:!1,frag:t,response:L({url:i,data:void 0},S),error:new Error(`HTTP Error ${S.code} ${S.text}`),networkDetails:_,stats:D}))},onAbort:(S,T,_)=>{this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.INTERNAL_ABORTED,fatal:!1,frag:t,error:new Error("Aborted"),networkDetails:_,stats:S}))},onTimeout:(S,T,_)=>{this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,error:new Error(`Timeout after ${E.timeout}ms`),networkDetails:_,stats:S}))},onProgress:(S,T,_,D)=>{e&&e({frag:t,part:null,payload:_,networkDetails:D})}})})}loadPart(t,e,i){this.abort();let n=this.config,r=n.fLoader,s=n.loader;return new Promise((a,l)=>{if(this.loader&&this.loader.destroy(),t.gap||e.gap)return void l(zs(t,e));let d=this.loader=t.loader=r?new r(n):new s(n),u=Ys(t,e),f=wa(n.fragLoadPolicy.default),E={loadPolicy:f,timeout:f.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:qs};e.stats=d.stats,d.load(u,E,{onSuccess:(S,T,_,D)=>{this.resetLoader(t,d),this.updateStatsFromPart(t,e);let w={frag:t,part:e,payload:S.data,networkDetails:D};i(w),a(w)},onError:(S,T,_,D)=>{this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.FRAG_LOAD_ERROR,fatal:!1,frag:t,part:e,response:L({url:u.url,data:void 0},S),error:new Error(`HTTP Error ${S.code} ${S.text}`),networkDetails:_,stats:D}))},onAbort:(S,T,_)=>{t.stats.aborted=e.stats.aborted,this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.INTERNAL_ABORTED,fatal:!1,frag:t,part:e,error:new Error("Aborted"),networkDetails:_,stats:S}))},onTimeout:(S,T,_)=>{this.resetLoader(t,d),l(new sn({type:Ft.NETWORK_ERROR,details:H.FRAG_LOAD_TIMEOUT,fatal:!1,frag:t,part:e,error:new Error(`Timeout after ${E.timeout}ms`),networkDetails:_,stats:S}))}})})}updateStatsFromPart(t,e){let i=t.stats,n=e.stats,r=n.total;if(i.loaded+=n.loaded,r){let l=Math.round(t.duration/e.duration),d=Math.min(Math.round(i.loaded/r),l),u=(l-d)*Math.round(i.loaded/d);i.total=i.loaded+u}else i.total=Math.max(i.loaded,i.total);let s=i.loading,a=n.loading;s.start?s.first+=a.first-a.start:(s.start=a.start,s.first=a.first),s.end=a.end}resetLoader(t,e){t.loader=null,this.loader===e&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),e.destroy()}}function Ys(t,e=null){let i=e||t,n={frag:t,part:e,responseType:"arraybuffer",url:i.url,headers:{},rangeStart:0,rangeEnd:0},r=i.byteRangeStartOffset,s=i.byteRangeEndOffset;if(j(r)&&j(s)){var a;let l=r,d=s;if(t.sn==="initSegment"&&((a=t.decryptdata)==null?void 0:a.method)==="AES-128"){let u=s-r;u%16&&(d=s+(16-u%16)),r!==0&&(n.resetIV=!0,l=r-16)}n.rangeStart=l,n.rangeEnd=d}return n}function zs(t,e){let i=new Error(`GAP ${t.gap?"tag":"attribute"} found`),n={type:Ft.MEDIA_ERROR,details:H.FRAG_GAP,fatal:!1,frag:t,error:i,networkDetails:null};return e&&(n.part=e),(e||t).stats.aborted=!0,new sn(n)}class sn extends Error{constructor(t){super(t.error.message),this.data=void 0,this.data=t}}class Ca{constructor(t,e){this.subtle=void 0,this.aesIV=void 0,this.subtle=t,this.aesIV=e}decrypt(t,e){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},e,t)}}class Ia{constructor(t,e){this.subtle=void 0,this.key=void 0,this.subtle=t,this.key=e}expandKey(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])}}class as{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}uint8ArrayToUint32Array_(t){let e=new DataView(t),i=new Uint32Array(4);for(let n=0;n<4;n++)i[n]=e.getUint32(4*n);return i}initTable(){let t=this.sBox,e=this.invSBox,i=this.subMix,n=i[0],r=i[1],s=i[2],a=i[3],l=this.invSubMix,d=l[0],u=l[1],f=l[2],E=l[3],S=new Uint32Array(256),T=0,_=0,D=0;for(D=0;D<256;D++)S[D]=D<128?D<<1:D<<1^283;for(D=0;D<256;D++){let w=_^_<<1^_<<2^_<<3^_<<4;w=w>>>8^255&w^99,t[T]=w,e[w]=T;let x=S[T],M=S[x],V=S[M],X=257*S[w]^16843008*w;n[T]=X<<24|X>>>8,r[T]=X<<16|X>>>16,s[T]=X<<8|X>>>24,a[T]=X,X=16843009*V^65537*M^257*x^16843008*T,d[w]=X<<24|X>>>8,u[w]=X<<16|X>>>16,f[w]=X<<8|X>>>24,E[w]=X,T?(T=x^S[S[S[V^x]]],_^=S[S[_]]):T=_=1}}expandKey(t){let e=this.uint8ArrayToUint32Array_(t),i=!0,n=0;for(;n<e.length&&i;)i=e[n]===this.key[n],n++;if(i)return;this.key=e;let r=this.keySize=e.length;if(r!==4&&r!==6&&r!==8)throw new Error("Invalid aes key size="+r);let s=this.ksRows=4*(r+6+1),a,l,d=this.keySchedule=new Uint32Array(s),u=this.invKeySchedule=new Uint32Array(s),f=this.sBox,E=this.rcon,S=this.invSubMix,T=S[0],_=S[1],D=S[2],w=S[3],x,M;for(a=0;a<s;a++)a<r?x=d[a]=e[a]:(M=x,a%r==0?(M=M<<8|M>>>24,M=f[M>>>24]<<24|f[M>>>16&255]<<16|f[M>>>8&255]<<8|f[255&M],M^=E[a/r|0]<<24):r>6&&a%r==4&&(M=f[M>>>24]<<24|f[M>>>16&255]<<16|f[M>>>8&255]<<8|f[255&M]),d[a]=x=(d[a-r]^M)>>>0);for(l=0;l<s;l++)a=s-l,M=3&l?d[a]:d[a-4],u[l]=l<4||a<=4?M:T[f[M>>>24]]^_[f[M>>>16&255]]^D[f[M>>>8&255]]^w[f[255&M]],u[l]=u[l]>>>0}networkToHostOrderSwap(t){return t<<24|(65280&t)<<8|(16711680&t)>>8|t>>>24}decrypt(t,e,i){let n=this.keySize+6,r=this.invKeySchedule,s=this.invSBox,a=this.invSubMix,l=a[0],d=a[1],u=a[2],f=a[3],E=this.uint8ArrayToUint32Array_(i),S=E[0],T=E[1],_=E[2],D=E[3],w=new Int32Array(t),x=new Int32Array(w.length),M,V,X,ot,et,vt,St,nt,it,jt,At,Kt,zt,Xt,ht=this.networkToHostOrderSwap;for(;e<w.length;){for(it=ht(w[e]),jt=ht(w[e+1]),At=ht(w[e+2]),Kt=ht(w[e+3]),et=it^r[0],vt=Kt^r[1],St=At^r[2],nt=jt^r[3],zt=4,Xt=1;Xt<n;Xt++)M=l[et>>>24]^d[vt>>16&255]^u[St>>8&255]^f[255&nt]^r[zt],V=l[vt>>>24]^d[St>>16&255]^u[nt>>8&255]^f[255&et]^r[zt+1],X=l[St>>>24]^d[nt>>16&255]^u[et>>8&255]^f[255&vt]^r[zt+2],ot=l[nt>>>24]^d[et>>16&255]^u[vt>>8&255]^f[255&St]^r[zt+3],et=M,vt=V,St=X,nt=ot,zt+=4;M=s[et>>>24]<<24^s[vt>>16&255]<<16^s[St>>8&255]<<8^s[255&nt]^r[zt],V=s[vt>>>24]<<24^s[St>>16&255]<<16^s[nt>>8&255]<<8^s[255&et]^r[zt+1],X=s[St>>>24]<<24^s[nt>>16&255]<<16^s[et>>8&255]<<8^s[255&vt]^r[zt+2],ot=s[nt>>>24]<<24^s[et>>16&255]<<16^s[vt>>8&255]<<8^s[255&St]^r[zt+3],x[e]=ht(M^S),x[e+1]=ht(ot^T),x[e+2]=ht(X^_),x[e+3]=ht(V^D),S=it,T=jt,_=At,D=Kt,e+=4}return x.buffer}}class Pr{constructor(t,{removePKCS7Padding:e=!0}={}){if(this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.useSoftware=t.enableSoftwareAES,this.removePKCS7Padding=e,e)try{let i=self.crypto;i&&(this.subtle=i.subtle||i.webkitSubtle)}catch(i){}this.subtle===null&&(this.useSoftware=!0)}destroy(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null}isSync(){return this.useSoftware}flush(){let{currentResult:t,remainderData:e}=this;if(!t||e)return this.reset(),null;let i=new Uint8Array(t);return this.reset(),this.removePKCS7Padding?function(n){let r=n.byteLength,s=r&&new DataView(n.buffer).getUint8(r-1);return s?Se(n,0,r-s):n}(i):i}reset(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}decrypt(t,e,i){return this.useSoftware?new Promise((n,r)=>{this.softwareDecrypt(new Uint8Array(t),e,i);let s=this.flush();s?n(s.buffer):r(new Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(t),e,i)}softwareDecrypt(t,e,i){let{currentIV:n,currentResult:r,remainderData:s}=this;this.logOnce("JS AES decrypt"),s&&(t=li(s,t),this.remainderData=null);let a=this.getValidChunk(t);if(!a.length)return null;n&&(i=n);let l=this.softwareDecrypter;l||(l=this.softwareDecrypter=new as),l.expandKey(e);let d=r;return this.currentResult=l.decrypt(a.buffer,0,i),this.currentIV=Se(a,-16).buffer,d||null}webCryptoDecrypt(t,e,i){let n=this.subtle;return this.key===e&&this.fastAesKey||(this.key=e,this.fastAesKey=new Ia(n,e)),this.fastAesKey.expandKey().then((r)=>{if(!n)return Promise.reject(new Error("web crypto not initialized"));return this.logOnce("WebCrypto AES decrypt"),new Ca(n,new Uint8Array(i)).decrypt(t.buffer,r)}).catch((r)=>(C.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${r.name}: ${r.message}`),this.onWebCryptoError(t,e,i)))}onWebCryptoError(t,e,i){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(t,e,i);let n=this.flush();if(n)return n.buffer;throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data")}getValidChunk(t){let e=t,i=t.length-t.length%16;return i!==t.length&&(e=Se(t,0,i),this.remainderData=Se(t,i)),e}logOnce(t){this.logEnabled&&(C.log("[decrypter]: "+t),this.logEnabled=!1)}}let _o=function(t){let e="",i=t.length;for(let n=0;n<i;n++)e+=`[${t.start(n).toFixed(3)}-${t.end(n).toFixed(3)}]`;return e},Wi="STOPPED",be="IDLE",Xs="KEY_LOADING",ur="FRAG_LOADING",hr="FRAG_LOADING_WAITING_RETRY",fr="WAITING_TRACK",hn="PARSING",Mr="PARSED",Fr="ENDED",mr="ERROR",an="WAITING_INIT_PTS",Me="WAITING_LEVEL";class Br extends class t{constructor(){this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}destroy(){this.onHandlerDestroying(),this.onHandlerDestroyed()}onHandlerDestroying(){this.clearNextTick(),this.clearInterval()}onHandlerDestroyed(){}hasInterval(){return!!this._tickInterval}hasNextTick(){return!!this._tickTimer}setInterval(e){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}clearInterval(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)}clearNextTick(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)}tick(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}}{constructor(t,e,i,n,r){super(),this.hls=void 0,this.fragPrevious=null,this.fragCurrent=null,this.fragmentTracker=void 0,this.transmuxer=null,this._state=Wi,this.playlistType=void 0,this.media=null,this.mediaBuffer=null,this.config=void 0,this.bitrateTest=!1,this.lastCurrentTime=0,this.nextLoadPosition=0,this.startPosition=0,this.startTimeOffset=null,this.loadedmetadata=!1,this.retryDate=0,this.levels=null,this.fragmentLoader=void 0,this.keyLoader=void 0,this.levelLastLoaded=null,this.startFragRequested=!1,this.decrypter=void 0,this.initPTS=[],this.onvseeking=null,this.onvended=null,this.logPrefix="",this.log=void 0,this.warn=void 0,this.playlistType=r,this.logPrefix=n,this.log=C.log.bind(C,n+":"),this.warn=C.warn.bind(C,n+":"),this.hls=t,this.fragmentLoader=new Da(t.config),this.keyLoader=i,this.fragmentTracker=e,this.config=t.config,this.decrypter=new Pr(t.config),t.on(A.MANIFEST_LOADED,this.onManifestLoaded,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(t){}stopLoad(){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);let t=this.fragCurrent;t!=null&&t.loader&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=Wi}_streamEnded(t,e){if(e.live||t.nextStart||!t.end||!this.media)return!1;let i=e.partList;if(i!=null&&i.length){let r=i[i.length-1];return ye.isBuffered(this.media,r.start+r.duration/2)}let n=e.fragments[e.fragments.length-1].type;return this.fragmentTracker.isEndListAppended(n)}getLevelDetails(){var t;if(this.levels&&this.levelLastLoaded!==null)return(t=this.levelLastLoaded)==null?void 0:t.details}onMediaAttached(t,e){let i=this.media=this.mediaBuffer=e.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),i.addEventListener("seeking",this.onvseeking),i.addEventListener("ended",this.onvended);let n=this.config;this.levels&&n.autoStartLoad&&this.state===Wi&&this.startLoad(n.startPosition)}onMediaDetaching(){let t=this.media;t!=null&&t.ended&&(this.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0),t&&this.onvseeking&&this.onvended&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvended=null),this.keyLoader&&this.keyLoader.detach(),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.fragmentTracker.removeAllFragments(),this.stopLoad()}onMediaSeeking(){let{config:t,fragCurrent:e,media:i,mediaBuffer:n,state:r}=this,s=i?i.currentTime:0,a=ye.bufferInfo(n||i,s,t.maxBufferHole);if(this.log(`media seeking to ${j(s)?s.toFixed(3):s}, state: ${r}`),this.state===Fr)this.resetLoadingState();else if(e){let l=t.maxFragLookUpTolerance,d=e.start-l,u=e.start+e.duration+l;if(!a.len||u<a.start||d>a.end){let f=s>u;(s<d||f)&&(f&&e.loader&&(this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),e.abortRequests(),this.resetLoadingState()),this.fragPrevious=null)}}i&&(this.fragmentTracker.removeFragmentsInRange(s,1/0,this.playlistType,!0),this.lastCurrentTime=s),this.loadedmetadata||a.len||(this.nextLoadPosition=this.startPosition=s),this.tickImmediate()}onMediaEnded(){this.startPosition=this.lastCurrentTime=0}onManifestLoaded(t,e){this.startTimeOffset=e.startTimeOffset,this.initPTS=[]}onHandlerDestroying(){this.hls.off(A.MANIFEST_LOADED,this.onManifestLoaded,this),this.stopLoad(),super.onHandlerDestroying(),this.hls=null}onHandlerDestroyed(){this.state=Wi,this.fragmentLoader&&this.fragmentLoader.destroy(),this.keyLoader&&this.keyLoader.destroy(),this.decrypter&&this.decrypter.destroy(),this.hls=this.log=this.warn=this.decrypter=this.keyLoader=this.fragmentLoader=this.fragmentTracker=null,super.onHandlerDestroyed()}loadFragment(t,e,i){this._loadFragForPlayback(t,e,i)}_loadFragForPlayback(t,e,i){this._doFragLoad(t,e,i,(n)=>{if(this.fragContextChanged(t))return this.warn(`Fragment ${t.sn}${n.part?" p: "+n.part.index:""} of level ${t.level} was dropped during download.`),void this.fragmentTracker.removeFragment(t);t.stats.chunkCount++,this._handleFragmentLoadProgress(n)}).then((n)=>{if(!n)return;let r=this.state;this.fragContextChanged(t)?(r===ur||!this.fragCurrent&&r===hn)&&(this.fragmentTracker.removeFragment(t),this.state=be):(("payload"in n)&&(this.log(`Loaded fragment ${t.sn} of level ${t.level}`),this.hls.trigger(A.FRAG_LOADED,n)),this._handleFragmentLoadComplete(n))}).catch((n)=>{this.state!==Wi&&this.state!==mr&&(this.warn(n),this.resetFragmentLoading(t))})}clearTrackerIfNeeded(t){var e;let{fragmentTracker:i}=this;if(i.getState(t)===xr){let n=t.type,r=this.getFwdBufferInfo(this.mediaBuffer,n),s=Math.max(t.duration,r?r.len:this.config.maxBufferLength);this.reduceMaxBufferLength(s)&&i.removeFragment(t)}else((e=this.mediaBuffer)==null?void 0:e.buffered.length)===0?i.removeAllFragments():i.hasParts(t.type)&&(i.detectPartialFragments({frag:t,part:null,stats:t.stats,id:t.type}),i.getState(t)===Hn&&i.removeFragment(t))}checkLiveUpdate(t){if(t.updated&&!t.live){let e=t.fragments[t.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type})}t.fragments[0]||(t.deltaUpdateFailed=!0)}flushMainBuffer(t,e,i=null){if(!(t-e))return;let n={startOffset:t,endOffset:e,type:i};this.hls.trigger(A.BUFFER_FLUSHING,n)}_loadInitSegment(t,e){this._doFragLoad(t,e).then((i)=>{if(!i||this.fragContextChanged(t)||!this.levels)throw new Error("init load aborted");return i}).then((i)=>{let{hls:n}=this,{payload:r}=i,s=t.decryptdata;if(r&&r.byteLength>0&&s!=null&&s.key&&s.iv&&s.method==="AES-128"){let a=self.performance.now();return this.decrypter.decrypt(new Uint8Array(r),s.key.buffer,s.iv.buffer).catch((l)=>{throw n.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_DECRYPT_ERROR,fatal:!1,error:l,reason:l.message,frag:t}),l}).then((l)=>{let d=self.performance.now();return n.trigger(A.FRAG_DECRYPTED,{frag:t,payload:l,stats:{tstart:a,tdecrypt:d}}),i.payload=l,this.completeInitSegmentLoad(i)})}return this.completeInitSegmentLoad(i)}).catch((i)=>{this.state!==Wi&&this.state!==mr&&(this.warn(i),this.resetFragmentLoading(t))})}completeInitSegmentLoad(t){let{levels:e}=this;if(!e)throw new Error("init load aborted, missing levels");let i=t.frag.stats;this.state=be,t.frag.data=new Uint8Array(t.payload),i.parsing.start=i.buffering.start=self.performance.now(),i.parsing.end=i.buffering.end=self.performance.now(),this.tick()}fragContextChanged(t){let{fragCurrent:e}=this;return!t||!e||t.sn!==e.sn||t.level!==e.level}fragBufferedComplete(t,e){var i,n,r,s;let a=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(`Buffered ${t.type} sn: ${t.sn}${e?" part: "+e.index:""} of ${this.playlistType===me?"level":"track"} ${t.level} (frag:[${((i=t.startPTS)!=null?i:NaN).toFixed(3)}-${((n=t.endPTS)!=null?n:NaN).toFixed(3)}] > buffer:${a?_o(ye.getBuffered(a)):"(detached)"})`),t.sn!=="initSegment"){var l;if(t.type!==Bi){let u=t.elementaryStreams;if(!Object.keys(u).some((f)=>!!u[f]))return void(this.state=be)}let d=(l=this.levels)==null?void 0:l[t.level];d!=null&&d.fragmentError&&(this.log(`Resetting level fragment error count of ${d.fragmentError} on frag buffered`),d.fragmentError=0)}this.state=be,a&&(!this.loadedmetadata&&t.type==me&&a.buffered.length&&((r=this.fragCurrent)==null?void 0:r.sn)===((s=this.fragPrevious)==null?void 0:s.sn)&&(this.loadedmetadata=!0,this.seekToStartPos()),this.tick())}seekToStartPos(){}_handleFragmentLoadComplete(t){let{transmuxer:e}=this;if(!e)return;let{frag:i,part:n,partsLoaded:r}=t,s=!r||r.length===0||r.some((l)=>!l),a=new dr(i.level,i.sn,i.stats.chunkCount+1,0,n?n.index:-1,!s);e.flush(a)}_handleFragmentLoadProgress(t){}_doFragLoad(t,e,i=null,n){var r;let s=e==null?void 0:e.details;if(!this.levels||!s)throw new Error(`frag load aborted, missing level${s?"":" detail"}s`);let a=null;if(!t.encrypted||(r=t.decryptdata)!=null&&r.key?!t.encrypted&&s.encryptedFragments.length&&this.keyLoader.loadClear(t,s.encryptedFragments):(this.log(`Loading key for ${t.sn} of [${s.startSN}-${s.endSN}], ${this.logPrefix==="[stream-controller]"?"level":"track"} ${t.level}`),this.state=Xs,this.fragCurrent=t,a=this.keyLoader.load(t).then((u)=>{if(!this.fragContextChanged(u.frag))return this.hls.trigger(A.KEY_LOADED,u),this.state===Xs&&(this.state=be),u}),this.hls.trigger(A.KEY_LOADING,{frag:t}),this.fragCurrent===null&&(a=Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING")))),i=Math.max(t.start,i||0),this.config.lowLatencyMode&&t.sn!=="initSegment"){let u=s.partList;if(u&&n){i>t.end&&s.fragmentHint&&(t=s.fragmentHint);let f=this.getNextPart(u,t,i);if(f>-1){let E=u[f],S;return this.log(`Loading part sn: ${t.sn} p: ${E.index} cc: ${t.cc} of playlist [${s.startSN}-${s.endSN}] parts [0-${f}-${u.length-1}] ${this.logPrefix==="[stream-controller]"?"level":"track"}: ${t.level}, target: ${parseFloat(i.toFixed(3))}`),this.nextLoadPosition=E.start+E.duration,this.state=ur,S=a?a.then((T)=>!T||this.fragContextChanged(T.frag)?null:this.doFragPartsLoad(t,E,e,n)).catch((T)=>this.handleFragLoadError(T)):this.doFragPartsLoad(t,E,e,n).catch((T)=>this.handleFragLoadError(T)),this.hls.trigger(A.FRAG_LOADING,{frag:t,part:E,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):S}if(!t.url||this.loadedEndOfParts(u,i))return Promise.resolve(null)}}this.log(`Loading fragment ${t.sn} cc: ${t.cc} ${s?"of ["+s.startSN+"-"+s.endSN+"] ":""}${this.logPrefix==="[stream-controller]"?"level":"track"}: ${t.level}, target: ${parseFloat(i.toFixed(3))}`),j(t.sn)&&!this.bitrateTest&&(this.nextLoadPosition=t.start+t.duration),this.state=ur;let l=this.config.progressive,d;return d=l&&a?a.then((u)=>!u||this.fragContextChanged(u==null?void 0:u.frag)?null:this.fragmentLoader.load(t,n)).catch((u)=>this.handleFragLoadError(u)):Promise.all([this.fragmentLoader.load(t,l?n:void 0),a]).then(([u])=>(!l&&u&&n&&n(u),u)).catch((u)=>this.handleFragLoadError(u)),this.hls.trigger(A.FRAG_LOADING,{frag:t,targetBufferTime:i}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):d}doFragPartsLoad(t,e,i,n){return new Promise((r,s)=>{var a;let l=[],d=(a=i.details)==null?void 0:a.partList,u=(f)=>{this.fragmentLoader.loadPart(t,f,n).then((E)=>{l[f.index]=E;let S=E.part;this.hls.trigger(A.FRAG_LOADED,E);let T=Cr(i,t.sn,f.index+1)||_a(d,t.sn,f.index+1);if(!T)return r({frag:t,part:S,partsLoaded:l});u(T)}).catch(s)};u(e)})}handleFragLoadError(t){if("data"in t){let e=t.data;t.data&&e.details===H.INTERNAL_ABORTED?this.handleFragLoadAborted(e.frag,e.part):this.hls.trigger(A.ERROR,e)}else this.hls.trigger(A.ERROR,{type:Ft.OTHER_ERROR,details:H.INTERNAL_EXCEPTION,err:t,error:t,fatal:!0});return null}_handleTransmuxerFlush(t){let e=this.getCurrentContext(t);if(!e||this.state!==hn)return void(this.fragCurrent||this.state===Wi||this.state===mr||(this.state=be));let{frag:i,part:n,level:r}=e,s=self.performance.now();i.stats.parsing.end=s,n&&(n.stats.parsing.end=s),this.updateLevelTiming(i,n,r,t.partial)}getCurrentContext(t){let{levels:e,fragCurrent:i}=this,{level:n,sn:r,part:s}=t;if(e==null||!e[n])return this.warn(`Levels object was unset while buffering fragment ${r} of level ${n}. The current chunk will not be buffered.`),null;let a=e[n],l=s>-1?Cr(a,r,s):null,d=l?l.fragment:function(u,f,E){if(u==null||!u.details)return null;let S=u.details,T=S.fragments[f-S.startSN];return T||(T=S.fragmentHint,T&&T.sn===f?T:f<S.startSN&&E&&E.sn===f?E:null)}(a,r,i);return d?(i&&i!==d&&(d.stats=i.stats),{frag:d,part:l,level:a}):null}bufferFragmentData(t,e,i,n,r){var s;if(!t||this.state!==hn)return;let{data1:a,data2:l}=t,d=a;if(a&&l&&(d=li(a,l)),(s=d)==null||!s.length)return;let u={type:t.type,frag:e,part:i,chunkMeta:n,parent:e.type,data:d};if(this.hls.trigger(A.BUFFER_APPENDING,u),t.dropped&&t.independent&&!i){if(r)return;this.flushBufferGap(e)}}flushBufferGap(t){let e=this.media;if(!e)return;if(!ye.isBuffered(e,e.currentTime))return void this.flushMainBuffer(0,t.start);let i=e.currentTime,n=ye.bufferInfo(e,i,0),r=t.duration,s=Math.min(2*this.config.maxFragLookUpTolerance,0.25*r),a=Math.max(Math.min(t.start-s,n.end-s),i+s);t.start-a>s&&this.flushMainBuffer(a,t.start)}getFwdBufferInfo(t,e){let i=this.getLoadPosition();return j(i)?this.getFwdBufferInfoAtPos(t,i,e):null}getFwdBufferInfoAtPos(t,e,i){let{config:{maxBufferHole:n}}=this,r=ye.bufferInfo(t,e,n);if(r.len===0&&r.nextStart!==void 0){let s=this.fragmentTracker.getBufferedFrag(e,i);if(s&&r.nextStart<s.end)return ye.bufferInfo(t,e,Math.max(r.nextStart,n))}return r}getMaxBufferLength(t){let{config:e}=this,i;return i=t?Math.max(8*e.maxBufferSize/t,e.maxBufferLength):e.maxBufferLength,Math.min(i,e.maxMaxBufferLength)}reduceMaxBufferLength(t){let e=this.config,i=t||e.maxBufferLength;return e.maxMaxBufferLength>=i&&(e.maxMaxBufferLength/=2,this.warn(`Reduce max buffer length to ${e.maxMaxBufferLength}s`),!0)}getAppendedFrag(t,e=me){let i=this.fragmentTracker.getAppendedFrag(t,me);return i&&"fragment"in i?i.fragment:i}getNextFragment(t,e){let i=e.fragments,n=i.length;if(!n)return null;let{config:r}=this,s=i[0].start,a;if(e.live){let l=r.initialLiveManifestSize;if(n<l)return this.warn(`Not enough fragments to start playback (have: ${n}, need: ${l})`),null;(!e.PTSKnown&&!this.startFragRequested&&this.startPosition===-1||t<s)&&(a=this.getInitialLiveFragment(e,i),this.startPosition=this.nextLoadPosition=a?this.hls.liveSyncPosition||a.start:t)}else t<=s&&(a=i[0]);if(!a){let l=r.lowLatencyMode?e.partEnd:e.fragmentEnd;a=this.getFragmentAtPosition(t,l,e)}return this.mapToInitFragWhenRequired(a)}isLoopLoading(t,e){let i=this.fragmentTracker.getState(t);return(i===Ie||i===Hn&&!!t.gap)&&this.nextLoadPosition>e}getNextFragmentLoopLoading(t,e,i,n,r){let s=t.gap,a=this.getNextFragment(this.nextLoadPosition,e);if(a===null)return a;if(t=a,s&&t&&!t.gap&&i.nextStart){let l=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,i.nextStart,n);if(l!==null&&i.len+l.len>=r)return this.log(`buffer full after gaps in "${n}" playlist starting at sn: ${t.sn}`),null}return t}mapToInitFragWhenRequired(t){return t==null||!t.initSegment||t!=null&&t.initSegment.data||this.bitrateTest?t:t.initSegment}getNextPart(t,e,i){let n=-1,r=!1,s=!0;for(let a=0,l=t.length;a<l;a++){let d=t[a];if(s=s&&!d.independent,n>-1&&i<d.start)break;let u=d.loaded;u?n=-1:(r||d.independent||s)&&d.fragment===e&&(n=a),r=u}return n}loadedEndOfParts(t,e){let i=t[t.length-1];return i&&e>i.start&&i.loaded}getInitialLiveFragment(t,e){let i=this.fragPrevious,n=null;if(i){if(t.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: "+i.programDateTime),n=function(r,s,a){if(s===null||!Array.isArray(r)||!r.length||!j(s))return null;if(s<(r[0].programDateTime||0))return null;if(s>=(r[r.length-1].endProgramDateTime||0))return null;a=a||0;for(let l=0;l<r.length;++l){let d=r[l];if(ki(s,a,d))return d}return null}(e,i.endProgramDateTime,this.config.maxFragLookUpTolerance)),!n){let r=i.sn+1;if(r>=t.startSN&&r<=t.endSN){let s=e[r-t.startSN];i.cc===s.cc&&(n=s,this.log("Live playlist, switching playlist, load frag with next SN: "+n.sn))}n||(n=function(s,a){return Ir(s,(l)=>l.cc<a?1:l.cc>a?-1:0)}(e,i.cc),n&&this.log("Live playlist, switching playlist, load frag with same CC: "+n.sn))}}else{let r=this.hls.liveSyncPosition;r!==null&&(n=this.getFragmentAtPosition(r,this.bitrateTest?t.fragmentEnd:t.edge,t))}return n}getFragmentAtPosition(t,e,i){let{config:n}=this,{fragPrevious:r}=this,{fragments:s,endSN:a}=i,{fragmentHint:l}=i,d=n.maxFragLookUpTolerance,u=i.partList,f=!!(n.lowLatencyMode&&u!=null&&u.length&&l),E;if(f&&l&&!this.bitrateTest&&(s=s.concat(l),a=l.sn),t<e)E=or(r,s,t,t>e-d?0:d);else E=s[s.length-1];if(E){let S=E.sn-i.startSN,T=this.fragmentTracker.getState(E);if((T===Ie||T===Hn&&E.gap)&&(r=E),r&&E.sn===r.sn&&(!f||u[0].fragment.sn>E.sn)){if(r&&E.level===r.level){let _=s[S+1];E=E.sn<a&&this.fragmentTracker.getState(_)!==Ie?_:null}}}return E}synchronizeToLiveEdge(t){let{config:e,media:i}=this;if(!i)return;let n=this.hls.liveSyncPosition,r=i.currentTime,s=t.fragments[0].start,a=t.edge,l=r>=s-e.maxFragLookUpTolerance&&r<=a;if(n!==null&&i.duration>n&&(r<n||!l)){let d=e.liveMaxLatencyDuration!==void 0?e.liveMaxLatencyDuration:e.liveMaxLatencyDurationCount*t.targetduration;(!l&&i.readyState<4||r<a-d)&&(this.loadedmetadata||(this.nextLoadPosition=n),i.readyState&&(this.warn(`Playback: ${r.toFixed(3)} is located too far from the end of live sliding playlist: ${a}, reset currentTime to : ${n.toFixed(3)}`),i.currentTime=n))}}alignPlaylists(t,e,i){let n=t.fragments.length;if(!n)return this.warn("No fragments in live playlist"),0;let r=t.fragments[0].start,s=!e,a=t.alignedSliding&&j(r);if(s||!a&&!r){let{fragPrevious:l}=this;Ao(l,i,t);let d=t.fragments[0].start;return this.log(`Live playlist sliding: ${d.toFixed(2)} start-sn: ${e?e.startSN:"na"}->${t.startSN} prev-sn: ${l?l.sn:"na"} fragments: ${n}`),d}return r}waitForCdnTuneIn(t){return t.live&&t.canBlockReload&&t.partTarget&&t.tuneInGoal>Math.max(t.partHoldBack,3*t.partTarget)}setStartPosition(t,e){let i=this.startPosition;if(i<e&&(i=-1),i===-1||this.lastCurrentTime===-1){let n=this.startTimeOffset!==null,r=n?this.startTimeOffset:t.startTimeOffset;r!==null&&j(r)?(i=e+r,r<0&&(i+=t.totalduration),i=Math.min(Math.max(e,i),e+t.totalduration),this.log(`Start time offset ${r} found in ${n?"multivariant":"media"} playlist, adjust startPosition to ${i}`),this.startPosition=i):t.live?i=this.hls.liveSyncPosition||e:this.startPosition=i=0,this.lastCurrentTime=i}this.nextLoadPosition=i}getLoadPosition(){let{media:t}=this,e=0;return this.loadedmetadata&&t?e=t.currentTime:this.nextLoadPosition&&(e=this.nextLoadPosition),e}handleFragLoadAborted(t,e){this.transmuxer&&t.sn!=="initSegment"&&t.stats.aborted&&(this.warn(`Fragment ${t.sn}${e?" part "+e.index:""} of level ${t.level} was aborted`),this.resetFragmentLoading(t))}resetFragmentLoading(t){this.fragCurrent&&(this.fragContextChanged(t)||this.state===hr)||(this.state=be)}onFragmentOrKeyLoadError(t,e){if(e.chunkMeta&&!e.frag){let u=this.getCurrentContext(e.chunkMeta);u&&(e.frag=u.frag)}let i=e.frag;if(!i||i.type!==t||!this.levels)return;var n;if(this.fragContextChanged(i))return void this.warn(`Frag load error must match current frag to retry ${i.url} > ${(n=this.fragCurrent)==null?void 0:n.url}`);let r=e.details===H.FRAG_GAP;r&&this.fragmentTracker.fragBuffered(i,!0);let s=e.errorAction,{action:a,retryCount:l=0,retryConfig:d}=s||{};if(s&&a===ui&&d){this.resetStartWhenNotLoaded(this.levelLastLoaded);let u=Us(d,l);this.warn(`Fragment ${i.sn} of ${t} ${i.level} errored with ${e.details}, retrying loading ${l+1}/${d.maxNumRetry} in ${u}ms`),s.resolved=!0,this.retryDate=self.performance.now()+u,this.state=hr}else if(d&&s){if(this.resetFragmentErrors(t),!(l<d.maxNumRetry))return void C.warn(`${e.details} reached or exceeded max retry (${l})`);r||a===Or||(s.resolved=!0)}else(s==null?void 0:s.action)===un?this.state=Me:this.state=mr;this.tickImmediate()}reduceLengthAndFlushBuffer(t){if(this.state===hn||this.state===Mr){let e=t.parent,i=this.getFwdBufferInfo(this.mediaBuffer,e),n=i&&i.len>0.5;n&&this.reduceMaxBufferLength(i.len);let r=!n;return r&&this.warn(`Buffer full error while media.currentTime is not buffered, flush ${e} buffer`),t.frag&&(this.fragmentTracker.removeFragment(t.frag),this.nextLoadPosition=t.frag.start),this.resetLoadingState(),r}return!1}resetFragmentErrors(t){t===ei&&(this.fragCurrent=null),this.loadedmetadata||(this.startFragRequested=!1),this.state!==Wi&&(this.state=be)}afterBufferFlushed(t,e,i){if(!t)return;let n=ye.getBuffered(t);this.fragmentTracker.detectEvictedFragments(e,n,i),this.state===Fr&&this.resetLoadingState()}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state=be}resetStartWhenNotLoaded(t){if(!this.loadedmetadata){this.startFragRequested=!1;let e=t?t.details:null;e!=null&&e.live?(this.startPosition=-1,this.setStartPosition(e,0),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(t){this.warn(`The loading context changed while buffering fragment ${t.sn} of level ${t.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState()}removeUnbufferedFrags(t=0){this.fragmentTracker.removeFragmentsInRange(t,1/0,this.playlistType,!1,!0)}updateLevelTiming(t,e,i,n){var r;let s=i.details;if(!s)return void this.warn("level.details undefined");if(!Object.keys(t.elementaryStreams).reduce((a,l)=>{let d=t.elementaryStreams[l];if(d){let u=d.endPTS-d.startPTS;if(u<=0)return this.warn(`Could not parse fragment ${t.sn} ${l} duration reliably (${u})`),a||!1;let f=n?0:He(s,t,d.startPTS,d.endPTS,d.startDTS,d.endDTS);return this.hls.trigger(A.LEVEL_PTS_UPDATED,{details:s,level:i,drift:f,type:l,frag:t,start:d.startPTS,end:d.endPTS}),!0}return a},!1)&&((r=this.transmuxer)==null?void 0:r.error)===null){let a=new Error(`Found no media in fragment ${t.sn} of level ${t.level} resetting transmuxer to fallback to playlist timing`);if(i.fragmentError===0&&(i.fragmentError++,t.gap=!0,this.fragmentTracker.removeFragment(t),this.fragmentTracker.fragBuffered(t,!0)),this.warn(a.message),this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,fatal:!1,error:a,frag:t,reason:`Found no media in msn ${t.sn} of level "${i.url}"`}),!this.hls)return;this.resetTransmuxer()}this.state=Mr,this.hls.trigger(A.FRAG_PARSED,{frag:t,part:e})}resetTransmuxer(){this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null)}recoverWorkerError(t){t.event==="demuxerWorker"&&(this.fragmentTracker.removeAllFragments(),this.resetTransmuxer(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState())}set state(t){let e=this._state;e!==t&&(this._state=t,this.log(`${e}->${t}`))}get state(){return this._state}}class os{constructor(){this.chunks=[],this.dataLength=0}push(t){this.chunks.push(t),this.dataLength+=t.length}flush(){let{chunks:t,dataLength:e}=this,i;return t.length?(i=t.length===1?t[0]:function(n,r){let s=new Uint8Array(r),a=0;for(let l=0;l<n.length;l++){let d=n[l];s.set(d,a),a+=d.length}return s}(t,e),this.reset(),i):new Uint8Array(0)}reset(){this.chunks.length=0,this.dataLength=0}}function on(t="",e=90000){return{type:t,id:-1,pid:-1,inputTimeScale:e,sequenceNumber:-1,samples:[],dropped:0}}class ls{constructor(){this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}resetInitSegment(t,e,i,n){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0}}resetTimeStamp(t){this.initPTS=t,this.resetContiguity()}resetContiguity(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}canParse(t,e){return!1}appendFrame(t,e,i){}demux(t,e){this.cachedData&&(t=li(this.cachedData,t),this.cachedData=null);let i,n=Ii(t,0),r=n?n.length:0,s=this._audioTrack,a=this._id3Track,l=n?oi(n):void 0,d=t.length;for((this.basePTS===null||this.frameIndex===0&&j(l))&&(this.basePTS=Lo(l,e,this.initPTS),this.lastPTS=this.basePTS),this.lastPTS===null&&(this.lastPTS=this.basePTS),n&&n.length>0&&a.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:n,type:Fn,duration:Number.POSITIVE_INFINITY});r<d;){if(this.canParse(t,r)){let u=this.appendFrame(s,t,r);u?(this.frameIndex++,this.lastPTS=u.sample.pts,r+=u.length,i=r):r=d}else Je(t,r)?(n=Ii(t,r),a.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:n,type:Fn,duration:Number.POSITIVE_INFINITY}),r+=n.length,i=r):r++;if(r===d&&i!==d){let u=Se(t,i);this.cachedData?this.cachedData=li(this.cachedData,u):this.cachedData=u}}return{audioTrack:s,videoTrack:on(),id3Track:a,textTrack:on()}}demuxSampleAes(t,e,i){return Promise.reject(new Error(`[${this}] This demuxer does not support Sample-AES decryption`))}flush(t){let e=this.cachedData;return e&&(this.cachedData=null,this.demux(e,0)),{audioTrack:this._audioTrack,videoTrack:on(),id3Track:this._id3Track,textTrack:on()}}destroy(){}}let Lo=(t,e,i)=>{if(j(t))return 90*t;return 90000*e+(i?90000*i.baseTime/i.timescale:0)};function Oa(t,e){return t[e]===255&&(246&t[e+1])==240}function xa(t,e){return 1&t[e+1]?7:9}function Js(t,e){return(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5}function cs(t,e){return e+1<t.length&&Oa(t,e)}function wo(t,e){if(cs(t,e)){let i=xa(t,e);if(e+i>=t.length)return!1;let n=Js(t,e);if(n<=i)return!1;let r=e+n;return r===t.length||cs(t,r)}return!1}function Na(t,e,i,n,r){if(!t.samplerate){let s=function(a,l,d,u){let f,E,S,T,_=navigator.userAgent.toLowerCase(),D=u,w=[96000,88200,64000,48000,44100,32000,24000,22050,16000,12000,11025,8000,7350];f=1+((192&l[d+2])>>>6);let x=(60&l[d+2])>>>2;if(!(x>w.length-1))return S=(1&l[d+2])<<2,S|=(192&l[d+3])>>>6,C.log(`manifest codec:${u}, ADTS type:${f}, samplingIndex:${x}`),/firefox/i.test(_)?x>=6?(f=5,T=new Array(4),E=x-3):(f=2,T=new Array(2),E=x):_.indexOf("android")!==-1?(f=2,T=new Array(2),E=x):(f=5,T=new Array(4),u&&(u.indexOf("mp4a.40.29")!==-1||u.indexOf("mp4a.40.5")!==-1)||!u&&x>=6?E=x-3:((u&&u.indexOf("mp4a.40.2")!==-1&&(x>=6&&S===1||/vivaldi/i.test(_))||!u&&S===1)&&(f=2,T=new Array(2)),E=x)),T[0]=f<<3,T[0]|=(14&x)>>1,T[1]|=(1&x)<<7,T[1]|=S<<3,f===5&&(T[1]|=(14&E)>>1,T[2]=(1&E)<<7,T[2]|=8,T[3]=0),{config:T,samplerate:w[x],channelCount:S,codec:"mp4a.40."+f,manifestCodec:D};{let M=new Error("invalid ADTS sampling index:"+x);a.emit(A.ERROR,A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,fatal:!0,error:M,reason:M.message})}}(e,i,n,r);if(!s)return;t.config=s.config,t.samplerate=s.samplerate,t.channelCount=s.channelCount,t.codec=s.codec,t.manifestCodec=s.manifestCodec,C.log(`parsed codec:${t.codec}, rate:${s.samplerate}, channels:${s.channelCount}`)}}function Zi(t){return 92160000/t}function Kn(t,e,i,n,r){let s=n+r*Zi(t.samplerate),a=function(u,f){let E=xa(u,f);if(f+E<=u.length){let S=Js(u,f)-E;if(S>0)return{headerLength:E,frameLength:S}}}(e,i),l;if(a){let{frameLength:u,headerLength:f}=a,E=f+u,S=Math.max(0,i+E-e.length);S?(l=new Uint8Array(E-f),l.set(e.subarray(i+f,e.length),0)):l=e.subarray(i+f,i+E);let T={unit:l,pts:s};return S||t.samples.push(T),{sample:T,length:E,missing:S}}let d=e.length-i;return l=new Uint8Array(d),l.set(e.subarray(i,e.length),0),{sample:{unit:l,pts:s},length:d,missing:-1}}let Vn=null,Ye=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],Pa=[44100,48000,32000,22050,24000,16000,11025,12000,8000],Ma=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],Fa=[0,1,1,4];function Qs(t,e,i,n,r){if(i+24>e.length)return;let s=Zs(e,i);if(s&&i+s.frameLength<=e.length){let a=n+r*(90000*s.samplesPerFrame/s.sampleRate),l={unit:e.subarray(i,i+s.frameLength),pts:a,dts:a};return t.config=[],t.channelCount=s.channelCount,t.samplerate=s.sampleRate,t.samples.push(l),{sample:l,length:s.frameLength,missing:0}}}function Zs(t,e){let i=t[e+1]>>3&3,n=t[e+1]>>1&3,r=t[e+2]>>4&15,s=t[e+2]>>2&3;if(i!==1&&r!==0&&r!==15&&s!==3){let a=t[e+2]>>1&1,l=t[e+3]>>6,d=1000*Ye[14*(i===3?3-n:n===3?3:4)+r-1],u=Pa[3*(i===3?0:i===2?1:2)+s],f=l===3?1:2,E=Ma[i][n],S=Fa[n],T=8*E*S,_=Math.floor(E*d/u+a)*S;if(Vn===null){let D=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);Vn=D?parseInt(D[1]):0}return!!Vn&&Vn<=87&&n===2&&d>=224000&&l===0&&(t[e+3]=128|t[e+3]),{sampleRate:u,channelCount:f,frameLength:_,samplesPerFrame:T}}}function ds(t,e){return t[e]===255&&(224&t[e+1])==224&&(6&t[e+1])!=0}function ta(t,e){return e+1<t.length&&ds(t,e)}function ea(t,e){if(e+1<t.length&&ds(t,e)){let n=Zs(t,e),r=4;n!=null&&n.frameLength&&(r=n.frameLength);let s=e+r;return s===t.length||ta(t,s)}return!1}let Ba=/\/emsg[-/]ID3/i,us=(t,e)=>{let i=0,n=5;e+=n;let r=new Uint32Array(1),s=new Uint32Array(1),a=new Uint8Array(1);for(;n>0;){a[0]=t[e];let l=Math.min(n,8),d=8-l;s[0]=4278190080>>>24+d<<d,r[0]=(a[0]&s[0])>>d,i=i?i<<l|r[0]:r[0],e+=1,n-=l}return i};class ia extends ls{constructor(t){super(),this.observer=void 0,this.observer=t}resetInitSegment(t,e,i,n){super.resetInitSegment(t,e,i,n),this._audioTrack={container:"audio/ac-3",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"ac3",samples:[],manifestCodec:e,duration:n,inputTimeScale:90000,dropped:0}}canParse(t,e){return e+64<t.length}appendFrame(t,e,i){let n=hs(t,e,i,this.basePTS,this.frameIndex);if(n!==-1)return{sample:t.samples[t.samples.length-1],length:n,missing:0}}static probe(t){if(!t)return!1;let e=Ii(t,0);if(!e)return!1;let i=e.length;return t[i]===11&&t[i+1]===119&&oi(e)!==void 0&&us(t,i)<16}}function hs(t,e,i,n,r){if(i+8>e.length)return-1;if(e[i]!==11||e[i+1]!==119)return-1;let s=e[i+4]>>6;if(s>=3)return-1;let a=[48000,44100,32000][s],l=63&e[i+4],d=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*l+s];if(i+d>e.length)return-1;let u=e[i+6]>>5,f=0;u===2?f+=2:(1&u&&u!==1&&(f+=2),4&u&&(f+=2));let E=(e[i+6]<<8|e[i+7])>>12-f&1,S=[2,1,2,3,3,4,4,5][u]+E,T=e[i+5]>>3,_=7&e[i+5],D=new Uint8Array([s<<6|T<<1|_>>2,(3&_)<<6|u<<3|E<<2|l>>4,l<<4&224]),w=n+r*(1536/a*90000),x=e.subarray(i,i+d);return t.config=D,t.channelCount=S,t.samplerate=a,t.samples.push({unit:x,pts:w}),d}class fs{constructor(t){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=t,this.bytesAvailable=t.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){let t=this.data,e=this.bytesAvailable,i=t.byteLength-e,n=new Uint8Array(4),r=Math.min(4,e);if(r===0)throw new Error("no bytes available");n.set(t.subarray(i,i+r)),this.word=new DataView(n.buffer).getUint32(0),this.bitsAvailable=8*r,this.bytesAvailable-=r}skipBits(t){let e;t=Math.min(t,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>t?(this.word<<=t,this.bitsAvailable-=t):(e=(t-=this.bitsAvailable)>>3,t-=e<<3,this.bytesAvailable-=e,this.loadWord(),this.word<<=t,this.bitsAvailable-=t)}readBits(t){let e=Math.min(this.bitsAvailable,t),i=this.word>>>32-e;if(t>32&&C.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0)this.word<<=e;else{if(!(this.bytesAvailable>0))throw new Error("no bits available");this.loadWord()}return e=t-e,e>0&&this.bitsAvailable?i<<e|this.readBits(e):i}skipLZ(){let t;for(t=0;t<this.bitsAvailable;++t)if((this.word&2147483648>>>t)!=0)return this.word<<=t,this.bitsAvailable-=t,t;return this.loadWord(),t+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){let t=this.skipLZ();return this.readBits(t+1)-1}readEG(){let t=this.readUEG();return 1&t?1+t>>>1:-1*(t>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}skipScalingList(t){let e,i=8,n=8;for(let r=0;r<t;r++)n!==0&&(e=this.readEG(),n=(i+e+256)%256),i=n===0?i:n}readSPS(){let t,e,i,n=0,r=0,s=0,a=0,l=this.readUByte.bind(this),d=this.readBits.bind(this),u=this.readUEG.bind(this),f=this.readBoolean.bind(this),E=this.skipBits.bind(this),S=this.skipEG.bind(this),T=this.skipUEG.bind(this),_=this.skipScalingList.bind(this);l();let D=l();if(d(5),E(3),l(),T(),D===100||D===110||D===122||D===244||D===44||D===83||D===86||D===118||D===128){let ot=u();if(ot===3&&E(1),T(),T(),E(1),f())for(e=ot!==3?8:12,i=0;i<e;i++)f()&&_(i<6?16:64)}T();let w=u();if(w===0)u();else if(w===1)for(E(1),S(),S(),t=u(),i=0;i<t;i++)S();T(),E(1);let x=u(),M=u(),V=d(1);V===0&&E(1),E(1),f()&&(n=u(),r=u(),s=u(),a=u());let X=[1,1];if(f()&&f())switch(l()){case 1:X=[1,1];break;case 2:X=[12,11];break;case 3:X=[10,11];break;case 4:X=[16,11];break;case 5:X=[40,33];break;case 6:X=[24,11];break;case 7:X=[20,11];break;case 8:X=[32,11];break;case 9:X=[80,33];break;case 10:X=[18,11];break;case 11:X=[15,11];break;case 12:X=[64,33];break;case 13:X=[160,99];break;case 14:X=[4,3];break;case 15:X=[3,2];break;case 16:X=[2,1];break;case 255:X=[l()<<8|l(),l()<<8|l()]}return{width:Math.ceil(16*(x+1)-2*n-2*r),height:(2-V)*(M+1)*16-(V?2:4)*(s+a),pixelRatio:X}}readSliceType(){return this.readUByte(),this.readUEG(),this.readUEG()}}class na extends class t{constructor(){this.VideoSample=null}createVideoSample(e,i,n,r){return{key:e,frame:!1,pts:i,dts:n,units:[],debug:r,length:0}}getLastNalUnit(e){var i;let n,r=this.VideoSample;if(r&&r.units.length!==0||(r=e[e.length-1]),(i=r)!=null&&i.units){let s=r.units;n=s[s.length-1]}return n}pushAccessUnit(e,i){if(e.units.length&&e.frame){if(e.pts===void 0){let n=i.samples,r=n.length;if(!r)return void i.dropped++;{let s=n[r-1];e.pts=s.pts,e.dts=s.dts}}i.samples.push(e)}e.debug.length&&C.log(e.pts+"/"+e.dts+":"+e.debug)}}{parseAVCPES(t,e,i,n,r){let s=this.parseAVCNALu(t,i.data),a,l=this.VideoSample,d=!1;i.data=null,l&&s.length&&!t.audFound&&(this.pushAccessUnit(l,t),l=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts,"")),s.forEach((u)=>{var f;switch(u.type){case 1:{let _=!1;a=!0;let D=u.data;if(d&&D.length>4){let w=new fs(D).readSliceType();w!==2&&w!==4&&w!==7&&w!==9||(_=!0)}var E;if(_)(E=l)!=null&&E.frame&&!l.key&&(this.pushAccessUnit(l,t),l=this.VideoSample=null);l||(l=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts,"")),l.frame=!0,l.key=_;break}case 5:a=!0,(f=l)!=null&&f.frame&&!l.key&&(this.pushAccessUnit(l,t),l=this.VideoSample=null),l||(l=this.VideoSample=this.createVideoSample(!0,i.pts,i.dts,"")),l.key=!0,l.frame=!0;break;case 6:a=!0,Jr(u.data,1,i.pts,e.samples);break;case 7:{var S,T;a=!0,d=!0;let _=u.data,D=new fs(_).readSPS();if(!t.sps||t.width!==D.width||t.height!==D.height||((S=t.pixelRatio)==null?void 0:S[0])!==D.pixelRatio[0]||((T=t.pixelRatio)==null?void 0:T[1])!==D.pixelRatio[1]){t.width=D.width,t.height=D.height,t.pixelRatio=D.pixelRatio,t.sps=[_],t.duration=r;let w=_.subarray(1,4),x="avc1.";for(let M=0;M<3;M++){let V=w[M].toString(16);V.length<2&&(V="0"+V),x+=V}t.codec=x}break}case 8:a=!0,t.pps=[u.data];break;case 9:a=!0,t.audFound=!0,l&&this.pushAccessUnit(l,t),l=this.VideoSample=this.createVideoSample(!1,i.pts,i.dts,"");break;case 12:a=!0;break;default:a=!1,l&&(l.debug+="unknown NAL "+u.type+" ")}if(l&&a)l.units.push(u)}),n&&l&&(this.pushAccessUnit(l,t),this.VideoSample=null)}parseAVCNALu(t,e){let i=e.byteLength,n=t.naluState||0,r=n,s=[],a,l,d,u=0,f=-1,E=0;for(n===-1&&(f=0,E=31&e[0],n=0,u=1);u<i;)if(a=e[u++],n)if(n!==1)if(a)if(a===1){if(l=u-n-1,f>=0){let S={data:e.subarray(f,l),type:E};s.push(S)}else{let S=this.getLastNalUnit(t.samples);S&&(r&&u<=4-r&&S.state&&(S.data=S.data.subarray(0,S.data.byteLength-r)),l>0&&(S.data=li(S.data,e.subarray(0,l)),S.state=0))}u<i?(d=31&e[u],f=u,E=d,n=0):n=-1}else n=0;else n=3;else n=a?0:2;else n=a?0:1;if(f>=0&&n>=0){let S={data:e.subarray(f,i),type:E,state:n};s.push(S)}if(s.length===0){let S=this.getLastNalUnit(t.samples);S&&(S.data=li(S.data,e))}return t.naluState=n,s}}class ra{constructor(t,e,i){this.keyData=void 0,this.decrypter=void 0,this.keyData=i,this.decrypter=new Pr(e,{removePKCS7Padding:!1})}decryptBuffer(t){return this.decrypter.decrypt(t,this.keyData.key.buffer,this.keyData.iv.buffer)}decryptAacSample(t,e,i){let n=t[e].unit;if(n.length<=16)return;let r=n.subarray(16,n.length-n.length%16),s=r.buffer.slice(r.byteOffset,r.byteOffset+r.length);this.decryptBuffer(s).then((a)=>{let l=new Uint8Array(a);n.set(l,16),this.decrypter.isSync()||this.decryptAacSamples(t,e+1,i)})}decryptAacSamples(t,e,i){for(;;e++){if(e>=t.length)return void i();if(!(t[e].unit.length<32)&&(this.decryptAacSample(t,e,i),!this.decrypter.isSync()))return}}getAvcEncryptedData(t){let e=16*Math.floor((t.length-48)/160)+16,i=new Int8Array(e),n=0;for(let r=32;r<t.length-16;r+=160,n+=16)i.set(t.subarray(r,r+16),n);return i}getAvcDecryptedUnit(t,e){let i=new Uint8Array(e),n=0;for(let r=32;r<t.length-16;r+=160,n+=16)t.set(i.subarray(n,n+16),r);return t}decryptAvcSample(t,e,i,n,r){let s=Xn(r.data),a=this.getAvcEncryptedData(s);this.decryptBuffer(a.buffer).then((l)=>{r.data=this.getAvcDecryptedUnit(s,l),this.decrypter.isSync()||this.decryptAvcSamples(t,e,i+1,n)})}decryptAvcSamples(t,e,i,n){if(t instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;e++,i=0){if(e>=t.length)return void n();let r=t[e].units;for(;!(i>=r.length);i++){let s=r[i];if(!(s.data.length<=48||s.type!==1&&s.type!==5||(this.decryptAvcSample(t,e,i,n,s),this.decrypter.isSync())))return}}}}class fn{constructor(t,e,i){this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._duration=0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=t,this.config=e,this.typeSupported=i,this.videoParser=new na}static probe(t){let e=fn.syncOffset(t);return e>0&&C.warn("MPEG2-TS detected but first sync word found @ offset "+e),e!==-1}static syncOffset(t){let e=t.length,i=Math.min(940,e-188)+1,n=0;for(;n<i;){let r=!1,s=-1,a=0;for(let l=n;l<e;l+=188){if(t[l]!==71||e-l!=188&&t[l+188]!==71){if(a)return-1;break}if(a++,s===-1&&(s=l,s!==0&&(i=Math.min(s+18612,t.length-188)+1)),r||(r=ms(t,l)===0),r&&a>1&&(s===0&&a>2||l+188>i))return s}n++}return-1}static createTrack(t,e){return{container:t==="video"||t==="audio"?"video/mp2t":void 0,type:t,id:pe[t],pid:-1,inputTimeScale:90000,sequenceNumber:0,samples:[],dropped:0,duration:t==="audio"?e:void 0}}resetInitSegment(t,e,i,n){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=fn.createTrack("video"),this._audioTrack=fn.createTrack("audio",n),this._id3Track=fn.createTrack("id3"),this._txtTrack=fn.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.remainderData=null,this.audioCodec=e,this.videoCodec=i,this._duration=n}resetTimeStamp(){}resetContiguity(){let{_audioTrack:t,_videoTrack:e,_id3Track:i}=this;t&&(t.pesData=null),e&&(e.pesData=null),i&&(i.pesData=null),this.aacOverFlow=null,this.remainderData=null}demux(t,e,i=!1,n=!1){let r;i||(this.sampleAes=null);let s=this._videoTrack,a=this._audioTrack,l=this._id3Track,d=this._txtTrack,u=s.pid,f=s.pesData,E=a.pid,S=l.pid,T=a.pesData,_=l.pesData,D=null,w=this.pmtParsed,x=this._pmtId,M=t.length;if(this.remainderData&&(M=(t=li(this.remainderData,t)).length,this.remainderData=null),M<188&&!n)return this.remainderData=t,{audioTrack:a,videoTrack:s,id3Track:l,textTrack:d};let V=Math.max(0,fn.syncOffset(t));M-=(M-V)%188,M<t.byteLength&&!n&&(this.remainderData=new Uint8Array(t.buffer,M,t.buffer.byteLength-M));let X=0;for(let et=V;et<M;et+=188)if(t[et]===71){let vt=!!(64&t[et+1]),St=ms(t,et),nt;if((48&t[et+3])>>4>1){if(nt=et+5+t[et+4],nt===et+188)continue}else nt=et+4;switch(St){case u:vt&&(f&&(r=Wn(f))&&this.videoParser.parseAVCPES(s,d,r,!1,this._duration),f={data:[],size:0}),f&&(f.data.push(t.subarray(nt,et+188)),f.size+=et+188-nt);break;case E:if(vt){if(T&&(r=Wn(T)))switch(a.segmentCodec){case"aac":this.parseAACPES(a,r);break;case"mp3":this.parseMPEGPES(a,r);break;case"ac3":this.parseAC3PES(a,r)}T={data:[],size:0}}T&&(T.data.push(t.subarray(nt,et+188)),T.size+=et+188-nt);break;case S:vt&&(_&&(r=Wn(_))&&this.parseID3PES(l,r),_={data:[],size:0}),_&&(_.data.push(t.subarray(nt,et+188)),_.size+=et+188-nt);break;case 0:vt&&(nt+=t[nt]+1),x=this._pmtId=Ua(t,nt);break;case x:{vt&&(nt+=t[nt]+1);let it=sa(t,nt,this.typeSupported,i);u=it.videoPid,u>0&&(s.pid=u,s.segmentCodec=it.segmentVideoCodec),E=it.audioPid,E>0&&(a.pid=E,a.segmentCodec=it.segmentAudioCodec),S=it.id3Pid,S>0&&(l.pid=S),D===null||w||(C.warn(`MPEG-TS PMT found at ${et} after unknown PID '${D}'. Backtracking to sync byte @${V} to parse all TS packets.`),D=null,et=V-188),w=this.pmtParsed=!0;break}case 17:case 8191:break;default:D=St}}else X++;if(X>0){let et=new Error(`Found ${X} TS packet/s that do not start with 0x47`);this.observer.emit(A.ERROR,A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,fatal:!1,error:et,reason:et.message})}s.pesData=f,a.pesData=T,l.pesData=_;let ot={audioTrack:a,videoTrack:s,id3Track:l,textTrack:d};return n&&this.extractRemainingSamples(ot),ot}flush(){let{remainderData:t}=this,e;return this.remainderData=null,e=t?this.demux(t,-1,!1,!0):{videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(e),this.sampleAes?this.decrypt(e,this.sampleAes):e}extractRemainingSamples(t){let{audioTrack:e,videoTrack:i,id3Track:n,textTrack:r}=t,s=i.pesData,a=e.pesData,l=n.pesData,d;if(s&&(d=Wn(s))?(this.videoParser.parseAVCPES(i,r,d,!0,this._duration),i.pesData=null):i.pesData=s,a&&(d=Wn(a))){switch(e.segmentCodec){case"aac":this.parseAACPES(e,d);break;case"mp3":this.parseMPEGPES(e,d);break;case"ac3":this.parseAC3PES(e,d)}e.pesData=null}else a!=null&&a.size&&C.log("last AAC PES packet truncated,might overlap between fragments"),e.pesData=a;l&&(d=Wn(l))?(this.parseID3PES(n,d),n.pesData=null):n.pesData=l}demuxSampleAes(t,e,i){let n=this.demux(t,i,!0,!this.config.progressive),r=this.sampleAes=new ra(this.observer,this.config,e);return this.decrypt(n,r)}decrypt(t,e){return new Promise((i)=>{let{audioTrack:n,videoTrack:r}=t;n.samples&&n.segmentCodec==="aac"?e.decryptAacSamples(n.samples,0,()=>{r.samples?e.decryptAvcSamples(r.samples,0,0,()=>{i(t)}):i(t)}):r.samples&&e.decryptAvcSamples(r.samples,0,0,()=>{i(t)})})}destroy(){this._duration=0}parseAACPES(t,e){let i=0,n=this.aacOverFlow,r,s,a,l=e.data;if(n){this.aacOverFlow=null;let f=n.missing,E=n.sample.unit.byteLength;if(f===-1)l=li(n.sample.unit,l);else{let S=E-f;n.sample.unit.set(l.subarray(0,f),S),t.samples.push(n.sample),i=n.missing}}for(r=i,s=l.length;r<s-1&&!cs(l,r);r++);if(r!==i){let f,E=r<s-1;f=E?"AAC PES did not start with ADTS header,offset:"+r:"No ADTS header found in AAC PES";let S=new Error(f);if(C.warn("parsing error: "+f),this.observer.emit(A.ERROR,A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,fatal:!1,levelRetry:E,error:S,reason:f}),!E)return}if(Na(t,this.observer,l,r,this.audioCodec),e.pts!==void 0)a=e.pts;else{if(!n)return void C.warn("[tsdemuxer]: AAC PES unknown PTS");{let f=Zi(t.samplerate);a=n.sample.pts+f}}let d,u=0;for(;r<s;){if(d=Kn(t,l,r,a,u),r+=d.length,d.missing){this.aacOverFlow=d;break}for(u++;r<s-1&&!cs(l,r);r++);}}parseMPEGPES(t,e){let i=e.data,n=i.length,r=0,s=0,a=e.pts;if(a!==void 0)for(;s<n;)if(ta(i,s)){let l=Qs(t,i,s,a,r);if(!l)break;s+=l.length,r++}else s++;else C.warn("[tsdemuxer]: MPEG PES unknown PTS")}parseAC3PES(t,e){{let{data:i,pts:n}=e;if(n===void 0)return void C.warn("[tsdemuxer]: AC3 PES unknown PTS");let r=i.length,s,a=0,l=0;for(;l<r&&(s=hs(t,i,l,n,a++))>0;)l+=s}}parseID3PES(t,e){if(e.pts===void 0)return void C.warn("[tsdemuxer]: ID3 PES unknown PTS");let i=z({},e,{type:this._videoTrack?m:Fn,duration:Number.POSITIVE_INFINITY});t.samples.push(i)}}function ms(t,e){return((31&t[e+1])<<8)+t[e+2]}function Ua(t,e){return(31&t[e+10])<<8|t[e+11]}function sa(t,e,i,n){let r={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},s=e+3+((15&t[e+1])<<8|t[e+2])-4;for(e+=12+((15&t[e+10])<<8|t[e+11]);e<s;){let a=ms(t,e),l=(15&t[e+3])<<8|t[e+4];switch(t[e]){case 207:if(!n){gs("ADTS AAC");break}case 15:r.audioPid===-1&&(r.audioPid=a);break;case 21:r.id3Pid===-1&&(r.id3Pid=a);break;case 219:if(!n){gs("H.264");break}case 27:r.videoPid===-1&&(r.videoPid=a,r.segmentVideoCodec="avc");break;case 3:case 4:i.mpeg||i.mp3?r.audioPid===-1&&(r.audioPid=a,r.segmentAudioCodec="mp3"):C.log("MPEG audio found, not supported in this browser");break;case 193:if(!n){gs("AC-3");break}case 129:i.ac3?r.audioPid===-1&&(r.audioPid=a,r.segmentAudioCodec="ac3"):C.log("AC-3 audio found, not supported in this browser");break;case 6:if(r.audioPid===-1&&l>0){let d=e+5,u=l;for(;u>2;){switch(t[d]){case 106:i.ac3!==!0?C.log("AC-3 audio found, not supported in this browser for now"):(r.audioPid=a,r.segmentAudioCodec="ac3")}let f=t[d+1]+2;d+=f,u-=f}}break;case 194:case 135:C.warn("Unsupported EC-3 in M2TS found");break;case 36:C.warn("Unsupported HEVC in M2TS found")}e+=l+5}return r}function gs(t){C.log(t+" with AES-128-CBC encryption found in unencrypted stream")}function Wn(t){let e,i,n,r,s,a=0,l=t.data;if(!t||t.size===0)return null;for(;l[0].length<19&&l.length>1;)l[0]=li(l[0],l[1]),l.splice(1,1);if(e=l[0],(e[0]<<16)+(e[1]<<8)+e[2]===1){if(i=(e[4]<<8)+e[5],i&&i>t.size-6)return null;let d=e[7];192&d&&(r=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,64&d?(s=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2,r-s>5400000&&(C.warn(Math.round((r-s)/90000)+"s delta between PTS and DTS, align them"),r=s)):s=r),n=e[8];let u=n+9;if(t.size<=u)return null;t.size-=u;let f=new Uint8Array(t.size);for(let E=0,S=l.length;E<S;E++){e=l[E];let T=e.byteLength;if(u){if(u>T){u-=T;continue}e=e.subarray(u),T-=u,u=0}f.set(e,a),a+=T}return i&&(i-=n+3),{data:f,pts:r,dts:s,len:i}}return null}class Ur{static getSilentFrame(t,e){switch(t){case"mp4a.40.2":if(e===1)return new Uint8Array([0,200,0,128,35,128]);if(e===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(e===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(e===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(e===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(e===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(e===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(e===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(e===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}let h=Math.pow(2,32)-1;class g{static init(){let t;for(t in g.types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},g.types)g.types.hasOwnProperty(t)&&(g.types[t]=[t.charCodeAt(0),t.charCodeAt(1),t.charCodeAt(2),t.charCodeAt(3)]);let e=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),i=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);g.HDLR_TYPES={video:e,audio:i};let n=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),r=new Uint8Array([0,0,0,0,0,0,0,0]);g.STTS=g.STSC=g.STCO=r,g.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),g.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),g.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),g.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);let s=new Uint8Array([105,115,111,109]),a=new Uint8Array([97,118,99,49]),l=new Uint8Array([0,0,0,1]);g.FTYP=g.box(g.types.ftyp,s,l,s,a),g.DINF=g.box(g.types.dinf,g.box(g.types.dref,n))}static box(t,...e){let i=8,n=e.length,r=n;for(;n--;)i+=e[n].byteLength;let s=new Uint8Array(i);for(s[0]=i>>24&255,s[1]=i>>16&255,s[2]=i>>8&255,s[3]=255&i,s.set(t,4),n=0,i=8;n<r;n++)s.set(e[n],i),i+=e[n].byteLength;return s}static hdlr(t){return g.box(g.types.hdlr,g.HDLR_TYPES[t])}static mdat(t){return g.box(g.types.mdat,t)}static mdhd(t,e){e*=t;let i=Math.floor(e/(h+1)),n=Math.floor(e%(h+1));return g.box(g.types.mdhd,new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n,85,196,0,0]))}static mdia(t){return g.box(g.types.mdia,g.mdhd(t.timescale,t.duration),g.hdlr(t.type),g.minf(t))}static mfhd(t){return g.box(g.types.mfhd,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t]))}static minf(t){return t.type==="audio"?g.box(g.types.minf,g.box(g.types.smhd,g.SMHD),g.DINF,g.stbl(t)):g.box(g.types.minf,g.box(g.types.vmhd,g.VMHD),g.DINF,g.stbl(t))}static moof(t,e,i){return g.box(g.types.moof,g.mfhd(t),g.traf(i,e))}static moov(t){let e=t.length,i=[];for(;e--;)i[e]=g.trak(t[e]);return g.box.apply(null,[g.types.moov,g.mvhd(t[0].timescale,t[0].duration)].concat(i).concat(g.mvex(t)))}static mvex(t){let e=t.length,i=[];for(;e--;)i[e]=g.trex(t[e]);return g.box.apply(null,[g.types.mvex,...i])}static mvhd(t,e){e*=t;let i=Math.floor(e/(h+1)),n=Math.floor(e%(h+1)),r=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,i>>24,i>>16&255,i>>8&255,255&i,n>>24,n>>16&255,n>>8&255,255&n,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return g.box(g.types.mvhd,r)}static sdtp(t){let e=t.samples||[],i=new Uint8Array(4+e.length),n,r;for(n=0;n<e.length;n++)r=e[n].flags,i[n+4]=r.dependsOn<<4|r.isDependedOn<<2|r.hasRedundancy;return g.box(g.types.sdtp,i)}static stbl(t){return g.box(g.types.stbl,g.stsd(t),g.box(g.types.stts,g.STTS),g.box(g.types.stsc,g.STSC),g.box(g.types.stsz,g.STSZ),g.box(g.types.stco,g.STCO))}static avc1(t){let e,i,n,r=[],s=[];for(e=0;e<t.sps.length;e++)i=t.sps[e],n=i.byteLength,r.push(n>>>8&255),r.push(255&n),r=r.concat(Array.prototype.slice.call(i));for(e=0;e<t.pps.length;e++)i=t.pps[e],n=i.byteLength,s.push(n>>>8&255),s.push(255&n),s=s.concat(Array.prototype.slice.call(i));let a=g.box(g.types.avcC,new Uint8Array([1,r[3],r[4],r[5],255,224|t.sps.length].concat(r).concat([t.pps.length]).concat(s))),l=t.width,d=t.height,u=t.pixelRatio[0],f=t.pixelRatio[1];return g.box(g.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,d>>8&255,255&d,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),a,g.box(g.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),g.box(g.types.pasp,new Uint8Array([u>>24,u>>16&255,u>>8&255,255&u,f>>24,f>>16&255,f>>8&255,255&f])))}static esds(t){let e=t.config.length;return new Uint8Array([0,0,0,0,3,23+e,0,1,0,4,15+e,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([e]).concat(t.config).concat([6,1,2]))}static audioStsd(t){let e=t.samplerate;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,t.channelCount,0,16,0,0,0,0,e>>8&255,255&e,0,0])}static mp4a(t){return g.box(g.types.mp4a,g.audioStsd(t),g.box(g.types.esds,g.esds(t)))}static mp3(t){return g.box(g.types[".mp3"],g.audioStsd(t))}static ac3(t){return g.box(g.types["ac-3"],g.audioStsd(t),g.box(g.types.dac3,t.config))}static stsd(t){return t.type==="audio"?t.segmentCodec==="mp3"&&t.codec==="mp3"?g.box(g.types.stsd,g.STSD,g.mp3(t)):t.segmentCodec==="ac3"?g.box(g.types.stsd,g.STSD,g.ac3(t)):g.box(g.types.stsd,g.STSD,g.mp4a(t)):g.box(g.types.stsd,g.STSD,g.avc1(t))}static tkhd(t){let e=t.id,i=t.duration*t.timescale,n=t.width,r=t.height,s=Math.floor(i/(h+1)),a=Math.floor(i%(h+1));return g.box(g.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,0,0,0,0,s>>24,s>>16&255,s>>8&255,255&s,a>>24,a>>16&255,a>>8&255,255&a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,n>>8&255,255&n,0,0,r>>8&255,255&r,0,0]))}static traf(t,e){let i=g.sdtp(t),n=t.id,r=Math.floor(e/(h+1)),s=Math.floor(e%(h+1));return g.box(g.types.traf,g.box(g.types.tfhd,new Uint8Array([0,0,0,0,n>>24,n>>16&255,n>>8&255,255&n])),g.box(g.types.tfdt,new Uint8Array([1,0,0,0,r>>24,r>>16&255,r>>8&255,255&r,s>>24,s>>16&255,s>>8&255,255&s])),g.trun(t,i.length+16+20+8+16+8+8),i)}static trak(t){return t.duration=t.duration||4294967295,g.box(g.types.trak,g.tkhd(t),g.mdia(t))}static trex(t){let e=t.id;return g.box(g.types.trex,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(t,e){let i=t.samples||[],n=i.length,r=12+16*n,s=new Uint8Array(r),a,l,d,u,f,E;for(e+=8+r,s.set([t.type==="video"?1:0,0,15,1,n>>>24&255,n>>>16&255,n>>>8&255,255&n,e>>>24&255,e>>>16&255,e>>>8&255,255&e],0),a=0;a<n;a++)l=i[a],d=l.duration,u=l.size,f=l.flags,E=l.cts,s.set([d>>>24&255,d>>>16&255,d>>>8&255,255&d,u>>>24&255,u>>>16&255,u>>>8&255,255&u,f.isLeading<<2|f.dependsOn,f.isDependedOn<<6|f.hasRedundancy<<4|f.paddingValue<<1|f.isNonSync,61440&f.degradPrio,15&f.degradPrio,E>>>24&255,E>>>16&255,E>>>8&255,255&E],12+16*a);return g.box(g.types.trun,s)}static initSegment(t){g.types||g.init();let e=g.moov(t);return li(g.FTYP,e)}}g.types=void 0,g.HDLR_TYPES=void 0,g.STTS=void 0,g.STSC=void 0,g.STCO=void 0,g.STSZ=void 0,g.VMHD=void 0,g.SMHD=void 0,g.STSD=void 0,g.FTYP=void 0,g.DINF=void 0;function v(t,e,i=1,n=!1){let r=t*e*i;return n?Math.round(r):r}function R(t,e=!1){return v(t,1000,0.000011111111111111112,e)}let I,K=null,Y=null;class ${constructor(t,e,i,n=""){if(this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextAvcDts=null,this.nextAudioPts=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=t,this.config=e,this.typeSupported=i,this.ISGenerated=!1,K===null){let r=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);K=r?parseInt(r[1]):0}if(Y===null){let r=navigator.userAgent.match(/Safari\/(\d+)/i);Y=r?parseInt(r[1]):0}}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(t){C.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=t}resetNextTimestamp(){C.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){C.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(t){let e=!1,i=t.reduce((n,r)=>{let s=r.pts-n;return s<-4294967296?(e=!0,Z(n,r.pts)):s>0?n:r.pts},t[0].pts);return e&&C.debug("PTS rollover detected"),i}remux(t,e,i,n,r,s,a,l){let d,u,f,E,S,T,_=r,D=r,w=t.pid>-1,x=e.pid>-1,M=e.samples.length,V=t.samples.length>0,X=a&&M>0||M>1;if((!w||V)&&(!x||X)||this.ISGenerated||a){if(this.ISGenerated){var ot,et,vt,St;let At=this.videoTrackConfig;!At||e.width===At.width&&e.height===At.height&&((ot=e.pixelRatio)==null?void 0:ot[0])===((et=At.pixelRatio)==null?void 0:et[0])&&((vt=e.pixelRatio)==null?void 0:vt[1])===((St=At.pixelRatio)==null?void 0:St[1])||this.resetInitSegment()}else f=this.generateIS(t,e,r,s);let nt=this.isVideoContiguous,it,jt=-1;if(X&&(jt=function(At){for(let Kt=0;Kt<At.length;Kt++)if(At[Kt].key)return Kt;return-1}(e.samples),!nt&&this.config.forceKeyFrameOnDiscontinuity))if(T=!0,jt>0){C.warn(`[mp4-remuxer]: Dropped ${jt} out of ${M} video samples due to a missing keyframe`);let At=this.getVideoStartPts(e.samples);e.samples=e.samples.slice(jt),e.dropped+=jt,D+=(e.samples[0].pts-At)/e.inputTimeScale,it=D}else jt===-1&&(C.warn(`[mp4-remuxer]: No keyframe found out of ${M} video samples`),T=!1);if(this.ISGenerated){if(V&&X){let At=this.getVideoStartPts(e.samples),Kt=(Z(t.samples[0].pts,At)-At)/e.inputTimeScale;_+=Math.max(0,Kt),D+=Math.max(0,-Kt)}if(V){if(t.samplerate||(C.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),f=this.generateIS(t,e,r,s)),u=this.remuxAudio(t,_,this.isAudioContiguous,s,x||X||l===ei?D:void 0),X){let At=u?u.endPTS-u.startPTS:0;e.inputTimeScale||(C.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),f=this.generateIS(t,e,r,s)),d=this.remuxVideo(e,D,nt,At)}}else X&&(d=this.remuxVideo(e,D,nt,0));d&&(d.firstKeyFrame=jt,d.independent=jt!==-1,d.firstKeyFramePTS=it)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(i.samples.length&&(S=rt(i,r,this._initPTS,this._initDTS)),n.samples.length&&(E=Bt(n,r,this._initPTS))),{audio:u,video:d,initSegment:f,independent:T,text:E,id3:S}}generateIS(t,e,i,n){let r=t.samples,s=e.samples,a=this.typeSupported,l={},d=this._initPTS,u,f,E,S=!d||n,T="audio/mp4";if(S&&(u=f=1/0),t.config&&r.length){switch(t.timescale=t.samplerate,t.segmentCodec){case"mp3":a.mpeg?(T="audio/mpeg",t.codec=""):a.mp3&&(t.codec="mp3");break;case"ac3":t.codec="ac-3"}l.audio={id:"audio",container:T,codec:t.codec,initSegment:t.segmentCodec==="mp3"&&a.mpeg?new Uint8Array(0):g.initSegment([t]),metadata:{channelCount:t.channelCount}},S&&(E=t.inputTimeScale,d&&E===d.timescale?S=!1:u=f=r[0].pts-Math.round(E*i))}if(e.sps&&e.pps&&s.length){if(e.timescale=e.inputTimeScale,l.video={id:"main",container:"video/mp4",codec:e.codec,initSegment:g.initSegment([e]),metadata:{width:e.width,height:e.height}},S)if(E=e.inputTimeScale,d&&E===d.timescale)S=!1;else{let _=this.getVideoStartPts(s),D=Math.round(E*i);f=Math.min(f,Z(s[0].dts,_)-D),u=Math.min(u,_-D)}this.videoTrackConfig={width:e.width,height:e.height,pixelRatio:e.pixelRatio}}if(Object.keys(l).length)return this.ISGenerated=!0,S?(this._initPTS={baseTime:u,timescale:E},this._initDTS={baseTime:f,timescale:E}):u=E=void 0,{tracks:l,initPTS:u,timescale:E}}remuxVideo(t,e,i,n){let{inputTimeScale:r,samples:s}=t,a=[],l=s.length,d=this._initPTS,u,f,E=this.nextAvcDts,S=8,T=this.videoSampleDuration,_=Number.POSITIVE_INFINITY,D=Number.NEGATIVE_INFINITY,w=!1;if(!i||E===null){let ht=e*r,wt=s[0].pts-Z(s[0].dts,s[0].pts);K&&E!==null&&Math.abs(ht-wt-E)<15000?i=!0:E=ht-wt}let x=d.baseTime*r/d.timescale;for(let ht=0;ht<l;ht++){let wt=s[ht];wt.pts=Z(wt.pts-x,E),wt.dts=Z(wt.dts-x,E),wt.dts<s[ht>0?ht-1:ht].dts&&(w=!0)}w&&s.sort(function(ht,wt){let Wt=ht.dts-wt.dts,Yt=ht.pts-wt.pts;return Wt||Yt}),u=s[0].dts,f=s[s.length-1].dts;let M=f-u,V=M?Math.round(M/(l-1)):T||t.inputTimeScale/30;if(i){let ht=u-E,wt=ht>V,Wt=ht<-1;if((wt||Wt)&&(wt?C.warn(`AVC: ${R(ht,!0)} ms (${ht}dts) hole between fragments detected at ${e.toFixed(3)}`):C.warn(`AVC: ${R(-ht,!0)} ms (${ht}dts) overlapping between fragments detected at ${e.toFixed(3)}`),!Wt||E>=s[0].pts||K)){u=E;let Yt=s[0].pts-ht;if(wt)s[0].dts=u,s[0].pts=Yt;else for(let ae=0;ae<s.length&&!(s[ae].dts>Yt);ae++)s[ae].dts-=ht,s[ae].pts-=ht;C.log(`Video: Initial PTS/DTS adjusted: ${R(Yt,!0)}/${R(u,!0)}, delta: ${R(ht,!0)} ms`)}}u=Math.max(0,u);let X=0,ot=0,et=u;for(let ht=0;ht<l;ht++){let wt=s[ht],Wt=wt.units,Yt=Wt.length,ae=0;for(let Ce=0;Ce<Yt;Ce++)ae+=Wt[Ce].data.length;ot+=ae,X+=Yt,wt.length=ae,wt.dts<et?(wt.dts=et,et+=V/4|0||1):et=wt.dts,_=Math.min(wt.pts,_),D=Math.max(wt.pts,D)}f=s[l-1].dts;let vt=ot+4*X+8,St;try{St=new Uint8Array(vt)}catch(ht){return void this.observer.emit(A.ERROR,A.ERROR,{type:Ft.MUX_ERROR,details:H.REMUX_ALLOC_ERROR,fatal:!1,error:ht,bytes:vt,reason:"fail allocating video mdat "+vt})}let nt=new DataView(St.buffer);nt.setUint32(0,vt),St.set(g.types.mdat,4);let it=!1,jt=Number.POSITIVE_INFINITY,At=Number.POSITIVE_INFINITY,Kt=Number.NEGATIVE_INFINITY,zt=Number.NEGATIVE_INFINITY;for(let ht=0;ht<l;ht++){let wt=s[ht],Wt=wt.units,Yt,ae=0;for(let $e=0,xe=Wt.length;$e<xe;$e++){let hi=Wt[$e],Gi=hi.data,Ve=hi.data.byteLength;nt.setUint32(S,Ve),S+=4,St.set(Gi,S),S+=Ve,ae+=4+Ve}if(ht<l-1)T=s[ht+1].dts-wt.dts,Yt=s[ht+1].pts-wt.pts;else{let $e=this.config,xe=ht>0?wt.dts-s[ht-1].dts:V;if(Yt=ht>0?wt.pts-s[ht-1].pts:V,$e.stretchShortVideoTrack&&this.nextAudioPts!==null){let hi=Math.floor($e.maxBufferHole*r),Gi=(n?_+n*r:this.nextAudioPts)-wt.pts;Gi>hi?(T=Gi-xe,T<0?T=xe:it=!0,C.log(`[mp4-remuxer]: It is approximately ${Gi/90} ms to the next segment; using duration ${T/90} ms for the last video frame.`)):T=xe}else T=xe}let Ce=Math.round(wt.pts-wt.dts);jt=Math.min(jt,T),Kt=Math.max(Kt,T),At=Math.min(At,Yt),zt=Math.max(zt,Yt),a.push(new Vt(wt.key,T,ae,Ce))}if(a.length){if(K){if(K<70){let ht=a[0].flags;ht.dependsOn=2,ht.isNonSync=0}}else if(Y&&zt-At<Kt-jt&&V/Kt<0.025&&a[0].cts===0){C.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");let ht=u;for(let wt=0,Wt=a.length;wt<Wt;wt++){let Yt=ht+a[wt].duration,ae=ht+a[wt].cts;if(wt<Wt-1){let Ce=Yt+a[wt+1].cts;a[wt].duration=Ce-ae}else a[wt].duration=wt?a[wt-1].duration:V;a[wt].cts=0,ht=Yt}}}T=it||!T?V:T,this.nextAvcDts=E=f+T,this.videoSampleDuration=T,this.isVideoContiguous=!0;let Xt={data1:g.moof(t.sequenceNumber++,u,z({},t,{samples:a})),data2:St,startPTS:_/r,endPTS:(D+T)/r,startDTS:u/r,endDTS:E/r,type:"video",hasAudio:!1,hasVideo:!0,nb:a.length,dropped:t.dropped};return t.samples=[],t.dropped=0,Xt}getSamplesPerFrame(t){switch(t.segmentCodec){case"mp3":return 1152;case"ac3":return 1536;default:return 1024}}remuxAudio(t,e,i,n,r){let s=t.inputTimeScale,a=s/(t.samplerate?t.samplerate:s),l=this.getSamplesPerFrame(t),d=l*a,u=this._initPTS,f=t.segmentCodec==="mp3"&&this.typeSupported.mpeg,E=[],S=r!==void 0,T=t.samples,_=f?0:8,D=this.nextAudioPts||-1,w=e*s,x=u.baseTime*s/u.timescale;if(this.isAudioContiguous=i=i||T.length&&D>0&&(n&&Math.abs(w-D)<9000||Math.abs(Z(T[0].pts-x,w)-D)<20*d),T.forEach(function(Kt){Kt.pts=Z(Kt.pts-x,w)}),!i||D<0){if(T=T.filter((Kt)=>Kt.pts>=0),!T.length)return;D=r===0?0:n&&!S?Math.max(0,w):T[0].pts}if(t.segmentCodec==="aac"){let Kt=this.config.maxAudioFramesDrift;for(let zt=0,Xt=D;zt<T.length;zt++){let ht=T[zt],wt=ht.pts,Wt=wt-Xt,Yt=Math.abs(1000*Wt/s);if(Wt<=-Kt*d&&S)zt===0&&(C.warn(`Audio frame @ ${(wt/s).toFixed(3)}s overlaps nextAudioPts by ${Math.round(1000*Wt/s)} ms.`),this.nextAudioPts=D=Xt=wt);else if(Wt>=Kt*d&&Yt<1e4&&S){let ae=Math.round(Wt/d);Xt=wt-ae*d,Xt<0&&(ae--,Xt+=d),zt===0&&(this.nextAudioPts=D=Xt),C.warn(`[mp4-remuxer]: Injecting ${ae} audio frame @ ${(Xt/s).toFixed(3)}s due to ${Math.round(1000*Wt/s)} ms gap.`);for(let Ce=0;Ce<ae;Ce++){let $e=Math.max(Xt,0),xe=Ur.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);xe||(C.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."),xe=ht.unit.subarray()),T.splice(zt,0,{unit:xe,pts:$e}),Xt+=d,zt++}}ht.pts=Xt,Xt+=d}}let M,V=null,X=null,ot=0,et=T.length;for(;et--;)ot+=T[et].unit.byteLength;for(let Kt=0,zt=T.length;Kt<zt;Kt++){let Xt=T[Kt],ht=Xt.unit,wt=Xt.pts;if(X!==null)E[Kt-1].duration=Math.round((wt-X)/a);else{if(i&&t.segmentCodec==="aac"&&(wt=D),V=wt,!(ot>0))return;ot+=_;try{M=new Uint8Array(ot)}catch(Yt){return void this.observer.emit(A.ERROR,A.ERROR,{type:Ft.MUX_ERROR,details:H.REMUX_ALLOC_ERROR,fatal:!1,error:Yt,bytes:ot,reason:"fail allocating audio mdat "+ot})}if(!f)new DataView(M.buffer).setUint32(0,ot),M.set(g.types.mdat,4)}M.set(ht,_);let Wt=ht.byteLength;_+=Wt,E.push(new Vt(!0,l,Wt,0)),X=wt}let vt=E.length;if(!vt)return;let St=E[E.length-1];this.nextAudioPts=D=X+a*St.duration;let nt=f?new Uint8Array(0):g.moof(t.sequenceNumber++,V/a,z({},t,{samples:E}));t.samples=[];let it=V/s,jt=D/s,At={data1:nt,data2:M,startPTS:it,endPTS:jt,startDTS:it,endDTS:jt,type:"audio",hasAudio:!0,hasVideo:!1,nb:vt};return this.isAudioContiguous=!0,At}remuxEmptyAudio(t,e,i,n){let r=t.inputTimeScale,s=r/(t.samplerate?t.samplerate:r),a=this.nextAudioPts,l=this._initDTS,d=90000*l.baseTime/l.timescale,u=(a!==null?a:n.startDTS*r)+d,f=n.endDTS*r+d,E=1024*s,S=Math.ceil((f-u)/E),T=Ur.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);if(C.warn("[mp4-remuxer]: remux empty Audio"),!T)return void C.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec");let _=[];for(let D=0;D<S;D++){let w=u+D*E;_.push({unit:T,pts:w,dts:w})}return t.samples=_,this.remuxAudio(t,e,i,!1)}}function Z(t,e){let i;if(e===null)return t;for(i=e<t?-8589934592:8589934592;Math.abs(t-e)>4294967296;)t+=i;return t}function rt(t,e,i,n){let r=t.samples.length;if(!r)return;let s=t.inputTimeScale;for(let l=0;l<r;l++){let d=t.samples[l];d.pts=Z(d.pts-i.baseTime*s/i.timescale,e*s)/s,d.dts=Z(d.dts-n.baseTime*s/n.timescale,e*s)/s}let a=t.samples;return t.samples=[],{samples:a}}function Bt(t,e,i){let n=t.samples.length;if(!n)return;let r=t.inputTimeScale;for(let a=0;a<n;a++){let l=t.samples[a];l.pts=Z(l.pts-i.baseTime*r/i.timescale,e*r)/r}t.samples.sort((a,l)=>a.pts-l.pts);let s=t.samples;return t.samples=[],{samples:s}}class Vt{constructor(t,e,i,n){this.size=void 0,this.duration=void 0,this.cts=void 0,this.flags=void 0,this.duration=e,this.size=i,this.cts=n,this.flags={isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:t?2:1,isNonSync:t?0:1}}}function oe(t,e){let i=t==null?void 0:t.codec;if(i&&i.length>4)return i;if(e===gt){if(i==="ec-3"||i==="ac-3"||i==="alac")return i;if(i==="fLaC"||i==="Opus")return xn(i,!1);let n="mp4a.40.5";return C.info(`Parsed audio codec "${i}" or audio object type not handled. Using "${n}"`),n}return C.warn(`Unhandled video codec "${i}"`),i==="hvc1"||i==="hev1"?"hvc1.1.6.L120.90":i==="av01"?"av01.0.04M.08":"avc1.42e01e"}try{I=self.performance.now.bind(self.performance)}catch(t){C.debug("Unable to use Performance API on this environment"),I=we==null?void 0:we.Date.now}let ke=[{demux:class t{constructor(e,i){this.remainderData=null,this.timeOffset=0,this.config=void 0,this.videoTrack=void 0,this.audioTrack=void 0,this.id3Track=void 0,this.txtTrack=void 0,this.config=i}resetTimeStamp(){}resetInitSegment(e,i,n,r){let s=this.videoTrack=on("video",1),a=this.audioTrack=on("audio",1),l=this.txtTrack=on("text",1);if(this.id3Track=on("id3",1),this.timeOffset=0,e==null||!e.byteLength)return;let d=Tr(e);if(d.video){let{id:u,timescale:f,codec:E}=d.video;s.id=u,s.timescale=l.timescale=f,s.codec=E}if(d.audio){let{id:u,timescale:f,codec:E}=d.audio;a.id=u,a.timescale=f,a.codec=E}l.id=pe.text,s.sampleDuration=0,s.duration=a.duration=r}resetContiguity(){this.remainderData=null}static probe(e){return function(i){let n=i.byteLength;for(let r=0;r<n;){let s=Zt(i,r);if(s>8&&i[r+4]===109&&i[r+5]===111&&i[r+6]===111&&i[r+7]===102)return!0;r=s>1?r+s:n}return!1}(e)}demux(e,i){this.timeOffset=i;let n=e,r=this.videoTrack,s=this.txtTrack;if(this.config.progressive){this.remainderData&&(n=li(this.remainderData,e));let l=function(d){let u={valid:null,remainder:null},f=Q(d,["moof"]);if(f.length<2)return u.remainder=d,u;let E=f[f.length-1];return u.valid=Se(d,0,E.byteOffset-8),u.remainder=Se(d,E.byteOffset-8),u}(n);this.remainderData=l.remainder,r.samples=l.valid||new Uint8Array}else r.samples=n;let a=this.extractID3Track(r,i);return s.samples=Rn(i,r),{videoTrack:r,audioTrack:this.audioTrack,id3Track:a,textTrack:this.txtTrack}}flush(){let e=this.timeOffset,i=this.videoTrack,n=this.txtTrack;i.samples=this.remainderData||new Uint8Array,this.remainderData=null;let r=this.extractID3Track(i,this.timeOffset);return n.samples=Rn(e,i),{videoTrack:i,audioTrack:on(),id3Track:r,textTrack:on()}}extractID3Track(e,i){let n=this.id3Track;if(e.samples.length){let r=Q(e.samples,["emsg"]);r&&r.forEach((s)=>{let a=function(l){let d=l[0],u="",f="",E=0,S=0,T=0,_=0,D=0,w=0;if(d===0){for(;fe(l.subarray(w,w+1))!=="\x00";)u+=fe(l.subarray(w,w+1)),w+=1;for(u+=fe(l.subarray(w,w+1)),w+=1;fe(l.subarray(w,w+1))!=="\x00";)f+=fe(l.subarray(w,w+1)),w+=1;f+=fe(l.subarray(w,w+1)),w+=1,E=Zt(l,12),S=Zt(l,16),_=Zt(l,20),D=Zt(l,24),w=28}else if(d===1){w+=4,E=Zt(l,w),w+=4;let x=Zt(l,w);w+=4;let M=Zt(l,w);for(w+=4,T=4294967296*x+M,Nt(T)||(T=Number.MAX_SAFE_INTEGER,C.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")),_=Zt(l,w),w+=4,D=Zt(l,w),w+=4;fe(l.subarray(w,w+1))!=="\x00";)u+=fe(l.subarray(w,w+1)),w+=1;for(u+=fe(l.subarray(w,w+1)),w+=1;fe(l.subarray(w,w+1))!=="\x00";)f+=fe(l.subarray(w,w+1)),w+=1;f+=fe(l.subarray(w,w+1)),w+=1}return{schemeIdUri:u,value:f,timeScale:E,presentationTime:T,presentationTimeDelta:S,eventDuration:_,id:D,payload:l.subarray(w,l.byteLength)}}(s);if(Ba.test(a.schemeIdUri)){let l=j(a.presentationTime)?a.presentationTime/a.timeScale:i+a.presentationTimeDelta/a.timeScale,d=a.eventDuration===4294967295?Number.POSITIVE_INFINITY:a.eventDuration/a.timeScale;d<=0.001&&(d=Number.POSITIVE_INFINITY);let u=a.payload;n.samples.push({data:u,len:u.byteLength,dts:l,pts:l,type:m,duration:d})}})}return n}demuxSampleAes(e,i,n){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){}},remux:class t{constructor(){this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null}destroy(){}resetTimeStamp(e){this.initPTS=e,this.lastEndTime=null}resetNextTimestamp(){this.lastEndTime=null}resetInitSegment(e,i,n,r){this.audioCodec=i,this.videoCodec=n,this.generateInitSegment(function(s,a){if(!s||!a)return s;let l=a.keyId;if(l&&a.isCommonEncryption)Q(s,["moov","trak"]).forEach((d)=>{let u=Q(d,["mdia","minf","stbl","stsd"])[0].subarray(8),f=Q(u,["enca"]),E=f.length>0;E||(f=Q(u,["encv"])),f.forEach((S)=>{Q(E?S.subarray(28):S.subarray(78),["sinf"]).forEach((T)=>{let _=_r(T);if(_){let D=_.subarray(8,24);D.some((w)=>w!==0)||(C.log(`[eme] Patching keyId in 'enc${E?"a":"v"}>sinf>>tenc' box: ${_i(D)} -> ${_i(l)}`),_.set(l,8))}})})});return s}(e,r)),this.emitInitSegment=!0}generateInitSegment(e){let{audioCodec:i,videoCodec:n}=this;if(e==null||!e.byteLength)return this.initTracks=void 0,void(this.initData=void 0);let r=this.initData=Tr(e);r.audio&&(i=oe(r.audio,gt)),r.video&&(n=oe(r.video,Rt));let s={};r.audio&&r.video?s.audiovideo={container:"video/mp4",codec:i+","+n,initSegment:e,id:"main"}:r.audio?s.audio={container:"audio/mp4",codec:i,initSegment:e,id:"audio"}:r.video?s.video={container:"video/mp4",codec:n,initSegment:e,id:"main"}:C.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=s}remux(e,i,n,r,s,a){var l,d;let{initPTS:u,lastEndTime:f}=this,E={audio:void 0,video:void 0,text:r,id3:n,initSegment:void 0};j(f)||(f=this.lastEndTime=s||0);let S=i.samples;if(S==null||!S.length)return E;let T={initPTS:void 0,timescale:1},_=this.initData;if((l=_)!=null&&l.length||(this.generateInitSegment(S),_=this.initData),(d=_)==null||!d.length)return C.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."),E;this.emitInitSegment&&(T.tracks=this.initTracks,this.emitInitSegment=!1);let D=function(St,nt){let it=0,jt=0,At=0,Kt=Q(St,["moof","traf"]);for(let zt=0;zt<Kt.length;zt++){let Xt=Kt[zt],ht=Q(Xt,["tfhd"])[0],wt=nt[Zt(ht,4)];if(!wt)continue;let Wt=wt.default,Yt=Zt(ht,0)|(Wt==null?void 0:Wt.flags),ae=Wt==null?void 0:Wt.duration;8&Yt&&(ae=Zt(ht,2&Yt?12:8));let Ce=wt.timescale||90000,$e=Q(Xt,["trun"]);for(let xe=0;xe<$e.length;xe++){if(it=Yi($e[xe]),!it&&ae)it=ae*Zt($e[xe],4);wt.type===Rt?jt+=it/Ce:wt.type===gt&&(At+=it/Ce)}}if(jt===0&&At===0){let zt=1/0,Xt=0,ht=0,wt=Q(St,["sidx"]);for(let Wt=0;Wt<wt.length;Wt++){let Yt=De(wt[Wt]);if(Yt!=null&&Yt.references){zt=Math.min(zt,Yt.earliestPresentationTime/Yt.timescale);let ae=Yt.references.reduce((Ce,$e)=>Ce+$e.info.duration||0,0);Xt=Math.max(Xt,ae+Yt.earliestPresentationTime/Yt.timescale),ht=Xt-zt}}if(ht&&j(ht))return ht}return jt||At}(S,_),w=function(St,nt){return Q(nt,["moof","traf"]).reduce((it,jt)=>{let At=Q(jt,["tfdt"])[0],Kt=At[0],zt=Q(jt,["tfhd"]).reduce((Xt,ht)=>{let wt=Zt(ht,4),Wt=St[wt];if(Wt){let Yt=Zt(At,4);if(Kt===1){if(Yt===ve)return C.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"),Xt;Yt*=ve+1,Yt+=Zt(At,8)}let ae=Yt/(Wt.timescale||90000);if(j(ae)&&(Xt===null||ae<Xt))return ae}return Xt},null);return zt!==null&&j(zt)&&(it===null||zt<it)?zt:it},null)}(_,S),x=w===null?s:w;(function(St,nt,it,jt){if(St===null)return!0;let At=Math.max(jt,1),Kt=nt-St.baseTime/St.timescale;return Math.abs(Kt-it)>At}(u,x,s,D)||T.timescale!==u.timescale&&a)&&(T.initPTS=x-s,u&&u.timescale===1&&C.warn("Adjusting initPTS by "+(T.initPTS-u.baseTime)),this.initPTS=u={baseTime:T.initPTS,timescale:1});let M=e?x-u.baseTime/u.timescale:f,V=M+D;(function(St,nt,it){Q(nt,["moof","traf"]).forEach((jt)=>{Q(jt,["tfhd"]).forEach((At)=>{let Kt=Zt(At,4),zt=St[Kt];if(!zt)return;let Xt=zt.timescale||90000;Q(jt,["tfdt"]).forEach((ht)=>{let wt=ht[0],Wt=it*Xt;if(Wt){let Yt=Zt(ht,4);if(wt===0)Yt-=Wt,Yt=Math.max(Yt,0),Hi(ht,4,Yt);else{Yt*=Math.pow(2,32),Yt+=Zt(ht,8),Yt-=Wt,Yt=Math.max(Yt,0);let ae=Math.floor(Yt/(ve+1)),Ce=Math.floor(Yt%(ve+1));Hi(ht,4,ae),Hi(ht,8,Ce)}}})})})})(_,S,u.baseTime/u.timescale),D>0?this.lastEndTime=V:(C.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());let X=!!_.audio,ot=!!_.video,et="";X&&(et+="audio"),ot&&(et+="video");let vt={data1:S,startPTS:M,startDTS:M,endPTS:V,endDTS:V,type:et,hasAudio:X,hasVideo:ot,nb:1,dropped:0};return E.audio=vt.type==="audio"?vt:void 0,E.video=vt.type!=="audio"?vt:void 0,E.initSegment=T,E.id3=rt(n,s,u,u),r.samples.length&&(E.text=Bt(r,s,u)),E}}},{demux:fn,remux:$},{demux:class t extends ls{constructor(e,i){super(),this.observer=void 0,this.config=void 0,this.observer=e,this.config=i}resetInitSegment(e,i,n,r){super.resetInitSegment(e,i,n,r),this._audioTrack={container:"audio/adts",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"aac",samples:[],manifestCodec:i,duration:r,inputTimeScale:90000,dropped:0}}static probe(e){if(!e)return!1;let i=Ii(e,0),n=(i==null?void 0:i.length)||0;if(ea(e,n))return!1;for(let r=e.length;n<r;n++)if(wo(e,n))return C.log("ADTS sync word found !"),!0;return!1}canParse(e,i){return function(n,r){return function(s,a){return a+5<s.length}(n,r)&&Oa(n,r)&&Js(n,r)<=n.length-r}(e,i)}appendFrame(e,i,n){Na(e,this.observer,i,n,e.manifestCodec);let r=Kn(e,i,n,this.basePTS,this.frameIndex);if(r&&r.missing===0)return r}},remux:$},{demux:class t extends ls{resetInitSegment(e,i,n,r){super.resetInitSegment(e,i,n,r),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:i,duration:r,inputTimeScale:90000,dropped:0}}static probe(e){if(!e)return!1;let i=Ii(e,0),n=(i==null?void 0:i.length)||0;if(i&&e[n]===11&&e[n+1]===119&&oi(i)!==void 0&&us(e,n)<=16)return!1;for(let r=e.length;n<r;n++)if(ea(e,n))return C.log("MPEG Audio sync word found !"),!0;return!1}canParse(e,i){return function(n,r){return ds(n,r)&&4<=n.length-r}(e,i)}appendFrame(e,i,n){if(this.basePTS!==null)return Qs(e,i,n,this.basePTS,this.frameIndex)}},remux:$}];ke.splice(2,0,{demux:ia,remux:$});class Ke{constructor(t,e,i,n,r){this.async=!1,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.vendor=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=t,this.typeSupported=e,this.config=i,this.vendor=n,this.id=r}configure(t){this.transmuxConfig=t,this.decrypter&&this.decrypter.reset()}push(t,e,i,n){let r=i.transmuxing;r.executeStart=I();let s=new Uint8Array(t),{currentTransmuxState:a,transmuxConfig:l}=this;n&&(this.currentTransmuxState=n);let{contiguous:d,discontinuity:u,trackSwitch:f,accurateTimeOffset:E,timeOffset:S,initSegmentChange:T}=n||a,{audioCodec:_,videoCodec:D,defaultInitPts:w,duration:x,initSegmentData:M}=l,V=function(vt,St){let nt=null;return vt.byteLength>0&&(St==null?void 0:St.key)!=null&&St.iv!==null&&St.method!=null&&(nt=St),nt}(s,e);if(V&&V.method==="AES-128"){let vt=this.getDecrypter();if(!vt.isSync())return this.decryptionPromise=vt.webCryptoDecrypt(s,V.key.buffer,V.iv.buffer).then((St)=>{let nt=this.push(St,null,i);return this.decryptionPromise=null,nt}),this.decryptionPromise;{let St=vt.softwareDecrypt(s,V.key.buffer,V.iv.buffer);if(i.part>-1&&(St=vt.flush()),!St)return r.executeEnd=I(),Te(i);s=new Uint8Array(St)}}let X=this.needsProbing(u,f);if(X){let vt=this.configureTransmuxer(s);if(vt)return C.warn("[transmuxer] "+vt.message),this.observer.emit(A.ERROR,A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,fatal:!1,error:vt,reason:vt.message}),r.executeEnd=I(),Te(i)}(u||f||T||X)&&this.resetInitSegment(M,_,D,x,e),(u||T||X)&&this.resetInitialTimestamp(w),d||this.resetContiguity();let ot=this.transmux(s,V,S,E,i),et=this.currentTransmuxState;return et.contiguous=!0,et.discontinuity=!1,et.trackSwitch=!1,r.executeEnd=I(),ot}flush(t){let e=t.transmuxing;e.executeStart=I();let{decrypter:i,currentTransmuxState:n,decryptionPromise:r}=this;if(r)return r.then(()=>this.flush(t));let s=[],{timeOffset:a}=n;if(i){let f=i.flush();f&&s.push(this.push(f,null,t))}let{demuxer:l,remuxer:d}=this;if(!l||!d)return e.executeEnd=I(),[Te(t)];let u=l.flush(a);return bi(u)?u.then((f)=>(this.flushRemux(s,f,t),s)):(this.flushRemux(s,u,t),s)}flushRemux(t,e,i){let{audioTrack:n,videoTrack:r,id3Track:s,textTrack:a}=e,{accurateTimeOffset:l,timeOffset:d}=this.currentTransmuxState;C.log(`[transmuxer.ts]: Flushed fragment ${i.sn}${i.part>-1?" p: "+i.part:""} of level ${i.level}`);let u=this.remuxer.remux(n,r,s,a,d,l,!0,this.id);t.push({remuxResult:u,chunkMeta:i}),i.transmuxing.executeEnd=I()}resetInitialTimestamp(t){let{demuxer:e,remuxer:i}=this;e&&i&&(e.resetTimeStamp(t),i.resetTimeStamp(t))}resetContiguity(){let{demuxer:t,remuxer:e}=this;t&&e&&(t.resetContiguity(),e.resetNextTimestamp())}resetInitSegment(t,e,i,n,r){let{demuxer:s,remuxer:a}=this;s&&a&&(s.resetInitSegment(t,e,i,n),a.resetInitSegment(t,e,i,r))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(t,e,i,n,r){let s;return s=e&&e.method==="SAMPLE-AES"?this.transmuxSampleAes(t,e,i,n,r):this.transmuxUnencrypted(t,i,n,r),s}transmuxUnencrypted(t,e,i,n){let{audioTrack:r,videoTrack:s,id3Track:a,textTrack:l}=this.demuxer.demux(t,e,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(r,s,a,l,e,i,!1,this.id),chunkMeta:n}}transmuxSampleAes(t,e,i,n,r){return this.demuxer.demuxSampleAes(t,e,i).then((s)=>({remuxResult:this.remuxer.remux(s.audioTrack,s.videoTrack,s.id3Track,s.textTrack,i,n,!1,this.id),chunkMeta:r}))}configureTransmuxer(t){let{config:e,observer:i,typeSupported:n,vendor:r}=this,s;for(let E=0,S=ke.length;E<S;E++){var a;if((a=ke[E].demux)!=null&&a.probe(t)){s=ke[E];break}}if(!s)return new Error("Failed to find demuxer by probing fragment data");let l=this.demuxer,d=this.remuxer,u=s.remux,f=s.demux;d&&d instanceof u||(this.remuxer=new u(i,e,n,r)),l&&l instanceof f||(this.demuxer=new f(i,e,n),this.probe=f.probe)}needsProbing(t,e){return!this.demuxer||!this.remuxer||t||e}getDecrypter(){let t=this.decrypter;return t||(t=this.decrypter=new Pr(this.config)),t}}let Te=(t)=>({remuxResult:{},chunkMeta:t});function bi(t){return"then"in t&&t.then instanceof Function}class $i{constructor(t,e,i,n,r){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=t,this.videoCodec=e,this.initSegmentData=i,this.duration=n,this.defaultInitPts=r||null}}class gr{constructor(t,e,i,n,r,s){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=t,this.contiguous=e,this.accurateTimeOffset=i,this.trackSwitch=n,this.timeOffset=r,this.initSegmentChange=s}}var yl={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,i="~";function n(){}function r(d,u,f){this.fn=d,this.context=u,this.once=f||!1}function s(d,u,f,E,S){if(typeof f!="function")throw new TypeError("The listener must be a function");var T=new r(f,E||d,S),_=i?i+u:u;return d._events[_]?d._events[_].fn?d._events[_]=[d._events[_],T]:d._events[_].push(T):(d._events[_]=T,d._eventsCount++),d}function a(d,u){--d._eventsCount==0?d._events=new n:delete d._events[u]}function l(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(i=!1)),l.prototype.eventNames=function(){var d,u,f=[];if(this._eventsCount===0)return f;for(u in d=this._events)e.call(d,u)&&f.push(i?u.slice(1):u);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(d)):f},l.prototype.listeners=function(d){var u=i?i+d:d,f=this._events[u];if(!f)return[];if(f.fn)return[f.fn];for(var E=0,S=f.length,T=new Array(S);E<S;E++)T[E]=f[E].fn;return T},l.prototype.listenerCount=function(d){var u=i?i+d:d,f=this._events[u];return f?f.fn?1:f.length:0},l.prototype.emit=function(d,u,f,E,S,T){var _=i?i+d:d;if(!this._events[_])return!1;var D,w,x=this._events[_],M=arguments.length;if(x.fn){switch(x.once&&this.removeListener(d,x.fn,void 0,!0),M){case 1:return x.fn.call(x.context),!0;case 2:return x.fn.call(x.context,u),!0;case 3:return x.fn.call(x.context,u,f),!0;case 4:return x.fn.call(x.context,u,f,E),!0;case 5:return x.fn.call(x.context,u,f,E,S),!0;case 6:return x.fn.call(x.context,u,f,E,S,T),!0}for(w=1,D=new Array(M-1);w<M;w++)D[w-1]=arguments[w];x.fn.apply(x.context,D)}else{var V,X=x.length;for(w=0;w<X;w++)switch(x[w].once&&this.removeListener(d,x[w].fn,void 0,!0),M){case 1:x[w].fn.call(x[w].context);break;case 2:x[w].fn.call(x[w].context,u);break;case 3:x[w].fn.call(x[w].context,u,f);break;case 4:x[w].fn.call(x[w].context,u,f,E);break;default:if(!D)for(V=1,D=new Array(M-1);V<M;V++)D[V-1]=arguments[V];x[w].fn.apply(x[w].context,D)}}return!0},l.prototype.on=function(d,u,f){return s(this,d,u,f,!1)},l.prototype.once=function(d,u,f){return s(this,d,u,f,!0)},l.prototype.removeListener=function(d,u,f,E){var S=i?i+d:d;if(!this._events[S])return this;if(!u)return a(this,S),this;var T=this._events[S];if(T.fn)T.fn!==u||E&&!T.once||f&&T.context!==f||a(this,S);else{for(var _=0,D=[],w=T.length;_<w;_++)(T[_].fn!==u||E&&!T[_].once||f&&T[_].context!==f)&&D.push(T[_]);D.length?this._events[S]=D.length===1?D[0]:D:a(this,S)}return this},l.prototype.removeAllListeners=function(d){var u;return d?(u=i?i+d:d,this._events[u]&&a(this,u)):(this._events=new n,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=i,l.EventEmitter=l,t.exports=l})(yl);var ko=o(yl.exports);class Ro{constructor(t,e,i,n){this.error=null,this.hls=void 0,this.id=void 0,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.onwmsg=void 0,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0;let r=t.config;this.hls=t,this.id=e,this.useWorker=!!r.enableWorker,this.onTransmuxComplete=i,this.onFlush=n;let s=(u,f)=>{(f=f||{}).frag=this.frag,f.id=this.id,u===A.ERROR&&(this.error=f.error),this.hls.trigger(u,f)};this.observer=new ko,this.observer.on(A.FRAG_DECRYPTED,s),this.observer.on(A.ERROR,s);let a=Xi(r.preferManagedMediaSource)||{isTypeSupported:()=>!1},l={mpeg:a.isTypeSupported("audio/mpeg"),mp3:a.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:a.isTypeSupported('audio/mp4; codecs="ac-3"')},d=navigator.vendor;if(this.useWorker&&typeof Worker!="undefined"){if(r.workerPath||typeof __HLS_WORKER_BUNDLE__=="function"){try{r.workerPath?(C.log(`loading Web Worker ${r.workerPath} for "${e}"`),this.workerContext=function(f){let E=new self.URL(f,self.location.href).href;return{worker:new self.Worker(E),scriptURL:E}}(r.workerPath)):(C.log(`injecting Web Worker for "${e}"`),this.workerContext=function(){let f=new self.Blob([`var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(${__HLS_WORKER_BUNDLE__.toString()})(true);`],{type:"text/javascript"}),E=self.URL.createObjectURL(f);return{worker:new self.Worker(E),objectURL:E}}()),this.onwmsg=(f)=>this.onWorkerMessage(f);let{worker:u}=this.workerContext;u.addEventListener("message",this.onwmsg),u.onerror=(f)=>{let E=new Error(`${f.message} (${f.filename}:${f.lineno})`);r.enableWorker=!1,C.warn(`Error in "${e}" Web Worker, fallback to inline`),this.hls.trigger(A.ERROR,{type:Ft.OTHER_ERROR,details:H.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:E})},u.postMessage({cmd:"init",typeSupported:l,vendor:d,id:e,config:JSON.stringify(r)})}catch(u){C.warn(`Error setting up "${e}" Web Worker, fallback to inline`,u),this.resetWorker(),this.error=null,this.transmuxer=new Ke(this.observer,l,r,d,e)}return}}this.transmuxer=new Ke(this.observer,l,r,d,e)}resetWorker(){if(this.workerContext){let{worker:t,objectURL:e}=this.workerContext;e&&self.URL.revokeObjectURL(e),t.removeEventListener("message",this.onwmsg),t.onerror=null,t.terminate(),this.workerContext=null}}destroy(){if(this.workerContext)this.resetWorker(),this.onwmsg=void 0;else{let e=this.transmuxer;e&&(e.destroy(),this.transmuxer=null)}let t=this.observer;t&&t.removeAllListeners(),this.frag=null,this.observer=null,this.hls=null}push(t,e,i,n,r,s,a,l,d,u){var f,E;d.transmuxing.start=self.performance.now();let{transmuxer:S}=this,T=s?s.start:r.start,_=r.decryptdata,D=this.frag,w=!(D&&r.cc===D.cc),x=!(D&&d.level===D.level),M=D?d.sn-D.sn:-1,V=this.part?d.part-this.part.index:-1,X=M===0&&d.id>1&&d.id===(D==null?void 0:D.stats.chunkCount),ot=!x&&(M===1||M===0&&(V===1||X&&V<=0)),et=self.performance.now();(x||M||r.stats.parsing.start===0)&&(r.stats.parsing.start=et),!s||!V&&ot||(s.stats.parsing.start=et);let vt=!(D&&((f=r.initSegment)==null?void 0:f.url)===((E=D.initSegment)==null?void 0:E.url)),St=new gr(w,ot,l,x,T,vt);if(!ot||w||vt){C.log(`[transmuxer-interface, ${r.type}]: Starting new transmux session for sn: ${d.sn} p: ${d.part} level: ${d.level} id: ${d.id}
|
|
26
|
+
discontinuity: ${w}
|
|
27
|
+
trackSwitch: ${x}
|
|
28
|
+
contiguous: ${ot}
|
|
29
|
+
accurateTimeOffset: ${l}
|
|
30
|
+
timeOffset: ${T}
|
|
31
|
+
initSegmentChange: ${vt}`);let nt=new $i(i,n,e,a,u);this.configureTransmuxer(nt)}if(this.frag=r,this.part=s,this.workerContext)this.workerContext.worker.postMessage({cmd:"demux",data:t,decryptdata:_,chunkMeta:d,state:St},t instanceof ArrayBuffer?[t]:[]);else if(S){let nt=S.push(t,_,d,St);bi(nt)?(S.async=!0,nt.then((it)=>{this.handleTransmuxComplete(it)}).catch((it)=>{this.transmuxerError(it,d,"transmuxer-interface push error")})):(S.async=!1,this.handleTransmuxComplete(nt))}}flush(t){t.transmuxing.start=self.performance.now();let{transmuxer:e}=this;if(this.workerContext)this.workerContext.worker.postMessage({cmd:"flush",chunkMeta:t});else if(e){let i=e.flush(t);bi(i)||e.async?(bi(i)||(i=Promise.resolve(i)),i.then((n)=>{this.handleFlushResult(n,t)}).catch((n)=>{this.transmuxerError(n,t,"transmuxer-interface flush error")})):this.handleFlushResult(i,t)}}transmuxerError(t,e,i){this.hls&&(this.error=t,this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_PARSING_ERROR,chunkMeta:e,fatal:!1,error:t,err:t,reason:i}))}handleFlushResult(t,e){t.forEach((i)=>{this.handleTransmuxComplete(i)}),this.onFlush(e)}onWorkerMessage(t){let e=t.data,i=this.hls;switch(e.event){case"init":{var n;let r=(n=this.workerContext)==null?void 0:n.objectURL;r&&self.URL.revokeObjectURL(r);break}case"transmuxComplete":this.handleTransmuxComplete(e.data);break;case"flush":this.onFlush(e.data);break;case"workerLog":C[e.data.logType]&&C[e.data.logType](e.data.message);break;default:e.data=e.data||{},e.data.frag=this.frag,e.data.id=this.id,i.trigger(e.event,e.data)}}configureTransmuxer(t){let{transmuxer:e}=this;this.workerContext?this.workerContext.worker.postMessage({cmd:"configure",config:t}):e&&e.configure(t)}handleTransmuxComplete(t){t.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(t)}}function El(t,e){if(t.length!==e.length)return!1;for(let i=0;i<t.length;i++)if(!ps(t[i].attrs,e[i].attrs))return!1;return!0}function ps(t,e,i){let n=t["STABLE-RENDITION-ID"];return n&&!i?n===e["STABLE-RENDITION-ID"]:!(i||["LANGUAGE","NAME","CHARACTERISTICS","AUTOSELECT","DEFAULT","FORCED","ASSOC-LANGUAGE"]).some((r)=>t[r]!==e[r])}function Do(t,e){return e.label.toLowerCase()===t.name.toLowerCase()&&(!e.language||e.language.toLowerCase()===(t.lang||"").toLowerCase())}class Sl{constructor(t){this.buffered=void 0;let e=(i,n,r)=>{if((n>>>=0)>r-1)throw new DOMException(`Failed to execute '${i}' on 'TimeRanges': The index provided (${n}) is greater than the maximum bound (${r})`);return t[n][i]};this.buffered={get length(){return t.length},end:(i)=>e("end",i,t.length),start:(i)=>e("start",i,t.length)}}}class bl{constructor(t){this.buffers=void 0,this.queues={video:[],audio:[],audiovideo:[]},this.buffers=t}append(t,e,i){let n=this.queues[e];n.push(t),n.length!==1||i||this.executeNext(e)}insertAbort(t,e){this.queues[e].unshift(t),this.executeNext(e)}appendBlocker(t){let e,i=new Promise((r)=>{e=r}),n={execute:e,onStart:()=>{},onComplete:()=>{},onError:()=>{}};return this.append(n,t),i}executeNext(t){let e=this.queues[t];if(e.length){let i=e[0];try{i.execute()}catch(n){C.warn(`[buffer-operation-queue]: Exception executing "${t}" SourceBuffer operation: ${n}`),i.onError(n);let r=this.buffers[t];r!=null&&r.updating||this.shiftAndExecuteNext(t)}}}shiftAndExecuteNext(t){this.queues[t].shift(),this.executeNext(t)}current(t){return this.queues[t][0]}}let Tl=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/;function Al(t){let e=t.querySelectorAll("source");[].slice.call(e).forEach((i)=>{t.removeChild(i)})}let _l={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},Ll=function(t){let e=t;return _l.hasOwnProperty(t)&&(e=_l[t]),String.fromCharCode(e)},dd={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},ud={17:2,18:4,21:6,22:8,23:10,19:13,20:15},hd={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},fd={25:2,26:4,29:6,30:8,31:10,27:13,28:15},md=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];class wl{constructor(){this.time=null,this.verboseLevel=0}log(t,e){if(this.verboseLevel>=t){let i=typeof e=="function"?e():e;C.log(`${this.time} [${t}] ${i}`)}}}let $r=function(t){let e=[];for(let i=0;i<t.length;i++)e.push(t[i].toString(16));return e};class Co{constructor(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}reset(){this.foreground="white",this.underline=!1,this.italics=!1,this.background="black",this.flash=!1}setStyles(t){let e=["foreground","underline","italics","background","flash"];for(let i=0;i<e.length;i++){let n=e[i];t.hasOwnProperty(n)&&(this[n]=t[n])}}isDefault(){return this.foreground==="white"&&!this.underline&&!this.italics&&this.background==="black"&&!this.flash}equals(t){return this.foreground===t.foreground&&this.underline===t.underline&&this.italics===t.italics&&this.background===t.background&&this.flash===t.flash}copy(t){this.foreground=t.foreground,this.underline=t.underline,this.italics=t.italics,this.background=t.background,this.flash=t.flash}toString(){return"color="+this.foreground+", underline="+this.underline+", italics="+this.italics+", background="+this.background+", flash="+this.flash}}class kl{constructor(){this.uchar=" ",this.penState=new Co}reset(){this.uchar=" ",this.penState.reset()}setChar(t,e){this.uchar=t,this.penState.copy(e)}setPenState(t){this.penState.copy(t)}equals(t){return this.uchar===t.uchar&&this.penState.equals(t.penState)}copy(t){this.uchar=t.uchar,this.penState.copy(t.penState)}isEmpty(){return this.uchar===" "&&this.penState.isDefault()}}class Rl{constructor(t){this.chars=[],this.pos=0,this.currPenState=new Co,this.cueStartTime=null,this.logger=void 0;for(let e=0;e<100;e++)this.chars.push(new kl);this.logger=t}equals(t){for(let e=0;e<100;e++)if(!this.chars[e].equals(t.chars[e]))return!1;return!0}copy(t){for(let e=0;e<100;e++)this.chars[e].copy(t.chars[e])}isEmpty(){let t=!0;for(let e=0;e<100;e++)if(!this.chars[e].isEmpty()){t=!1;break}return t}setCursor(t){this.pos!==t&&(this.pos=t),this.pos<0?(this.logger.log(3,"Negative cursor position "+this.pos),this.pos=0):this.pos>100&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=100)}moveCursor(t){let e=this.pos+t;if(t>1)for(let i=this.pos+1;i<e+1;i++)this.chars[i].setPenState(this.currPenState);this.setCursor(e)}backSpace(){this.moveCursor(-1),this.chars[this.pos].setChar(" ",this.currPenState)}insertChar(t){t>=144&&this.backSpace();let e=Ll(t);this.pos>=100?this.logger.log(0,()=>"Cannot insert "+t.toString(16)+" ("+e+") at position "+this.pos+". Skipping it!"):(this.chars[this.pos].setChar(e,this.currPenState),this.moveCursor(1))}clearFromPos(t){let e;for(e=t;e<100;e++)this.chars[e].reset()}clear(){this.clearFromPos(0),this.pos=0,this.currPenState.reset()}clearToEndOfRow(){this.clearFromPos(this.pos)}getTextString(){let t=[],e=!0;for(let i=0;i<100;i++){let n=this.chars[i].uchar;n!==" "&&(e=!1),t.push(n)}return e?"":t.join("")}setPenStyles(t){this.currPenState.setStyles(t),this.chars[this.pos].setPenState(this.currPenState)}}class $a{constructor(t){this.rows=[],this.currRow=14,this.nrRollUpRows=null,this.lastOutputScreen=null,this.logger=void 0;for(let e=0;e<15;e++)this.rows.push(new Rl(t));this.logger=t}reset(){for(let t=0;t<15;t++)this.rows[t].clear();this.currRow=14}equals(t){let e=!0;for(let i=0;i<15;i++)if(!this.rows[i].equals(t.rows[i])){e=!1;break}return e}copy(t){for(let e=0;e<15;e++)this.rows[e].copy(t.rows[e])}isEmpty(){let t=!0;for(let e=0;e<15;e++)if(!this.rows[e].isEmpty()){t=!1;break}return t}backSpace(){this.rows[this.currRow].backSpace()}clearToEndOfRow(){this.rows[this.currRow].clearToEndOfRow()}insertChar(t){this.rows[this.currRow].insertChar(t)}setPen(t){this.rows[this.currRow].setPenStyles(t)}moveCursor(t){this.rows[this.currRow].moveCursor(t)}setCursor(t){this.logger.log(2,"setCursor: "+t),this.rows[this.currRow].setCursor(t)}setPAC(t){this.logger.log(2,()=>"pacData = "+JSON.stringify(t));let e=t.row-1;if(this.nrRollUpRows&&e<this.nrRollUpRows-1&&(e=this.nrRollUpRows-1),this.nrRollUpRows&&this.currRow!==e){for(let a=0;a<15;a++)this.rows[a].clear();let r=this.currRow+1-this.nrRollUpRows,s=this.lastOutputScreen;if(s){let a=s.rows[r].cueStartTime,l=this.logger.time;if(a!==null&&l!==null&&a<l)for(let d=0;d<this.nrRollUpRows;d++)this.rows[e-this.nrRollUpRows+d+1].copy(s.rows[r+d])}}this.currRow=e;let i=this.rows[this.currRow];if(t.indent!==null){let r=t.indent,s=Math.max(r-1,0);i.setCursor(t.indent),t.color=i.chars[s].penState.foreground}let n={foreground:t.color,underline:t.underline,italics:t.italics,background:"black",flash:!1};this.setPen(n)}setBkgData(t){this.logger.log(2,()=>"bkgData = "+JSON.stringify(t)),this.backSpace(),this.setPen(t),this.insertChar(32)}setRollUpRows(t){this.nrRollUpRows=t}rollUp(){if(this.nrRollUpRows===null)return void this.logger.log(3,"roll_up but nrRollUpRows not set yet");this.logger.log(1,()=>this.getDisplayText());let t=this.currRow+1-this.nrRollUpRows,e=this.rows.splice(t,1)[0];e.clear(),this.rows.splice(this.currRow,0,e),this.logger.log(2,"Rolling up")}getDisplayText(t){t=t||!1;let e=[],i="",n=-1;for(let r=0;r<15;r++){let s=this.rows[r].getTextString();s&&(n=r+1,t?e.push("Row "+n+": '"+s+"'"):e.push(s.trim()))}return e.length>0&&(i=t?"["+e.join(" | ")+"]":e.join(`
|
|
32
|
+
`)),i}getTextAndFormat(){return this.rows}}class Io{constructor(t,e,i){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=t,this.outputFilter=e,this.mode=null,this.verbose=0,this.displayedMemory=new $a(i),this.nonDisplayedMemory=new $a(i),this.lastOutputScreen=new $a(i),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=i}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(t){this.outputFilter=t}setPAC(t){this.writeScreen.setPAC(t)}setBkgData(t){this.writeScreen.setBkgData(t)}setMode(t){t!==this.mode&&(this.mode=t,this.logger.log(2,()=>"MODE="+t),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=t)}insertChars(t){for(let i=0;i<t.length;i++)this.writeScreen.insertChar(t[i]);let e=this.writeScreen===this.displayedMemory?"DISP":"NON_DISP";this.logger.log(2,()=>e+": "+this.writeScreen.getDisplayText(!0)),this.mode!=="MODE_PAINT-ON"&&this.mode!=="MODE_ROLL-UP"||(this.logger.log(1,()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")}ccBS(){this.logger.log(2,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(t){this.logger.log(2,"RU("+t+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(t)}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()}ccEOC(){if(this.logger.log(2,"EOC - End Of Caption"),this.mode==="MODE_POP-ON"){let t=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=t,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)}ccTO(t){this.logger.log(2,"TO("+t+") - Tab Offset"),this.writeScreen.moveCursor(t)}ccMIDROW(t){let e={flash:!1};if(e.underline=t%2==1,e.italics=t>=46,e.italics)e.foreground="white";else{let i=Math.floor(t/2)-16,n=["white","green","blue","cyan","red","yellow","magenta"];e.foreground=n[i]}this.logger.log(2,"MIDROW: "+JSON.stringify(e)),this.writeScreen.setPen(e)}outputDataUpdate(t=!1){let e=this.logger.time;e!==null&&this.outputFilter&&(this.cueStartTime!==null||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),t&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(t){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,t,this.displayedMemory),this.cueStartTime=t))}}class Oo{constructor(t,e,i){this.channels=void 0,this.currentChannel=0,this.cmdHistory={a:null,b:null},this.logger=void 0;let n=this.logger=new wl;this.channels=[null,new Io(t,e,n),new Io(t+1,i,n)]}getHandler(t){return this.channels[t].getHandler()}setHandler(t,e){this.channels[t].setHandler(e)}addData(t,e){let i,n,r,s=!1;this.logger.time=t;for(let a=0;a<e.length;a+=2)if(n=127&e[a],r=127&e[a+1],n!==0||r!==0){if(this.logger.log(3,"["+$r([e[a],e[a+1]])+"] -> ("+$r([n,r])+")"),i=this.parseCmd(n,r),i||(i=this.parseMidrow(n,r)),i||(i=this.parsePAC(n,r)),i||(i=this.parseBackgroundAttributes(n,r)),!i&&(s=this.parseChars(n,r),s)){let l=this.currentChannel;if(l&&l>0)this.channels[l].insertChars(s);else this.logger.log(2,"No channel found yet. TEXT-MODE?")}i||s||this.logger.log(2,"Couldn't parse cleaned data "+$r([n,r])+" orig: "+$r([e[a],e[a+1]]))}}parseCmd(t,e){let{cmdHistory:i}=this;if(!((t===20||t===28||t===21||t===29)&&e>=32&&e<=47)&&!((t===23||t===31)&&e>=33&&e<=35))return!1;if(Dl(t,e,i))return vs(null,null,i),this.logger.log(3,"Repeated command ("+$r([t,e])+") is dropped"),!0;let n=t===20||t===21||t===23?1:2,r=this.channels[n];return t===20||t===21||t===28||t===29?e===32?r.ccRCL():e===33?r.ccBS():e===34?r.ccAOF():e===35?r.ccAON():e===36?r.ccDER():e===37?r.ccRU(2):e===38?r.ccRU(3):e===39?r.ccRU(4):e===40?r.ccFON():e===41?r.ccRDC():e===42?r.ccTR():e===43?r.ccRTD():e===44?r.ccEDM():e===45?r.ccCR():e===46?r.ccENM():e===47&&r.ccEOC():r.ccTO(e-32),vs(t,e,i),this.currentChannel=n,!0}parseMidrow(t,e){let i=0;if((t===17||t===25)&&e>=32&&e<=47){if(i=t===17?1:2,i!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;let n=this.channels[i];return!!n&&(n.ccMIDROW(e),this.logger.log(3,"MIDROW ("+$r([t,e])+")"),!0)}return!1}parsePAC(t,e){let i,n=this.cmdHistory;if(!((t>=17&&t<=23||t>=25&&t<=31)&&e>=64&&e<=127)&&!((t===16||t===24)&&e>=64&&e<=95))return!1;if(Dl(t,e,n))return vs(null,null,n),!0;let r=t<=23?1:2;i=e>=64&&e<=95?r===1?dd[t]:hd[t]:r===1?ud[t]:fd[t];let s=this.channels[r];return!!s&&(s.setPAC(this.interpretPAC(i,e)),vs(t,e,n),this.currentChannel=r,!0)}interpretPAC(t,e){let i,n={color:null,italics:!1,indent:null,underline:!1,row:t};return i=e>95?e-96:e-64,n.underline=(1&i)==1,i<=13?n.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(n.italics=!0,n.color="white"):n.indent=4*Math.floor((i-16)/2),n}parseChars(t,e){let i,n=null,r=null;if(t>=25?(i=2,r=t-8):(i=1,r=t),r>=17&&r<=19){let s;s=r===17?e+80:r===18?e+112:e+144,this.logger.log(2,"Special char '"+Ll(s)+"' in channel "+i),n=[s]}else t>=32&&t<=127&&(n=e===0?[t]:[t,e]);if(n){let s=$r(n);this.logger.log(3,"Char codes = "+s.join(",")),vs(t,e,this.cmdHistory)}return n}parseBackgroundAttributes(t,e){if(!((t===16||t===24)&&e>=32&&e<=47)&&!((t===23||t===31)&&e>=45&&e<=47))return!1;let i,n={};t===16||t===24?(i=Math.floor((e-32)/2),n.background=md[i],e%2==1&&(n.background=n.background+"_semi")):e===45?n.background="transparent":(n.foreground="black",e===47&&(n.underline=!0));let r=t<=23?1:2;return this.channels[r].setBkgData(n),vs(t,e,this.cmdHistory),!0}reset(){for(let t=0;t<Object.keys(this.channels).length;t++){let e=this.channels[t];e&&e.reset()}this.cmdHistory={a:null,b:null}}cueSplitAtTime(t){for(let e=0;e<this.channels.length;e++){let i=this.channels[e];i&&i.cueSplitAtTime(t)}}}function vs(t,e,i){i.a=t,i.b=e}function Dl(t,e,i){return i.a===t&&i.b===e}class aa{constructor(t,e){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=t,this.trackName=e}dispatchCue(){this.startTime!==null&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(t,e,i){(this.startTime===null||this.startTime>t)&&(this.startTime=t),this.endTime=e,this.screen=i,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}var xo=function(){if(we!=null&&we.VTTCue)return self.VTTCue;let t=["","lr","rl"],e=["start","middle","end","left","right"];function i(a,l){if(typeof l!="string")return!1;if(!Array.isArray(a))return!1;let d=l.toLowerCase();return!!~a.indexOf(d)&&d}function n(a){return i(e,a)}function r(a,...l){let d=1;for(;d<arguments.length;d++){let u=arguments[d];for(let f in u)a[f]=u[f]}return a}function s(a,l,d){let u=this,f={enumerable:!0};u.hasBeenReset=!1;let E="",S=!1,T=a,_=l,D=d,w=null,x="",M=!0,V="auto",X="start",ot=50,et="middle",vt=50,St="middle";Object.defineProperty(u,"id",r({},f,{get:function(){return E},set:function(nt){E=""+nt}})),Object.defineProperty(u,"pauseOnExit",r({},f,{get:function(){return S},set:function(nt){S=!!nt}})),Object.defineProperty(u,"startTime",r({},f,{get:function(){return T},set:function(nt){if(typeof nt!="number")throw new TypeError("Start time must be set to a number.");T=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"endTime",r({},f,{get:function(){return _},set:function(nt){if(typeof nt!="number")throw new TypeError("End time must be set to a number.");_=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"text",r({},f,{get:function(){return D},set:function(nt){D=""+nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"region",r({},f,{get:function(){return w},set:function(nt){w=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"vertical",r({},f,{get:function(){return x},set:function(nt){let it=function(jt){return i(t,jt)}(nt);if(it===!1)throw new SyntaxError("An invalid or illegal string was specified.");x=it,this.hasBeenReset=!0}})),Object.defineProperty(u,"snapToLines",r({},f,{get:function(){return M},set:function(nt){M=!!nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"line",r({},f,{get:function(){return V},set:function(nt){if(typeof nt!="number"&&nt!=="auto")throw new SyntaxError("An invalid number or illegal string was specified.");V=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"lineAlign",r({},f,{get:function(){return X},set:function(nt){let it=n(nt);if(!it)throw new SyntaxError("An invalid or illegal string was specified.");X=it,this.hasBeenReset=!0}})),Object.defineProperty(u,"position",r({},f,{get:function(){return ot},set:function(nt){if(nt<0||nt>100)throw new Error("Position must be between 0 and 100.");ot=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"positionAlign",r({},f,{get:function(){return et},set:function(nt){let it=n(nt);if(!it)throw new SyntaxError("An invalid or illegal string was specified.");et=it,this.hasBeenReset=!0}})),Object.defineProperty(u,"size",r({},f,{get:function(){return vt},set:function(nt){if(nt<0||nt>100)throw new Error("Size must be between 0 and 100.");vt=nt,this.hasBeenReset=!0}})),Object.defineProperty(u,"align",r({},f,{get:function(){return St},set:function(nt){let it=n(nt);if(!it)throw new SyntaxError("An invalid or illegal string was specified.");St=it,this.hasBeenReset=!0}})),u.displayState=void 0}return s.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},s}();class Cl{decode(t,e){if(!t)return"";if(typeof t!="string")throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}function Il(t){function e(n,r,s,a){return 3600*(0|n)+60*(0|r)+(0|s)+parseFloat(a||0)}let i=t.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return i?parseFloat(i[2])>59?e(i[2],i[3],0,i[4]):e(i[1],i[2],i[3],i[4]):null}class Ol{constructor(){this.values=Object.create(null)}set(t,e){this.get(t)||e===""||(this.values[t]=e)}get(t,e,i){return i?this.has(t)?this.values[t]:e[i]:this.has(t)?this.values[t]:e}has(t){return t in this.values}alt(t,e,i){for(let n=0;n<i.length;++n)if(e===i[n]){this.set(t,e);break}}integer(t,e){/^-?\d+$/.test(e)&&this.set(t,parseInt(e,10))}percent(t,e){if(/^([\d]{1,3})(\.[\d]*)?%$/.test(e)){let i=parseFloat(e);if(i>=0&&i<=100)return this.set(t,i),!0}return!1}}function xl(t,e,i,n){let r=n?t.split(n):[t];for(let s in r){if(typeof r[s]!="string")continue;let a=r[s].split(i);if(a.length!==2)continue;e(a[0],a[1])}}let No=new xo(0,0,""),Ga=No.align==="middle"?"middle":"center";function gd(t,e,i){let n=t;function r(){let a=Il(t);if(a===null)throw new Error("Malformed timestamp: "+n);return t=t.replace(/^[^\sa-zA-Z-]+/,""),a}function s(){t=t.replace(/^\s+/,"")}if(s(),e.startTime=r(),s(),t.slice(0,3)!=="-->")throw new Error("Malformed time stamp (time stamps must be separated by '-->'): "+n);t=t.slice(3),s(),e.endTime=r(),s(),function(a,l){let d=new Ol;xl(a,function(E,S){let T;switch(E){case"region":for(let _=i.length-1;_>=0;_--)if(i[_].id===S){d.set(E,i[_].region);break}break;case"vertical":d.alt(E,S,["rl","lr"]);break;case"line":T=S.split(","),d.integer(E,T[0]),d.percent(E,T[0])&&d.set("snapToLines",!1),d.alt(E,T[0],["auto"]),T.length===2&&d.alt("lineAlign",T[1],["start",Ga,"end"]);break;case"position":T=S.split(","),d.percent(E,T[0]),T.length===2&&d.alt("positionAlign",T[1],["start",Ga,"end","line-left","line-right","auto"]);break;case"size":d.percent(E,S);break;case"align":d.alt(E,S,["start",Ga,"end","left","right"])}},/:/,/\s/),l.region=d.get("region",null),l.vertical=d.get("vertical","");let u=d.get("line","auto");u==="auto"&&No.line===-1&&(u=-1),l.line=u,l.lineAlign=d.get("lineAlign","start"),l.snapToLines=d.get("snapToLines",!0),l.size=d.get("size",100),l.align=d.get("align",Ga);let f=d.get("position","auto");f==="auto"&&No.position===50&&(f=l.align==="start"||l.align==="left"?0:l.align==="end"||l.align==="right"?100:50),l.position=f}(t,e)}function Nl(t){return t.replace(/<br(?: \/)?>/gi,`
|
|
33
|
+
`)}class Pl{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new Cl,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(t){let e=this;function i(){let n=e.buffer,r=0;for(n=Nl(n);r<n.length&&n[r]!=="\r"&&n[r]!==`
|
|
34
|
+
`;)++r;let s=n.slice(0,r);return n[r]==="\r"&&++r,n[r]===`
|
|
35
|
+
`&&++r,e.buffer=n.slice(r),s}t&&(e.buffer+=e.decoder.decode(t,{stream:!0}));try{let n="";if(e.state==="INITIAL"){if(!/\r\n|\n/.test(e.buffer))return this;n=i();let s=n.match(/^()?WEBVTT([ \t].*)?$/);if(s==null||!s[0])throw new Error("Malformed WebVTT signature.");e.state="HEADER"}let r=!1;for(;e.buffer;){if(!/\r\n|\n/.test(e.buffer))return this;switch(r?r=!1:n=i(),e.state){case"HEADER":/:/.test(n)?xl(n,function(s,a){},/:/):n||(e.state="ID");continue;case"NOTE":n||(e.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(n)){e.state="NOTE";break}if(!n)continue;if(e.cue=new xo(0,0,""),e.state="CUE",n.indexOf("-->")===-1){e.cue.id=n;continue}case"CUE":if(!e.cue){e.state="BADCUE";continue}try{gd(n,e.cue,e.regionList)}catch(s){e.cue=null,e.state="BADCUE";continue}e.state="CUETEXT";continue;case"CUETEXT":{let s=n.indexOf("-->")!==-1;if(!n||s&&(r=!0)){e.oncue&&e.cue&&e.oncue(e.cue),e.cue=null,e.state="ID";continue}if(e.cue===null)continue;e.cue.text&&(e.cue.text+=`
|
|
36
|
+
`),e.cue.text+=n}continue;case"BADCUE":n||(e.state="ID")}}}catch(n){e.state==="CUETEXT"&&e.cue&&e.oncue&&e.oncue(e.cue),e.cue=null,e.state=e.state==="INITIAL"?"BADWEBVTT":"BADCUE"}return this}flush(){let t=this;try{if((t.cue||t.state==="HEADER")&&(t.buffer+=`
|
|
37
|
+
|
|
38
|
+
`,t.parse()),t.state==="INITIAL"||t.state==="BADWEBVTT")throw new Error("Malformed WebVTT signature.")}catch(e){t.onparsingerror&&t.onparsingerror(e)}return t.onflush&&t.onflush(),this}}let pd=/\r\n|\n\r|\n|\r/g,Po=function(t,e,i=0){return t.slice(i,i+e.length)===e},Mo=function(t){let e=5381,i=t.length;for(;i;)e=33*e^t.charCodeAt(--i);return(e>>>0).toString()};function Fo(t,e,i){return Mo(t.toString())+Mo(e.toString())+Mo(i)}function vd(t,e,i,n,r,s,a){let l=new Pl,d=We(new Uint8Array(t)).trim().replace(pd,`
|
|
39
|
+
`).split(`
|
|
40
|
+
`),u=[],f=e?function(w,x=1){return v(w,90000,1/x)}(e.baseTime,e.timescale):0,E,S="00:00.000",T=0,_=0,D=!0;l.oncue=function(w){let x=i[n],M=i.ccOffset,V=(T-f)/90000;if(x!=null&&x.new&&(_!==void 0?M=i.ccOffset=x.start:function(vt,St,nt){let it=vt[St],jt=vt[it.prevCC];if(!jt||!jt.new&&it.new)return vt.ccOffset=vt.presentationOffset=it.start,void(it.new=!1);for(;(At=jt)!=null&&At.new;){var At;vt.ccOffset+=it.start-jt.start,it.new=!1,it=jt,jt=vt[it.prevCC]}vt.presentationOffset=nt}(i,n,V)),V){if(!e)return void(E=new Error("Missing initPTS for VTT MPEGTS"));M=V-i.presentationOffset}let X=w.endTime-w.startTime,ot=Z(90000*(w.startTime+M-_),90000*r)/90000;w.startTime=Math.max(ot,0),w.endTime=Math.max(ot+X,0);let et=w.text.trim();w.text=decodeURIComponent(encodeURIComponent(et)),w.id||(w.id=Fo(w.startTime,w.endTime,et)),w.endTime>0&&u.push(w)},l.onparsingerror=function(w){E=w},l.onflush=function(){E?a(E):s(u)},d.forEach((w)=>{if(D){if(Po(w,"X-TIMESTAMP-MAP=")){D=!1,w.slice(16).split(",").forEach((x)=>{Po(x,"LOCAL:")?S=x.slice(6):Po(x,"MPEGTS:")&&(T=parseInt(x.slice(7)))});try{_=function(x){let M=parseInt(x.slice(-3)),V=parseInt(x.slice(-6,-4)),X=parseInt(x.slice(-9,-7)),ot=x.length>9?parseInt(x.substring(0,x.indexOf(":"))):0;if(!(j(M)&&j(V)&&j(X)&&j(ot)))throw Error("Malformed X-TIMESTAMP-MAP: Local:"+x);return M+=1000*V,M+=60000*X,M+=3600000*ot,M}(S)/1000}catch(x){E=x}return}w===""&&(D=!1)}l.parse(w+`
|
|
41
|
+
`)}),l.flush()}let Ml=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,Fl=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,yd={left:"start",center:"center",right:"end",start:"start",end:"end"};function Bl(t,e,i,n){let r=Q(new Uint8Array(t),["mdat"]);if(r.length===0)return void n(new Error("Could not parse IMSC1 mdat"));let s=r.map((l)=>We(l)),a=function(l,d,u=1,f=!1){return v(l,d,1/u,f)}(e.baseTime,1,e.timescale);try{s.forEach((l)=>i(function(d,u){let f=new DOMParser,E=f.parseFromString(d,"text/xml").getElementsByTagName("tt")[0];if(!E)throw new Error("Invalid ttml");let S={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},T=Object.keys(S).reduce((M,V)=>(M[V]=E.getAttribute("ttp:"+V)||S[V],M),{}),_=E.getAttribute("xml:space")!=="preserve",D=Ul(Bo(E,"styling","style")),w=Ul(Bo(E,"layout","region")),x=Bo(E,"body","[begin]");return[].map.call(x,(M)=>{let V=function it(jt,At){return[].slice.call(jt.childNodes).reduce((Kt,zt,Xt)=>{var ht;return zt.nodeName==="br"&&Xt?Kt+`
|
|
42
|
+
`:(ht=zt.childNodes)!=null&&ht.length?it(zt,At):At?Kt+zt.textContent.trim().replace(/\s+/g," "):Kt+zt.textContent},"")}(M,_);if(!V||!M.hasAttribute("begin"))return null;let X=$o(M.getAttribute("begin"),T),ot=$o(M.getAttribute("dur"),T),et=$o(M.getAttribute("end"),T);if(X===null)throw $l(M);if(et===null){if(ot===null)throw $l(M);et=X+ot}let vt=new xo(X-u,et-u,V);vt.id=Fo(vt.startTime,vt.endTime,vt.text);let St=function(it,jt,At){let zt=null,Xt=it!=null&&it.hasAttribute("style")?it.getAttribute("style"):null;return Xt&&At.hasOwnProperty(Xt)&&(zt=At[Xt]),["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"].reduce((ht,wt)=>{let Wt=Uo(jt,"http://www.w3.org/ns/ttml#styling",wt)||Uo(it,"http://www.w3.org/ns/ttml#styling",wt)||Uo(zt,"http://www.w3.org/ns/ttml#styling",wt);return Wt&&(ht[wt]=Wt),ht},{})}(w[M.getAttribute("region")],D[M.getAttribute("style")],D),{textAlign:nt}=St;if(nt){let it=yd[nt];it&&(vt.lineAlign=it),vt.align=nt}return z(vt,St),vt}).filter((M)=>M!==null)}(l,a)))}catch(l){n(l)}}function Bo(t,e,i){let n=t.getElementsByTagName(e)[0];return n?[].slice.call(n.querySelectorAll(i)):[]}function Ul(t){return t.reduce((e,i)=>{let n=i.getAttribute("xml:id");return n&&(e[n]=i),e},{})}function Uo(t,e,i){return t&&t.hasAttributeNS(e,i)?t.getAttributeNS(e,i):null}function $l(t){return new Error("Could not parse ttml timestamp "+t)}function $o(t,e){if(!t)return null;let i=Il(t);return i===null&&(Ml.test(t)?i=function(n,r){let s=Ml.exec(n),a=(0|s[4])+(0|s[5])/r.subFrameRate;return 3600*(0|s[1])+60*(0|s[2])+(0|s[3])+a/r.frameRate}(t,e):Fl.test(t)&&(i=function(n,r){let s=Fl.exec(n),a=Number(s[1]);switch(s[2]){case"h":return 3600*a;case"m":return 60*a;case"ms":return 1000*a;case"f":return a/r.frameRate;case"t":return a/r.tickRate}return a}(t,e))),i}function Gl(t){return t.characteristics&&/transcribes-spoken-dialog/gi.test(t.characteristics)&&/describes-music-and-sound/gi.test(t.characteristics)?"captions":"subtitles"}function Hl(t,e){return!!t&&t.kind===Gl(e)&&Do(e,t)}class Go{constructor(t){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=t,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(t){this.streamController=t}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){let{hls:t}=this;t.on(A.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.on(A.MEDIA_ATTACHING,this.onMediaAttaching,this),t.on(A.MANIFEST_PARSED,this.onManifestParsed,this),t.on(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(A.BUFFER_CODECS,this.onBufferCodecs,this),t.on(A.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){let{hls:t}=this;t.off(A.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),t.off(A.MEDIA_ATTACHING,this.onMediaAttaching,this),t.off(A.MANIFEST_PARSED,this.onManifestParsed,this),t.off(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(A.BUFFER_CODECS,this.onBufferCodecs,this),t.off(A.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(t,e){let i=this.hls.levels[e.droppedLevel];this.isLevelAllowed(i)&&this.restrictedLevels.push({bitrate:i.bitrate,height:i.height,width:i.width})}onMediaAttaching(t,e){this.media=e.media instanceof HTMLVideoElement?e.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(t,e){let i=this.hls;this.restrictedLevels=[],this.firstLevel=e.firstLevel,i.config.capLevelToPlayerSize&&e.video&&this.startCapping()}onLevelsUpdated(t,e){this.timer&&j(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(t,e){this.hls.config.capLevelToPlayerSize&&e.video&&this.startCapping()}onMediaDetaching(){this.stopCapping()}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0)return void(this.clientRect=null);let t=this.hls.levels;if(t.length){let e=this.hls,i=this.getMaxLevel(t.length-1);i!==this.autoLevelCapping&&C.log(`Setting autoLevelCapping to ${i}: ${t[i].height}p@${t[i].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`),e.autoLevelCapping=i,e.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=e.autoLevelCapping}}}getMaxLevel(t){let e=this.hls.levels;if(!e.length)return-1;let i=e.filter((n,r)=>this.isLevelAllowed(n)&&r<=t);return this.clientRect=null,Go.getMaxLevelByMediaSize(i,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1000),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}getDimensions(){if(this.clientRect)return this.clientRect;let t=this.media,e={width:0,height:0};if(t){let i=t.getBoundingClientRect();e.width=i.width,e.height=i.height,e.width||e.height||(e.width=i.right-i.left||t.width||0,e.height=i.bottom-i.top||t.height||0)}return this.clientRect=e,e}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let t=1;if(!this.hls.config.ignoreDevicePixelRatio)try{t=self.devicePixelRatio}catch(e){}return t}isLevelAllowed(t){return!this.restrictedLevels.some((e)=>t.bitrate===e.bitrate&&t.width===e.width&&t.height===e.height)}static getMaxLevelByMediaSize(t,e,i){if(t==null||!t.length)return-1;let n=t.length-1,r=Math.max(e,i);for(let l=0;l<t.length;l+=1){let d=t[l];if((d.width>=r||d.height>=r)&&(s=d,!(a=t[l+1])||s.width!==a.width||s.height!==a.height)){n=l;break}}var s,a;return n}}class ys{constructor(t){this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.setMediaKeysQueue=ys.CDMCleanupPromise?[ys.CDMCleanupPromise]:[],this.onMediaEncrypted=this._onMediaEncrypted.bind(this),this.onWaitingForKey=this._onWaitingForKey.bind(this),this.debug=C.debug.bind(C,"[eme]"),this.log=C.log.bind(C,"[eme]"),this.warn=C.warn.bind(C,"[eme]"),this.error=C.error.bind(C,"[eme]"),this.hls=t,this.config=t.config,this.registerListeners()}destroy(){this.unregisterListeners(),this.onMediaDetached();let t=this.config;t.requestMediaKeySystemAccessFunc=null,t.licenseXhrSetup=t.licenseResponseCallback=void 0,t.drmSystems=t.drmSystemOptions={},this.hls=this.onMediaEncrypted=this.onWaitingForKey=this.keyIdToKeySessionPromise=null,this.config=null}registerListeners(){this.hls.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(A.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(A.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(A.MANIFEST_LOADED,this.onManifestLoaded,this)}unregisterListeners(){this.hls.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(A.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(A.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(A.MANIFEST_LOADED,this.onManifestLoaded,this)}getLicenseServerUrl(t){let{drmSystems:e,widevineLicenseUrl:i}=this.config,n=e[t];if(n)return n.licenseUrl;if(t===se.WIDEVINE&&i)return i;throw new Error(`no license server URL configured for key-system "${t}"`)}getServerCertificateUrl(t){let{drmSystems:e}=this.config,i=e[t];if(i)return i.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${t}"]`)}attemptKeySystemAccess(t){let e=this.hls.levels,i=(s,a,l)=>!!s&&l.indexOf(s)===a,n=e.map((s)=>s.audioCodec).filter(i),r=e.map((s)=>s.videoCodec).filter(i);return n.length+r.length===0&&r.push("avc1.42e01e"),new Promise((s,a)=>{let l=(d)=>{let u=d.shift();this.getMediaKeysPromise(u,n,r).then((f)=>s({keySystem:u,mediaKeys:f})).catch((f)=>{d.length?l(d):a(f instanceof tn?f:new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_NO_ACCESS,error:f,fatal:!0},f.message))})};l(t)})}requestMediaKeySystemAccess(t,e){let{requestMediaKeySystemAccessFunc:i}=this.config;if(typeof i!="function"){let n="Configured requestMediaKeySystemAccess is not a function "+i;return Qe===null&&self.location.protocol==="http:"&&(n="navigator.requestMediaKeySystemAccess is not available over insecure protocol "+location.protocol),Promise.reject(new Error(n))}return i(t,e)}getMediaKeysPromise(t,e,i){let n=function(a,l,d,u){let f;switch(a){case se.FAIRPLAY:f=["cenc","sinf"];break;case se.WIDEVINE:case se.PLAYREADY:f=["cenc"];break;case se.CLEARKEY:f=["cenc","keyids"];break;default:throw new Error("Unknown key-system: "+a)}return function(E,S,T,_){return[{initDataTypes:E,persistentState:_.persistentState||"optional",distinctiveIdentifier:_.distinctiveIdentifier||"optional",sessionTypes:_.sessionTypes||[_.sessionType||"temporary"],audioCapabilities:S.map((D)=>({contentType:`audio/mp4; codecs="${D}"`,robustness:_.audioRobustness||"",encryptionScheme:_.audioEncryptionScheme||null})),videoCapabilities:T.map((D)=>({contentType:`video/mp4; codecs="${D}"`,robustness:_.videoRobustness||"",encryptionScheme:_.videoEncryptionScheme||null}))}]}(f,l,d,u)}(t,e,i,this.config.drmSystemOptions),r=this.keySystemAccessPromises[t],s=r==null?void 0:r.keySystemAccess;if(!s){this.log(`Requesting encrypted media "${t}" key-system access with config: ${JSON.stringify(n)}`),s=this.requestMediaKeySystemAccess(t,n);let a=this.keySystemAccessPromises[t]={keySystemAccess:s};return s.catch((l)=>{this.log(`Failed to obtain access to key-system "${t}": ${l}`)}),s.then((l)=>{this.log(`Access for key-system "${l.keySystem}" obtained`);let d=this.fetchServerCertificate(t);return this.log(`Create media-keys for "${t}"`),a.mediaKeys=l.createMediaKeys().then((u)=>(this.log(`Media-keys created for "${t}"`),d.then((f)=>f?this.setMediaKeysServerCertificate(u,t,f):u))),a.mediaKeys.catch((u)=>{this.error(`Failed to create media-keys for "${t}"}: ${u}`)}),a.mediaKeys})}return s.then(()=>r.mediaKeys)}createMediaKeySessionContext({decryptdata:t,keySystem:e,mediaKeys:i}){this.log(`Creating key-system session "${e}" keyId: ${_i(t.keyId||[])}`);let n=i.createSession(),r={decryptdata:t,keySystem:e,mediaKeys:i,mediaKeysSession:n,keyStatus:"status-pending"};return this.mediaKeySessions.push(r),r}renewKeySession(t){let e=t.decryptdata;if(e.pssh){let i=this.createMediaKeySessionContext(t),n=this.getKeyIdString(e);this.keyIdToKeySessionPromise[n]=this.generateRequestWithPreferredKeySession(i,"cenc",e.pssh,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(t)}getKeyIdString(t){if(!t)throw new Error("Could not read keyId of undefined decryptdata");if(t.keyId===null)throw new Error("keyId is null");return _i(t.keyId)}updateKeySession(t,e){var i;let n=t.mediaKeysSession;return this.log(`Updating key-session "${n.sessionId}" for keyID ${_i(((i=t.decryptdata)==null?void 0:i.keyId)||[])}
|
|
43
|
+
} (data length: ${e?e.byteLength:e})`),n.update(e)}selectKeySystemFormat(t){let e=Object.keys(t.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${t.sn} ${t.type}: ${t.level}) key formats ${e.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(e)),this.keyFormatPromise}getKeyFormatPromise(t){return new Promise((e,i)=>{let n=ai(this.config),r=t.map(Gt).filter((s)=>!!s&&n.indexOf(s)!==-1);return this.getKeySystemSelectionPromise(r).then(({keySystem:s})=>{let a=Re(s);a?e(a):i(new Error(`Unable to find format for key-system "${s}"`))}).catch(i)})}loadKey(t){let e=t.keyInfo.decryptdata,i=this.getKeyIdString(e),n=`(keyId: ${i} format: "${e.keyFormat}" method: ${e.method} uri: ${e.uri})`;this.log("Starting session for key "+n);let r=this.keyIdToKeySessionPromise[i];return r||(r=this.keyIdToKeySessionPromise[i]=this.getKeySystemForKeyPromise(e).then(({keySystem:s,mediaKeys:a})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${t.frag.sn} ${t.frag.type}: ${t.frag.level} using key ${n}`),this.attemptSetMediaKeys(s,a).then(()=>{this.throwIfDestroyed();let l=this.createMediaKeySessionContext({keySystem:s,mediaKeys:a,decryptdata:e});return this.generateRequestWithPreferredKeySession(l,"cenc",e.pssh,"playlist-key")}))),r.catch((s)=>this.handleError(s))),r}throwIfDestroyed(t="Invalid state"){if(!this.hls)throw new Error("invalid state")}handleError(t){this.hls&&(this.error(t.message),t instanceof tn?this.hls.trigger(A.ERROR,t.data):this.hls.trigger(A.ERROR,{type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_NO_KEYS,error:t,fatal:!0}))}getKeySystemForKeyPromise(t){let e=this.getKeyIdString(t),i=this.keyIdToKeySessionPromise[e];if(!i){let n=Gt(t.keyFormat),r=n?[n]:ai(this.config);return this.attemptKeySystemAccess(r)}return i}getKeySystemSelectionPromise(t){if(t.length||(t=ai(this.config)),t.length===0)throw new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},"Missing key-system license configuration options "+JSON.stringify({drmSystems:this.config.drmSystems}));return this.attemptKeySystemAccess(t)}_onMediaEncrypted(t){let{initDataType:e,initData:i}=t;if(this.debug(`"${t.type}" event: init data type: "${e}"`),i===null)return;let n,r;if(e==="sinf"&&this.config.drmSystems[se.FAIRPLAY]){let u=fe(new Uint8Array(i));try{let f=Dt(JSON.parse(u).sinf),E=_r(new Uint8Array(f));if(!E)return;n=E.subarray(8,24),r=se.FAIRPLAY}catch(f){return void this.warn('Failed to parse sinf "encrypted" event message initData')}}else{let u=function(f){if(!(f instanceof ArrayBuffer)||f.byteLength<32)return null;let E={version:0,systemId:"",kids:null,data:null},S=new DataView(f),T=S.getUint32(0);if(f.byteLength!==T&&T>44)return null;if(S.getUint32(4)!==1886614376)return null;if(E.version=S.getUint32(8)>>>24,E.version>1)return null;E.systemId=_i(new Uint8Array(f,12,16));let _=S.getUint32(28);if(E.version===0){if(T-32<_)return null;E.data=new Uint8Array(f,32,_)}else if(E.version===1){E.kids=[];for(let D=0;D<_;D++)E.kids.push(new Uint8Array(f,32+16*D,16))}return E}(i);if(u===null)return;u.version===0&&u.systemId===Oe&&u.data&&(n=u.data.subarray(8,24)),r=function(f){if(f===Oe)return se.WIDEVINE}(u.systemId)}if(!r||!n)return;let s=_i(n),{keyIdToKeySessionPromise:a,mediaKeySessions:l}=this,d=a[s];for(let u=0;u<l.length;u++){let f=l[u],E=f.decryptdata;if(E.pssh||!E.keyId)continue;let S=_i(E.keyId);if(s===S||E.uri.replace(/-/g,"").indexOf(s)!==-1){d=a[S],delete a[S],E.pssh=new Uint8Array(i),E.keyId=n,d=a[s]=d.then(()=>this.generateRequestWithPreferredKeySession(f,e,i,"encrypted-event-key-match"));break}}d||(d=a[s]=this.getKeySystemSelectionPromise([r]).then(({keySystem:u,mediaKeys:f})=>{var E;this.throwIfDestroyed();let S=new xi("ISO-23001-7",s,(E=Re(u))!=null?E:"");return S.pssh=new Uint8Array(i),S.keyId=n,this.attemptSetMediaKeys(u,f).then(()=>{this.throwIfDestroyed();let T=this.createMediaKeySessionContext({decryptdata:S,keySystem:u,mediaKeys:f});return this.generateRequestWithPreferredKeySession(T,e,i,"encrypted-event-no-match")})})),d.catch((u)=>this.handleError(u))}_onWaitingForKey(t){this.log(`"${t.type}" event`)}attemptSetMediaKeys(t,e){let i=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${t}"`);let n=Promise.all(i).then(()=>{if(!this.media)throw new Error("Attempted to set mediaKeys without media element attached");return this.media.setMediaKeys(e)});return this.setMediaKeysQueue.push(n),n.then(()=>{this.log(`Media-keys set for "${t}"`),i.push(n),this.setMediaKeysQueue=this.setMediaKeysQueue.filter((r)=>i.indexOf(r)===-1)})}generateRequestWithPreferredKeySession(t,e,i,n){var r,s;let a=(r=this.config.drmSystems)==null||(s=r[t.keySystem])==null?void 0:s.generateRequest;if(a)try{let T=a.call(this.hls,e,i,t);if(!T)throw new Error("Invalid response from configured generateRequest filter");e=T.initDataType,i=t.decryptdata.pssh=T.initData?new Uint8Array(T.initData):null}catch(T){var l;if(this.warn(T.message),(l=this.hls)!=null&&l.config.debug)throw T}if(i===null)return this.log(`Skipping key-session request for "${n}" (no initData)`),Promise.resolve(t);let d=this.getKeyIdString(t.decryptdata);this.log(`Generating key-session request for "${n}": ${d} (init data type: ${e} length: ${i?i.byteLength:null})`);let u=new ko,f=t._onmessage=(T)=>{let _=t.mediaKeysSession;if(!_)return void u.emit("error",new Error("invalid state"));let{messageType:D,message:w}=T;this.log(`"${D}" message event for session "${_.sessionId}" message size: ${w.byteLength}`),D==="license-request"||D==="license-renewal"?this.renewLicense(t,w).catch((x)=>{this.handleError(x),u.emit("error",x)}):D==="license-release"?t.keySystem===se.FAIRPLAY&&(this.updateKeySession(t,re("acknowledged")),this.removeSession(t)):this.warn(`unhandled media key message type "${D}"`)},E=t._onkeystatuseschange=(T)=>{if(!t.mediaKeysSession)return void u.emit("error",new Error("invalid state"));this.onKeyStatusChange(t);let _=t.keyStatus;u.emit("keyStatus",_),_==="expired"&&(this.warn(`${t.keySystem} expired for key ${d}`),this.renewKeySession(t))};t.mediaKeysSession.addEventListener("message",f),t.mediaKeysSession.addEventListener("keystatuseschange",E);let S=new Promise((T,_)=>{u.on("error",_),u.on("keyStatus",(D)=>{D.startsWith("usable")?T():D==="output-restricted"?_(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):D==="internal-error"?_(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},`key status changed to "${D}"`)):D==="expired"?_(new Error("key expired while generating request")):this.warn(`unhandled key status change "${D}"`)})});return t.mediaKeysSession.generateRequest(e,i).then(()=>{var T;this.log(`Request generated for key-session "${(T=t.mediaKeysSession)==null?void 0:T.sessionId}" keyId: ${d}`)}).catch((T)=>{throw new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_NO_SESSION,error:T,fatal:!1},"Error generating key-session request: "+T)}).then(()=>S).catch((T)=>{throw u.removeAllListeners(),this.removeSession(t),T}).then(()=>(u.removeAllListeners(),t))}onKeyStatusChange(t){t.mediaKeysSession.keyStatuses.forEach((e,i)=>{this.log(`key status change "${e}" for keyStatuses keyId: ${_i("buffer"in i?new Uint8Array(i.buffer,i.byteOffset,i.byteLength):new Uint8Array(i))} session keyId: ${_i(new Uint8Array(t.decryptdata.keyId||[]))} uri: ${t.decryptdata.uri}`),t.keyStatus=e})}fetchServerCertificate(t){let e=this.config,i=new e.loader(e),n=this.getServerCertificateUrl(t);return n?(this.log(`Fetching server certificate for "${t}"`),new Promise((r,s)=>{let a={responseType:"arraybuffer",url:n},l=e.certLoadPolicy.default,d={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},u={onSuccess:(f,E,S,T)=>{r(f.data)},onError:(f,E,S,T)=>{s(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:S,response:L({url:a.url,data:void 0},f)},`"${t}" certificate request failed (${n}). Status: ${f.code} (${f.text})`))},onTimeout:(f,E,S)=>{s(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:S,response:{url:a.url,data:void 0}},`"${t}" certificate request timed out (${n})`))},onAbort:(f,E,S)=>{s(new Error("aborted"))}};i.load(a,d,u)})):Promise.resolve()}setMediaKeysServerCertificate(t,e,i){return new Promise((n,r)=>{t.setServerCertificate(i).then((s)=>{this.log(`setServerCertificate ${s?"success":"not supported by CDM"} (${i==null?void 0:i.byteLength}) on "${e}"`),n(t)}).catch((s)=>{r(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:s,fatal:!0},s.message))})})}renewLicense(t,e){return this.requestLicense(t,new Uint8Array(e)).then((i)=>this.updateKeySession(t,new Uint8Array(i)).catch((n)=>{throw new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:n,fatal:!0},n.message)}))}unpackPlayReadyKeyMessage(t,e){let i=String.fromCharCode.apply(null,new Uint16Array(e.buffer));if(!i.includes("PlayReadyKeyMessage"))return t.setRequestHeader("Content-Type","text/xml; charset=utf-8"),e;let n=new DOMParser().parseFromString(i,"application/xml"),r=n.querySelectorAll("HttpHeader");if(r.length>0){let u;for(let f=0,E=r.length;f<E;f++){var s,a;u=r[f];let S=(s=u.querySelector("name"))==null?void 0:s.textContent,T=(a=u.querySelector("value"))==null?void 0:a.textContent;S&&T&&t.setRequestHeader(S,T)}}let l=n.querySelector("Challenge"),d=l==null?void 0:l.textContent;if(!d)throw new Error("Cannot find <Challenge> in key message");return re(atob(d))}setupLicenseXHR(t,e,i,n){let r=this.config.licenseXhrSetup;return r?Promise.resolve().then(()=>{if(!i.decryptdata)throw new Error("Key removed");return r.call(this.hls,t,e,i,n)}).catch((s)=>{if(!i.decryptdata)throw s;return t.open("POST",e,!0),r.call(this.hls,t,e,i,n)}).then((s)=>{return t.readyState||t.open("POST",e,!0),{xhr:t,licenseChallenge:s||n}}):(t.open("POST",e,!0),Promise.resolve({xhr:t,licenseChallenge:n}))}requestLicense(t,e){let i=this.config.keyLoadPolicy.default;return new Promise((n,r)=>{let s=this.getLicenseServerUrl(t.keySystem);this.log("Sending license request to URL: "+s);let a=new XMLHttpRequest;a.responseType="arraybuffer",a.onreadystatechange=()=>{if(!this.hls||!t.mediaKeysSession)return r(new Error("invalid state"));if(a.readyState===4)if(a.status===200){this._requestLicenseFailureCount=0;let l=a.response;this.log("License received "+(l instanceof ArrayBuffer?l.byteLength:l));let d=this.config.licenseResponseCallback;if(d)try{l=d.call(this.hls,a,s,t)}catch(u){this.error(u)}n(l)}else{let l=i.errorRetry,d=l?l.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>d||a.status>=400&&a.status<500)r(new tn({type:Ft.KEY_SYSTEM_ERROR,details:H.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:a,response:{url:s,data:void 0,code:a.status,text:a.statusText}},`License Request XHR failed (${s}). Status: ${a.status} (${a.statusText})`));else{let u=d-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${u} attempts left`),this.requestLicense(t,e).then(n,r)}}},t.licenseXhr&&t.licenseXhr.readyState!==XMLHttpRequest.DONE&&t.licenseXhr.abort(),t.licenseXhr=a,this.setupLicenseXHR(a,s,t,e).then(({xhr:l,licenseChallenge:d})=>{t.keySystem==se.PLAYREADY&&(d=this.unpackPlayReadyKeyMessage(l,d)),l.send(d)})})}onMediaAttached(t,e){if(!this.config.emeEnabled)return;let i=e.media;this.media=i,i.addEventListener("encrypted",this.onMediaEncrypted),i.addEventListener("waitingforkey",this.onWaitingForKey)}onMediaDetached(){let t=this.media,e=this.mediaKeySessions;t&&(t.removeEventListener("encrypted",this.onMediaEncrypted),t.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},xi.clearKeyUriToKeyIdMap();let i=e.length;ys.CDMCleanupPromise=Promise.all(e.map((n)=>this.removeSession(n)).concat(t==null?void 0:t.setMediaKeys(null).catch((n)=>{this.log("Could not clear media keys: "+n)}))).then(()=>{i&&(this.log("finished closing key sessions and clearing media keys"),e.length=0)}).catch((n)=>{this.log("Could not close sessions and clear media keys: "+n)})}onManifestLoading(){this.keyFormatPromise=null}onManifestLoaded(t,{sessionKeys:e}){if(e&&this.config.emeEnabled&&!this.keyFormatPromise){let i=e.reduce((n,r)=>(n.indexOf(r.keyFormat)===-1&&n.push(r.keyFormat),n),[]);this.log("Selecting key-system from session-keys "+i.join(", ")),this.keyFormatPromise=this.getKeyFormatPromise(i)}}removeSession(t){let{mediaKeysSession:e,licenseXhr:i}=t;if(e){this.log("Remove licenses and keys and close session "+e.sessionId),t._onmessage&&(e.removeEventListener("message",t._onmessage),t._onmessage=void 0),t._onkeystatuseschange&&(e.removeEventListener("keystatuseschange",t._onkeystatuseschange),t._onkeystatuseschange=void 0),i&&i.readyState!==XMLHttpRequest.DONE&&i.abort(),t.mediaKeysSession=t.decryptdata=t.licenseXhr=void 0;let n=this.mediaKeySessions.indexOf(t);return n>-1&&this.mediaKeySessions.splice(n,1),e.remove().catch((r)=>{this.log("Could not remove session: "+r)}).then(()=>e.close()).catch((r)=>{this.log("Could not close session: "+r)})}}}ys.CDMCleanupPromise=void 0;class tn extends Error{constructor(t,e){super(e),this.data=void 0,t.error||(t.error=new Error(e)),this.data=t,t.err=t.error}}var Di,Ho,Gr;(function(t){t.MANIFEST="m",t.AUDIO="a",t.VIDEO="v",t.MUXED="av",t.INIT="i",t.CAPTION="c",t.TIMED_TEXT="tt",t.KEY="k",t.OTHER="o"})(Di||(Di={})),function(t){t.DASH="d",t.HLS="h",t.SMOOTH="s",t.OTHER="o"}(Ho||(Ho={})),function(t){t.OBJECT="CMCD-Object",t.REQUEST="CMCD-Request",t.SESSION="CMCD-Session",t.STATUS="CMCD-Status"}(Gr||(Gr={}));let Ed={[Gr.OBJECT]:["br","d","ot","tb"],[Gr.REQUEST]:["bl","dl","mtp","nor","nrr","su"],[Gr.SESSION]:["cid","pr","sf","sid","st","v"],[Gr.STATUS]:["bs","rtp"]};class Es{constructor(t,e){this.value=void 0,this.params=void 0,Array.isArray(t)&&(t=t.map((i)=>i instanceof Es?i:new Es(i))),this.value=t,this.params=e}}class Ko{constructor(t){this.description=void 0,this.description=t}}function Sd(t,e,i,n){return new Error(`failed to ${t} "${r=e,Array.isArray(r)?JSON.stringify(r):r instanceof Map?"Map{}":r instanceof Set?"Set{}":typeof r=="object"?JSON.stringify(r):String(r)}" as ${i}`,{cause:n});var r}let bd=/[\x00-\x1f\x7f]+/;function Tn(t,e,i){return Sd("serialize",t,e,i)}function Td(t){if(ArrayBuffer.isView(t)===!1)throw Tn(t,"Byte Sequence");return`:${e=t,btoa(String.fromCharCode(...e))}:`;var e}function Kl(t){if(function(e){return e<-999999999999999||999999999999999<e}(t))throw Tn(t,"Integer");return t.toString()}function Ad(t){let e=function n(r,s){if(r<0)return-n(-r,s);let a=Math.pow(10,s);if(Math.abs(r*a%1-0.5)<Number.EPSILON){let l=Math.floor(r*a);return(l%2==0?l:l+1)/a}return Math.round(r*a)/a}(t,3);if(Math.floor(Math.abs(e)).toString().length>12)throw Tn(t,"Decimal");let i=e.toString();return i.includes(".")?i:i+".0"}function Vl(t){let e=(i=t).description||i.toString().slice(7,-1);var i;if(/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(e)===!1)throw Tn(e,"Token");return e}function Vo(t){switch(typeof t){case"number":if(!j(t))throw Tn(t,"Bare Item");return Number.isInteger(t)?Kl(t):Ad(t);case"string":return function(e){if(bd.test(e))throw Tn(e,"String");return`"${e.replace(/\\/g,"\\\\").replace(/"/g,"\\\"")}"`}(t);case"symbol":return Vl(t);case"boolean":return function(e){if(typeof e!="boolean")throw Tn(e,"Boolean");return e?"?1":"?0"}(t);case"object":if(t instanceof Date)return function(e){return"@"+Kl(e.getTime()/1000)}(t);if(t instanceof Uint8Array)return Td(t);if(t instanceof Ko)return Vl(t);default:throw Tn(t,"Bare Item")}}function Wo(t){if(/^[a-z*][a-z0-9\-_.*]*$/.test(t)===!1)throw Tn(t,"Key");return t}function jo(t){return t==null?"":Object.entries(t).map(([e,i])=>i===!0?";"+Wo(e):`;${Wo(e)}=${Vo(i)}`).join("")}function Wl(t){return t instanceof Es?`${Vo(t.value)}${jo(t.params)}`:Vo(t)}function _d(t,e={whitespace:!0}){if(typeof t!="object")throw Tn(t,"Dict");let i=t instanceof Map?t.entries():Object.entries(t),n=e!=null&&e.whitespace?" ":"";return Array.from(i).map(([r,s])=>{s instanceof Es==!1&&(s=new Es(s));let a=Wo(r);var l;return s.value===!0?a+=jo(s.params):(a+="=",Array.isArray(s.value)?a+=`(${(l=s).value.map(Wl).join(" ")})${jo(l.params)}`:a+=Wl(s)),a}).join(","+n)}let Ha=(t)=>Math.round(t),Ka=(t)=>100*Ha(t/100),Ld={br:Ha,d:Ha,bl:Ka,dl:Ka,mtp:Ka,nor:(t,e)=>(e!=null&&e.baseUrl&&(t=function(i,n){let r=new URL(i),s=new URL(n);if(r.origin!==s.origin)return i;let a=r.pathname.split("/").slice(1),l=s.pathname.split("/").slice(1,-1);for(;a[0]===l[0];)a.shift(),l.shift();for(;l.length;)l.shift(),a.unshift("..");return a.join("/")}(t,e.baseUrl)),encodeURIComponent(t)),rtp:Ka,tb:Ha};function wd(t,e){let i={};if(t==null||typeof t!="object")return i;let n=Object.keys(t).sort(),r=z({},Ld,e==null?void 0:e.formatters),s=e==null?void 0:e.filter;return n.forEach((a)=>{if(s!=null&&s(a))return;let l=t[a],d=r[a];d&&(l=d(l,e)),a==="v"&&l===1||a=="pr"&&l===1||((u)=>typeof u=="number"?j(u):u!=null&&u!==""&&u!==!1)(l)&&(((u)=>u==="ot"||u==="sf"||u==="st")(a)&&typeof l=="string"&&(l=new Ko(l)),i[a]=l)}),i}function jl(t,e={}){return t?function(i,n){return _d(i,n)}(wd(t,e),z({whitespace:!1},e)):""}function kd(t,e,i){return z(t,function(n,r={}){if(!n)return{};let s=Object.entries(n),a=Object.entries(Ed).concat(Object.entries((r==null?void 0:r.customHeaderMap)||{})),l=s.reduce((d,u)=>{var f;let[E,S]=u,T=((f=a.find((_)=>_[1].includes(E)))==null?void 0:f[0])||Gr.REQUEST;return d[T]!=null||(d[T]={}),d[T][E]=S,d},{});return Object.entries(l).reduce((d,[u,f])=>(d[u]=jl(f,r),d),{})}(e,i))}let ql=/CMCD=[^&#]+/;function Rd(t,e,i){let n=function(s,a={}){if(!s)return"";let l=jl(s,a);return"CMCD="+encodeURIComponent(l)}(e,i);if(!n)return t;if(ql.test(t))return t.replace(ql,n);let r=t.includes("?")?"&":"?";return`${t}${r}${n}`}function Yl(t,e,i,n){t&&Object.keys(e).forEach((r)=>{let s=t.filter((a)=>a.groupId===r).map((a)=>{let l=z({},a);return l.details=void 0,l.attrs=new J(l.attrs),l.url=l.attrs.URI=zl(a.url,a.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",i),l.groupId=l.attrs["GROUP-ID"]=e[r],l.attrs["PATHWAY-ID"]=n,l});t.push(...s)})}function zl(t,e,i,n){let{HOST:r,PARAMS:s,[i]:a}=n,l;e&&(l=a==null?void 0:a[e],l&&(t=l));let d=new self.URL(t);return r&&!l&&(d.host=r),s&&Object.keys(s).sort().forEach((u)=>{u&&d.searchParams.set(u,s[u])}),d.href}let Dd=/^age:\s*[\d.]+\s*$/im;class qo{constructor(t){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=t&&t.xhrSetup||null,this.stats=new at,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null,this.stats=null}abortInternal(){let t=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),t&&(t.onreadystatechange=null,t.onprogress=null,t.readyState!==4&&(this.stats.aborted=!0,t.abort()))}abort(){var t;this.abortInternal(),(t=this.callbacks)!=null&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(t,e,i){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=t,this.config=e,this.callbacks=i,this.loadInternal()}loadInternal(){let{config:t,context:e}=this;if(!t||!e)return;let i=this.loader=new self.XMLHttpRequest,n=this.stats;n.loading.first=0,n.loaded=0,n.aborted=!1;let r=this.xhrSetup;r?Promise.resolve().then(()=>{if(!this.stats.aborted)return r(i,e.url)}).catch((s)=>(i.open("GET",e.url,!0),r(i,e.url))).then(()=>{this.stats.aborted||this.openAndSendXhr(i,e,t)}).catch((s)=>{this.callbacks.onError({code:i.status,text:s.message},e,i,n)}):this.openAndSendXhr(i,e,t)}openAndSendXhr(t,e,i){t.readyState||t.open("GET",e.url,!0);let n=e.headers,{maxTimeToFirstByteMs:r,maxLoadTimeMs:s}=i.loadPolicy;if(n)for(let a in n)t.setRequestHeader(a,n[a]);e.rangeEnd&&t.setRequestHeader("Range","bytes="+e.rangeStart+"-"+(e.rangeEnd-1)),t.onreadystatechange=this.readystatechange.bind(this),t.onprogress=this.loadprogress.bind(this),t.responseType=e.responseType,self.clearTimeout(this.requestTimeout),i.timeout=r&&j(r)?r:s,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),i.timeout),t.send()}readystatechange(){let{context:t,loader:e,stats:i}=this;if(!t||!e)return;let n=e.readyState,r=this.config;if(!i.aborted&&n>=2&&(i.loading.first===0&&(i.loading.first=Math.max(self.performance.now(),i.loading.start),r.timeout!==r.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),r.timeout=r.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),r.loadPolicy.maxLoadTimeMs-(i.loading.first-i.loading.start)))),n===4)){self.clearTimeout(this.requestTimeout),e.onreadystatechange=null,e.onprogress=null;let s=e.status,a=e.responseType!=="text";if(s>=200&&s<300&&(a&&e.response||e.responseText!==null)){i.loading.end=Math.max(self.performance.now(),i.loading.first);let l=a?e.response:e.responseText,d=e.responseType==="arraybuffer"?l.byteLength:l.length;if(i.loaded=i.total=d,i.bwEstimate=8000*i.total/(i.loading.end-i.loading.first),!this.callbacks)return;let u=this.callbacks.onProgress;if(u&&u(i,t,l,e),!this.callbacks)return;let f={url:e.responseURL,data:l,code:s};this.callbacks.onSuccess(f,i,t,e)}else{let l=r.loadPolicy.errorRetry;ar(l,i.retry,!1,{url:t.url,data:void 0,code:s})?this.retry(l):(C.error(`${s} while loading ${t.url}`),this.callbacks.onError({code:s,text:e.statusText},t,e,i))}}}loadtimeout(){var t;let e=(t=this.config)==null?void 0:t.loadPolicy.timeoutRetry;if(ar(e,this.stats.retry,!0))this.retry(e);else{var i;C.warn("timeout while loading "+((i=this.context)==null?void 0:i.url));let n=this.callbacks;n&&(this.abortInternal(),n.onTimeout(this.stats,this.context,this.loader))}}retry(t){let{context:e,stats:i}=this;this.retryDelay=Us(t,i.retry),i.retry++,C.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${e==null?void 0:e.url}, retrying ${i.retry}/${t.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(t){let e=this.stats;e.loaded=t.loaded,t.lengthComputable&&(e.total=t.total)}getCacheAge(){let t=null;if(this.loader&&Dd.test(this.loader.getAllResponseHeaders())){let e=this.loader.getResponseHeader("age");t=e?parseFloat(e):null}return t}getResponseHeader(t){return this.loader&&new RegExp(`^${t}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(t):null}}let Cd=/(\d+)-(\d+)\/(\d+)/;class Yo{constructor(t){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=null,this.response=null,this.controller=void 0,this.context=null,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=t.fetchSetup||Id,this.controller=new self.AbortController,this.stats=new at}destroy(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null}abortInternal(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var t;this.abortInternal(),(t=this.callbacks)!=null&&t.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(t,e,i){let n=this.stats;if(n.loading.start)throw new Error("Loader can only be used once.");n.loading.start=self.performance.now();let r=function(f,E){let S={method:"GET",mode:"cors",credentials:"same-origin",signal:E,headers:new self.Headers(z({},f.headers))};return f.rangeEnd&&S.headers.set("Range","bytes="+f.rangeStart+"-"+String(f.rangeEnd-1)),S}(t,this.controller.signal),s=i.onProgress,a=t.responseType==="arraybuffer",l=a?"byteLength":"length",{maxTimeToFirstByteMs:d,maxLoadTimeMs:u}=e.loadPolicy;this.context=t,this.config=e,this.callbacks=i,this.request=this.fetchSetup(t,r),self.clearTimeout(this.requestTimeout),e.timeout=d&&j(d)?d:u,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(n,t,this.response)},e.timeout),self.fetch(this.request).then((f)=>{this.response=this.loader=f;let E=Math.max(self.performance.now(),n.loading.start);if(self.clearTimeout(this.requestTimeout),e.timeout=u,this.requestTimeout=self.setTimeout(()=>{this.abortInternal(),i.onTimeout(n,t,this.response)},u-(E-n.loading.start)),!f.ok){let{status:S,statusText:T}=f;throw new Xl(T||"fetch, bad network response",S,f)}return n.loading.first=E,n.total=function(S){let T=S.get("Content-Range");if(T){let D=function(w){let x=Cd.exec(w);if(x)return parseInt(x[2])-parseInt(x[1])+1}(T);if(j(D))return D}let _=S.get("Content-Length");if(_)return parseInt(_)}(f.headers)||n.total,s&&j(e.highWaterMark)?this.loadProgressively(f,n,t,e.highWaterMark,s):a?f.arrayBuffer():t.responseType==="json"?f.json():f.text()}).then((f)=>{let E=this.response;if(!E)throw new Error("loader destroyed");self.clearTimeout(this.requestTimeout),n.loading.end=Math.max(self.performance.now(),n.loading.first);let S=f[l];S&&(n.loaded=n.total=S);let T={url:E.url,data:f,code:E.status};s&&!j(e.highWaterMark)&&s(n,t,f,E),i.onSuccess(T,n,t,E)}).catch((f)=>{if(self.clearTimeout(this.requestTimeout),n.aborted)return;let E=f&&f.code||0,S=f?f.message:null;i.onError({code:E,text:S},t,f?f.details:null,n)})}getCacheAge(){let t=null;if(this.response){let e=this.response.headers.get("age");t=e?parseFloat(e):null}return t}getResponseHeader(t){return this.response?this.response.headers.get(t):null}loadProgressively(t,e,i,n=0,r){let s=new os,a=t.body.getReader(),l=()=>a.read().then((d)=>{if(d.done)return s.dataLength&&r(e,i,s.flush(),t),Promise.resolve(new ArrayBuffer(0));let u=d.value,f=u.length;return e.loaded+=f,f<n||s.dataLength?(s.push(u),s.dataLength>=n&&r(e,i,s.flush(),t)):r(e,i,u,t),l()}).catch(()=>Promise.reject());return l()}}function Id(t,e){return new self.Request(t.url,e)}class Xl extends Error{constructor(t,e,i){super(t),this.code=void 0,this.details=void 0,this.code=e,this.details=i}}let Od=/\s/,xd={newCue(t,e,i,n){let r=[],s,a,l,d,u,f=self.VTTCue||self.TextTrackCue;for(let S=0;S<n.rows.length;S++)if(s=n.rows[S],l=!0,d=0,u="",!s.isEmpty()){var E;for(let D=0;D<s.chars.length;D++)Od.test(s.chars[D].uchar)&&l?d++:(u+=s.chars[D].uchar,l=!1);s.cueStartTime=e,e===i&&(i+=0.0001),d>=16?d--:d++;let T=Nl(u.trim()),_=Fo(e,i,T);t!=null&&(E=t.cues)!=null&&E.getCueById(_)||(a=new f(e,i,T),a.id=_,a.line=S+1,a.align="left",a.position=10+Math.min(80,10*Math.floor(8*d/32)),r.push(a))}return t&&r.length&&(r.sort((S,T)=>S.line==="auto"||T.line==="auto"?0:S.line>8&&T.line>8?T.line-S.line:S.line-T.line),r.forEach((S)=>Dr(t,S))),r}},Jl=L(L({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,maxBufferSize:60000000,maxBufferHole:0.1,highBufferWatchdogPeriod:2,nudgeOffset:0.1,nudgeMaxRetry:3,maxFragLookUpTolerance:0.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5000,fpsDroppedMonitoringThreshold:0.2,appendErrorMaxRetry:3,loader:qo,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:class t{constructor(e){this.hls=void 0,this.lastLevelLoadSec=0,this.lastLoadedFragLevel=-1,this.firstSelection=-1,this._nextAutoLevel=-1,this.nextAutoLevelKey="",this.audioTracksByGroup=null,this.codecTiers=null,this.timer=-1,this.fragCurrent=null,this.partCurrent=null,this.bitrateTestDelay=0,this.bwEstimator=void 0,this._abandonRulesCheck=()=>{let{fragCurrent:i,partCurrent:n,hls:r}=this,{autoLevelEnabled:s,media:a}=r;if(!i||!a)return;let l=performance.now(),d=n?n.stats:i.stats,u=n?n.duration:i.duration,f=l-d.loading.start,E=r.minAutoLevel;if(d.aborted||d.loaded&&d.loaded===d.total||i.level<=E)return this.clearTimer(),void(this._nextAutoLevel=-1);if(!s||a.paused||!a.playbackRate||!a.readyState)return;let S=r.mainForwardBufferInfo;if(S===null)return;let T=this.bwEstimator.getEstimateTTFB(),_=Math.abs(a.playbackRate);if(f<=Math.max(T,u/(2*_)*1000))return;let D=S.len/_,w=d.loading.first?d.loading.first-d.loading.start:-1,x=d.loaded&&w>-1,M=this.getBwEstimate(),V=r.levels,X=V[i.level],ot=d.total||Math.max(d.loaded,Math.round(u*X.averageBitrate/8)),et=x?f-w:f;et<1&&x&&(et=Math.min(f,8*d.loaded/M));let vt=x?1000*d.loaded/et:0,St=vt?(ot-d.loaded)/vt:8*ot/M+T/1000;if(St<=D)return;let nt=vt?8*vt:M,it,jt=Number.POSITIVE_INFINITY;for(it=i.level-1;it>E;it--){let Kt=V[it].maxBitrate;if(jt=this.getTimeToLoadFrag(T/1000,nt,u*Kt,!V[it].details),jt<D)break}if(jt>=St)return;if(jt>10*u)return;r.nextLoadLevel=r.nextAutoLevel=it,x?this.bwEstimator.sample(f-Math.min(T,w),d.loaded):this.bwEstimator.sampleTTFB(f);let At=V[it].maxBitrate;this.getBwEstimate()*this.hls.config.abrBandWidthUpFactor>At&&this.resetEstimator(At),this.clearTimer(),C.warn(`[abr] Fragment ${i.sn}${n?" part "+n.index:""} of level ${i.level} is loading too slowly;
|
|
44
|
+
Time to underbuffer: ${D.toFixed(3)} s
|
|
45
|
+
Estimated load time for current fragment: ${St.toFixed(3)} s
|
|
46
|
+
Estimated load time for down switch fragment: ${jt.toFixed(3)} s
|
|
47
|
+
TTFB estimate: ${0|w} ms
|
|
48
|
+
Current BW estimate: ${j(M)?0|M:"Unknown"} bps
|
|
49
|
+
New BW estimate: ${0|this.getBwEstimate()} bps
|
|
50
|
+
Switching to level ${it} @ ${0|At} bps`),r.trigger(A.FRAG_LOAD_EMERGENCY_ABORTED,{frag:i,part:n,stats:d})},this.hls=e,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(e){e&&(C.log("setting initial bwe to "+e),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){let e=this.hls.config;return new Ks(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}registerListeners(){let{hls:e}=this;e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.FRAG_LOADING,this.onFragLoading,this),e.on(A.FRAG_LOADED,this.onFragLoaded,this),e.on(A.FRAG_BUFFERED,this.onFragBuffered,this),e.on(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(A.LEVEL_LOADED,this.onLevelLoaded,this),e.on(A.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(A.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(A.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e&&(e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.FRAG_LOADING,this.onFragLoading,this),e.off(A.FRAG_LOADED,this.onFragLoaded,this),e.off(A.FRAG_BUFFERED,this.onFragBuffered,this),e.off(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(A.LEVEL_LOADED,this.onLevelLoaded,this),e.off(A.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(A.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(A.ERROR,this.onError,this))}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(e,i){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){this.lastLoadedFragLevel>-1&&this.fragCurrent&&(this.lastLoadedFragLevel=this.fragCurrent.level),this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null}onMaxAutoLevelUpdated(){this.firstSelection=-1,this.nextAutoLevelKey=""}onFragLoading(e,i){let n=i.frag;if(!this.ignoreFragment(n)){var r;if(!n.bitrateTest)this.fragCurrent=n,this.partCurrent=(r=i.part)!=null?r:null;this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}onLevelSwitching(e,i){this.clearTimer()}onError(e,i){if(!i.fatal)switch(i.details){case H.BUFFER_ADD_CODEC_ERROR:case H.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case H.FRAG_LOAD_TIMEOUT:{let n=i.frag,{fragCurrent:r,partCurrent:s}=this;if(n&&r&&n.sn===r.sn&&n.level===r.level){let a=performance.now(),l=s?s.stats:n.stats,d=a-l.loading.start,u=l.loading.first?l.loading.first-l.loading.start:-1;if(l.loaded&&u>-1){let f=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(d-Math.min(f,u),l.loaded)}else this.bwEstimator.sampleTTFB(d)}break}}}getTimeToLoadFrag(e,i,n,r){return e+n/i+(r?this.lastLevelLoadSec:0)}onLevelLoaded(e,i){let n=this.hls.config,{loading:r}=i.stats,s=r.end-r.start;j(s)&&(this.lastLevelLoadSec=s/1000),i.details.live?this.bwEstimator.update(n.abrEwmaSlowLive,n.abrEwmaFastLive):this.bwEstimator.update(n.abrEwmaSlowVoD,n.abrEwmaFastVoD)}onFragLoaded(e,{frag:i,part:n}){let r=n?n.stats:i.stats;if(i.type===me&&this.bwEstimator.sampleTTFB(r.loading.first-r.loading.start),!this.ignoreFragment(i)){if(this.clearTimer(),i.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){let s=n?n.duration:i.duration,a=this.hls.levels[i.level],l=(a.loaded?a.loaded.bytes:0)+r.loaded,d=(a.loaded?a.loaded.duration:0)+s;a.loaded={bytes:l,duration:d},a.realBitrate=Math.round(8*l/d)}if(i.bitrateTest){let s={stats:r,frag:i,part:n,id:i.type};this.onFragBuffered(A.FRAG_BUFFERED,s),i.bitrateTest=!1}else this.lastLoadedFragLevel=i.level}}onFragBuffered(e,i){let{frag:n,part:r}=i,s=r!=null&&r.stats.loaded?r.stats:n.stats;if(s.aborted)return;if(this.ignoreFragment(n))return;let a=s.parsing.end-s.loading.start-Math.min(s.loading.first-s.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(a,s.loaded),s.bwEstimate=this.getBwEstimate(),n.bitrateTest?this.bitrateTestDelay=a/1000:this.bitrateTestDelay=0}ignoreFragment(e){return e.type!==me||e.sn==="initSegment"}clearTimer(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}get firstAutoLevel(){let{maxAutoLevel:e,minAutoLevel:i}=this.hls,n=this.getBwEstimate(),r=this.hls.config.maxStarvationDelay,s=this.findBestLevel(n,i,e,0,r,1,1);if(s>-1)return s;let a=this.hls.firstLevel,l=Math.min(Math.max(a,i),e);return C.warn(`[abr] Could not find best starting auto level. Defaulting to first in playlist ${a} clamped to ${l}`),l}get forcedAutoLevel(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}get nextAutoLevel(){let e=this.forcedAutoLevel,i=this.bwEstimator.canEstimate(),n=this.lastLoadedFragLevel>-1;if(!(e===-1||i&&n&&this.nextAutoLevelKey!==this.getAutoLevelKey()))return e;let r=i&&n?this.getNextABRAutoLevel():this.firstAutoLevel;if(e!==-1){let s=this.hls.levels;if(s.length>Math.max(e,r)&&s[e].loadError<=s[r].loadError)return e}return this._nextAutoLevel=r,this.nextAutoLevelKey=this.getAutoLevelKey(),r}getAutoLevelKey(){return`${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){let{fragCurrent:e,partCurrent:i,hls:n}=this,{maxAutoLevel:r,config:s,minAutoLevel:a}=n,l=i?i.duration:e?e.duration:0,d=this.getBwEstimate(),u=this.getStarvationDelay(),f=s.abrBandWidthFactor,E=s.abrBandWidthUpFactor;if(u){let w=this.findBestLevel(d,a,r,u,0,f,E);if(w>=0)return w}let S=l?Math.min(l,s.maxStarvationDelay):s.maxStarvationDelay;if(!u){let w=this.bitrateTestDelay;if(w)S=(l?Math.min(l,s.maxLoadingDelay):s.maxLoadingDelay)-w,C.info(`[abr] bitrate test took ${Math.round(1000*w)}ms, set first fragment max fetchDuration to ${Math.round(1000*S)} ms`),f=E=1}let T=this.findBestLevel(d,a,r,u,S,f,E);if(C.info(`[abr] ${u?"rebuffering expected":"buffer is empty"}, optimal quality level ${T}`),T>-1)return T;let _=n.levels[a],D=n.levels[n.loadLevel];return(_==null?void 0:_.bitrate)<(D==null?void 0:D.bitrate)?a:n.loadLevel}getStarvationDelay(){let e=this.hls,i=e.media;if(!i)return 1/0;let n=i&&i.playbackRate!==0?Math.abs(i.playbackRate):1,r=e.mainForwardBufferInfo;return(r?r.len:0)/n}getBwEstimate(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate}findBestLevel(e,i,n,r,s,a,l){var d;let u=r+s,f=this.lastLoadedFragLevel,E=f===-1?this.hls.firstLevel:f,{fragCurrent:S,partCurrent:T}=this,{levels:_,allAudioTracks:D,loadLevel:w,config:x}=this.hls;if(_.length===1)return 0;let M=_[E],V=!(M==null||(d=M.details)==null||!d.live),X=w===-1||f===-1,ot,et="SDR",vt=(M==null?void 0:M.frameRate)||0,{audioPreference:St,videoPreference:nt}=x,it=this.audioTracksByGroup||(this.audioTracksByGroup=function(Xt){return Xt.reduce((ht,wt)=>{let Wt=ht.groups[wt.groupId];Wt||(Wt=ht.groups[wt.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),Wt.tracks.push(wt);let Yt=wt.channels||"2";return Wt.channels[Yt]=(Wt.channels[Yt]||0)+1,Wt.hasDefault=Wt.hasDefault||wt.default,Wt.hasAutoSelect=Wt.hasAutoSelect||wt.autoselect,Wt.hasDefault&&(ht.hasDefaultAudio=!0),Wt.hasAutoSelect&&(ht.hasAutoSelectAudio=!0),ht},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}(D));if(X){if(this.firstSelection!==-1)return this.firstSelection;let Xt=function(Ce,$e,xe,hi,Gi){let Ve=Object.keys(Ce),jn=hi==null?void 0:hi.channels,ze=hi==null?void 0:hi.audioCodec,Wa=jn&&parseInt(jn)===2,ha=!0,pr=!1,An=1/0,Hr=1/0,Kr=1/0,Qo=0,fa=[],{preferHDR:Yd,allowedVideoRanges:zd}=To($e,Gi);for(let fi=Ve.length;fi--;){let ri=Ce[Ve[fi]];ha=ri.channels[2]>0,An=Math.min(An,ri.minHeight),Hr=Math.min(Hr,ri.minFramerate),Kr=Math.min(Kr,ri.minBitrate);let mi=zd.filter((Zo)=>ri.videoRanges[Zo]>0);mi.length>0&&(pr=!0,fa=mi)}An=j(An)?An:0,Hr=j(Hr)?Hr:0;let dc=Math.max(1080,An),uc=Math.max(30,Hr);return Kr=j(Kr)?Kr:xe,xe=Math.max(Kr,xe),pr||($e=void 0,fa=[]),{codecSet:Ve.reduce((fi,ri)=>{let mi=Ce[ri];if(ri===fi)return fi;if(mi.minBitrate>xe)return Ei(ri,`min bitrate of ${mi.minBitrate} > current estimate of ${xe}`),fi;if(!mi.hasDefaultAudio)return Ei(ri,"no renditions with default or auto-select sound found"),fi;if(ze&&ri.indexOf(ze.substring(0,4))%5!=0)return Ei(ri,`audio codec preference "${ze}" not found`),fi;if(jn&&!Wa){if(!mi.channels[jn])return Ei(ri,`no renditions with ${jn} channel sound found (channels options: ${Object.keys(mi.channels)})`),fi}else if((!ze||Wa)&&ha&&mi.channels[2]===0)return Ei(ri,"no renditions with stereo sound found"),fi;return mi.minHeight>dc?(Ei(ri,`min resolution of ${mi.minHeight} > maximum of ${dc}`),fi):mi.minFramerate>uc?(Ei(ri,`min framerate of ${mi.minFramerate} > maximum of ${uc}`),fi):fa.some((Zo)=>mi.videoRanges[Zo]>0)?mi.maxScore<Qo?(Ei(ri,`max score of ${mi.maxScore} < selected max of ${Qo}`),fi):fi&&(On(ri)>=On(fi)||mi.fragmentError>Ce[fi].fragmentError)?fi:(Qo=mi.maxScore,ri):(Ei(ri,`no variants with VIDEO-RANGE of ${JSON.stringify(fa)} found`),fi)},void 0),videoRanges:fa,preferHDR:Yd,minFramerate:Hr,minBitrate:Kr}}(this.codecTiers||(this.codecTiers=function(Ce,$e,xe,hi){return Ce.slice(xe,hi+1).reduce((Gi,Ve)=>{if(!Ve.codecSet)return Gi;let jn=Ve.audioGroups,ze=Gi[Ve.codecSet];ze||(Gi[Ve.codecSet]=ze={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!jn,fragmentError:0}),ze.minBitrate=Math.min(ze.minBitrate,Ve.bitrate);let Wa=Math.min(Ve.height,Ve.width);return ze.minHeight=Math.min(ze.minHeight,Wa),ze.minFramerate=Math.min(ze.minFramerate,Ve.frameRate),ze.maxScore=Math.max(ze.maxScore,Ve.score),ze.fragmentError+=Ve.fragmentError,ze.videoRanges[Ve.videoRange]=(ze.videoRanges[Ve.videoRange]||0)+1,jn&&jn.forEach((ha)=>{if(!ha)return;let pr=$e.groups[ha];pr&&(ze.hasDefaultAudio=ze.hasDefaultAudio||$e.hasDefaultAudio?pr.hasDefault:pr.hasAutoSelect||!$e.hasDefaultAudio&&!$e.hasAutoSelectAudio,Object.keys(pr.channels).forEach((An)=>{ze.channels[An]=(ze.channels[An]||0)+pr.channels[An]}))}),Gi},{})}(_,it,i,n)),et,e,St,nt),{codecSet:ht,videoRanges:wt,minFramerate:Wt,minBitrate:Yt,preferHDR:ae}=Xt;ot=ht,et=ae?wt[wt.length-1]:wt[0],vt=Wt,e=Math.max(e,Yt),C.log("[abr] picked start tier "+JSON.stringify(Xt))}else ot=M==null?void 0:M.codecSet,et=M==null?void 0:M.videoRange;let jt=T?T.duration:S?S.duration:0,At=this.bwEstimator.getEstimateTTFB()/1000,Kt=[];for(let Xt=n;Xt>=i;Xt--){var zt;let ht=_[Xt],wt=Xt>E;if(!ht)continue;if(x.useMediaCapabilities&&!ht.supportedResult&&!ht.supportedPromise){let xe=navigator.mediaCapabilities;typeof(xe==null?void 0:xe.decodingInfo)=="function"&&bo(ht,it,et,vt,e,St)?(ht.supportedPromise=bn(ht,it,xe),ht.supportedPromise.then((hi)=>{if(!this.hls)return;ht.supportedResult=hi;let Gi=this.hls.levels,Ve=Gi.indexOf(ht);hi.error?C.warn(`[abr] MediaCapabilities decodingInfo error: "${hi.error}" for level ${Ve} ${JSON.stringify(hi)}`):hi.supported||(C.warn(`[abr] Unsupported MediaCapabilities decodingInfo result for level ${Ve} ${JSON.stringify(hi)}`),Ve>-1&&Gi.length>1&&(C.log("[abr] Removing unsupported level "+Ve),this.hls.removeLevel(Ve)))})):ht.supportedResult=is}if(ot&&ht.codecSet!==ot||et&&ht.videoRange!==et||wt&&vt>ht.frameRate||!wt&&vt>0&&vt<ht.frameRate||ht.supportedResult&&((zt=ht.supportedResult.decodingInfoResults)==null||!zt[0].smooth)){Kt.push(Xt);continue}let Wt=ht.details,Yt=(T?Wt==null?void 0:Wt.partTarget:Wt==null?void 0:Wt.averagetargetduration)||jt,ae;ae=wt?l*e:a*e;let Ce=jt&&r>=2*jt&&s===0?_[Xt].averageBitrate:_[Xt].maxBitrate,$e=this.getTimeToLoadFrag(At,ae,Ce*Yt,Wt===void 0);if(ae>=Ce&&(Xt===f||ht.loadError===0&&ht.fragmentError===0)&&($e<=At||!j($e)||V&&!this.bitrateTestDelay||$e<u)){let xe=this.forcedAutoLevel;return Xt===w||xe!==-1&&xe===w||(Kt.length&&C.trace(`[abr] Skipped level(s) ${Kt.join(",")} of ${n} max with CODECS and VIDEO-RANGE:"${_[Kt[0]].codecs}" ${_[Kt[0]].videoRange}; not compatible with "${M.codecs}" ${et}`),C.info(`[abr] switch candidate:${E}->${Xt} adjustedbw(${Math.round(ae)})-bitrate=${Math.round(ae-Ce)} ttfb:${At.toFixed(1)} avgDuration:${Yt.toFixed(1)} maxFetchDuration:${u.toFixed(1)} fetchDuration:${$e.toFixed(1)} firstSelection:${X} codecSet:${ot} videoRange:${et} hls.loadLevel:${w}`)),X&&(this.firstSelection=Xt),Xt}}return-1}set nextAutoLevel(e){let{maxAutoLevel:i,minAutoLevel:n}=this.hls,r=Math.min(Math.max(e,n),i);this._nextAutoLevel!==r&&(this.nextAutoLevelKey="",this._nextAutoLevel=r)}},bufferController:class t{constructor(e){this.details=null,this._objectUrl=null,this.operationQueue=void 0,this.listeners=void 0,this.hls=void 0,this.bufferCodecEventsExpected=0,this._bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.appendSource=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.pendingTracks={},this.sourceBuffer=void 0,this.log=void 0,this.warn=void 0,this.error=void 0,this._onEndStreaming=(r)=>{this.hls&&this.hls.pauseBuffering()},this._onStartStreaming=(r)=>{this.hls&&this.hls.resumeBuffering()},this._onMediaSourceOpen=()=>{let{media:r,mediaSource:s}=this;this.log("Media source opened"),r&&(r.removeEventListener("emptied",this._onMediaEmptied),this.updateMediaElementDuration(),this.hls.trigger(A.MEDIA_ATTACHED,{media:r,mediaSource:s})),s&&s.removeEventListener("sourceopen",this._onMediaSourceOpen),this.checkPendingTracks()},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{let{mediaSrc:r,_objectUrl:s}=this;r!==s&&C.error(`Media element src was set while attaching MediaSource (${s} > ${r})`)},this.hls=e;let i="[buffer-controller]";var n;this.appendSource=(n=Xi(e.config.preferManagedMediaSource),typeof self!="undefined"&&n===self.ManagedMediaSource),this.log=C.log.bind(C,i),this.warn=C.warn.bind(C,i),this.error=C.error.bind(C,i),this._initSourceBuffer(),this.registerListeners()}hasSourceTypes(){return this.getSourceBufferTypes().length>0||Object.keys(this.pendingTracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=null,this.hls=null}registerListeners(){let{hls:e}=this;e.on(A.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.MANIFEST_PARSED,this.onManifestParsed,this),e.on(A.BUFFER_RESET,this.onBufferReset,this),e.on(A.BUFFER_APPENDING,this.onBufferAppending,this),e.on(A.BUFFER_CODECS,this.onBufferCodecs,this),e.on(A.BUFFER_EOS,this.onBufferEos,this),e.on(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(A.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(A.FRAG_PARSED,this.onFragParsed,this),e.on(A.FRAG_CHANGED,this.onFragChanged,this)}unregisterListeners(){let{hls:e}=this;e.off(A.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.MANIFEST_PARSED,this.onManifestParsed,this),e.off(A.BUFFER_RESET,this.onBufferReset,this),e.off(A.BUFFER_APPENDING,this.onBufferAppending,this),e.off(A.BUFFER_CODECS,this.onBufferCodecs,this),e.off(A.BUFFER_EOS,this.onBufferEos,this),e.off(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(A.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(A.FRAG_PARSED,this.onFragParsed,this),e.off(A.FRAG_CHANGED,this.onFragChanged,this)}_initSourceBuffer(){this.sourceBuffer={},this.operationQueue=new bl(this.sourceBuffer),this.listeners={audio:[],video:[],audiovideo:[]},this.appendErrors={audio:0,video:0,audiovideo:0},this.lastMpegAudioChunk=null}onManifestLoading(){this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=0,this.details=null}onManifestParsed(e,i){let n=2;(i.audio&&!i.video||!i.altAudio)&&(n=1),this.bufferCodecEventsExpected=this._bufferCodecEventsTotal=n,this.log(this.bufferCodecEventsExpected+" bufferCodec event(s) expected")}onMediaAttaching(e,i){let n=this.media=i.media,r=Xi(this.appendSource);if(n&&r){var s;let a=this.mediaSource=new r;this.log("created media source: "+((s=a.constructor)==null?void 0:s.name)),a.addEventListener("sourceopen",this._onMediaSourceOpen),a.addEventListener("sourceended",this._onMediaSourceEnded),a.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(a.addEventListener("startstreaming",this._onStartStreaming),a.addEventListener("endstreaming",this._onEndStreaming));let l=this._objectUrl=self.URL.createObjectURL(a);if(this.appendSource)try{n.removeAttribute("src");let d=self.ManagedMediaSource;n.disableRemotePlayback=n.disableRemotePlayback||d&&a instanceof d,Al(n),function(u,f){let E=self.document.createElement("source");E.type="video/mp4",E.src=f,u.appendChild(E)}(n,l),n.load()}catch(d){n.src=l}else n.src=l;n.addEventListener("emptied",this._onMediaEmptied)}}onMediaDetaching(){let{media:e,mediaSource:i,_objectUrl:n}=this;if(i){if(this.log("media source detaching"),i.readyState==="open")try{i.endOfStream()}catch(r){this.warn(`onMediaDetaching: ${r.message} while calling endOfStream`)}this.onBufferReset(),i.removeEventListener("sourceopen",this._onMediaSourceOpen),i.removeEventListener("sourceended",this._onMediaSourceEnded),i.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(i.removeEventListener("startstreaming",this._onStartStreaming),i.removeEventListener("endstreaming",this._onEndStreaming)),e&&(e.removeEventListener("emptied",this._onMediaEmptied),n&&self.URL.revokeObjectURL(n),this.mediaSrc===n?(e.removeAttribute("src"),this.appendSource&&Al(e),e.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.bufferCodecEventsExpected=this._bufferCodecEventsTotal,this.pendingTracks={},this.tracks={}}this.hls.trigger(A.MEDIA_DETACHED,void 0)}onBufferReset(){this.getSourceBufferTypes().forEach((e)=>{this.resetBuffer(e)}),this._initSourceBuffer()}resetBuffer(e){let i=this.sourceBuffer[e];try{var n;if(i)this.removeBufferListeners(e),this.sourceBuffer[e]=void 0,(n=this.mediaSource)!=null&&n.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(i)}catch(r){this.warn("onBufferReset "+e,r)}}onBufferCodecs(e,i){let n=this.getSourceBufferTypes().length,r=Object.keys(i);if(r.forEach((a)=>{if(n){let d=this.tracks[a];if(d&&typeof d.buffer.changeType=="function"){var l;let{id:u,codec:f,levelCodec:E,container:S,metadata:T}=i[a],_=Zr(d.codec,d.levelCodec),D=_==null?void 0:_.replace(Tl,"$1"),w=Zr(f,E),x=(l=w)==null?void 0:l.replace(Tl,"$1");if(w&&D!==x){a.slice(0,5)==="audio"&&(w=xn(w,this.appendSource));let M=`${S};codecs=${w}`;this.appendChangeType(a,M),this.log(`switching codec ${_} to ${w}`),this.tracks[a]={buffer:d.buffer,codec:f,container:S,levelCodec:E,metadata:T,id:u}}}}else this.pendingTracks[a]=i[a]}),n)return;let s=Math.max(this.bufferCodecEventsExpected-1,0);this.bufferCodecEventsExpected!==s&&(this.log(`${s} bufferCodec event(s) expected ${r.join(",")}`),this.bufferCodecEventsExpected=s),this.mediaSource&&this.mediaSource.readyState==="open"&&this.checkPendingTracks()}appendChangeType(e,i){let{operationQueue:n}=this,r={execute:()=>{let s=this.sourceBuffer[e];s&&(this.log(`changing ${e} sourceBuffer type to ${i}`),s.changeType(i)),n.shiftAndExecuteNext(e)},onStart:()=>{},onComplete:()=>{},onError:(s)=>{this.warn(`Failed to change ${e} SourceBuffer type`,s)}};n.append(r,e,!!this.pendingTracks[e])}onBufferAppending(e,i){let{hls:n,operationQueue:r,tracks:s}=this,{data:a,type:l,frag:d,part:u,chunkMeta:f}=i,E=f.buffering[l],S=self.performance.now();E.start=S;let T=d.stats.buffering,_=u?u.stats.buffering:null;T.start===0&&(T.start=S),_&&_.start===0&&(_.start=S);let D=s.audio,w=!1;l==="audio"&&(D==null?void 0:D.container)==="audio/mpeg"&&(w=!this.lastMpegAudioChunk||f.id===1||this.lastMpegAudioChunk.sn!==f.sn,this.lastMpegAudioChunk=f);let x=d.start,M={execute:()=>{if(E.executeStart=self.performance.now(),w){let V=this.sourceBuffer[l];if(V){let X=x-V.timestampOffset;Math.abs(X)>=0.1&&(this.log(`Updating audio SourceBuffer timestampOffset to ${x} (delta: ${X}) sn: ${d.sn})`),V.timestampOffset=x)}}this.appendExecutor(a,l)},onStart:()=>{},onComplete:()=>{let V=self.performance.now();E.executeEnd=E.end=V,T.first===0&&(T.first=V),_&&_.first===0&&(_.first=V);let{sourceBuffer:X}=this,ot={};for(let et in X)ot[et]=ye.getBuffered(X[et]);this.appendErrors[l]=0,l==="audio"||l==="video"?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(A.BUFFER_APPENDED,{type:l,frag:d,part:u,chunkMeta:f,parent:d.type,timeRanges:ot})},onError:(V)=>{let X={type:Ft.MEDIA_ERROR,parent:d.type,details:H.BUFFER_APPEND_ERROR,sourceBufferName:l,frag:d,part:u,chunkMeta:f,error:V,err:V,fatal:!1};if(V.code===DOMException.QUOTA_EXCEEDED_ERR)X.details=H.BUFFER_FULL_ERROR;else{let ot=++this.appendErrors[l];X.details=H.BUFFER_APPEND_ERROR,this.warn(`Failed ${ot}/${n.config.appendErrorMaxRetry} times to append segment in "${l}" sourceBuffer`),ot>=n.config.appendErrorMaxRetry&&(X.fatal=!0)}n.trigger(A.ERROR,X)}};r.append(M,l,!!this.pendingTracks[l])}onBufferFlushing(e,i){let{operationQueue:n}=this,r=(s)=>({execute:this.removeExecutor.bind(this,s,i.startOffset,i.endOffset),onStart:()=>{},onComplete:()=>{this.hls.trigger(A.BUFFER_FLUSHED,{type:s})},onError:(a)=>{this.warn(`Failed to remove from ${s} SourceBuffer`,a)}});i.type?n.append(r(i.type),i.type):this.getSourceBufferTypes().forEach((s)=>{n.append(r(s),s)})}onFragParsed(e,i){let{frag:n,part:r}=i,s=[],a=r?r.elementaryStreams:n.elementaryStreams;a[Jt]?s.push("audiovideo"):(a[gt]&&s.push("audio"),a[Rt]&&s.push("video")),s.length===0&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${n.type} level: ${n.level} sn: ${n.sn}`),this.blockBuffers(()=>{let l=self.performance.now();n.stats.buffering.end=l,r&&(r.stats.buffering.end=l);let d=r?r.stats:n.stats;this.hls.trigger(A.FRAG_BUFFERED,{frag:n,part:r,stats:d,id:n.type})},s)}onFragChanged(e,i){this.trimBuffers()}onBufferEos(e,i){this.getSourceBufferTypes().reduce((n,r)=>{let s=this.sourceBuffer[r];return!s||i.type&&i.type!==r||(s.ending=!0,s.ended||(s.ended=!0,this.log(r+" sourceBuffer now EOS"))),n&&!(s&&!s.ended)},!0)&&(this.log("Queueing mediaSource.endOfStream()"),this.blockBuffers(()=>{this.getSourceBufferTypes().forEach((r)=>{let s=this.sourceBuffer[r];s&&(s.ending=!1)});let{mediaSource:n}=this;n&&n.readyState==="open"?(this.log("Calling mediaSource.endOfStream()"),n.endOfStream()):n&&this.log("Could not call mediaSource.endOfStream(). mediaSource.readyState: "+n.readyState)}))}onLevelUpdated(e,{details:i}){i.fragments.length&&(this.details=i,this.getSourceBufferTypes().length?this.blockBuffers(this.updateMediaElementDuration.bind(this)):this.updateMediaElementDuration())}trimBuffers(){let{hls:e,details:i,media:n}=this;if(!n||i===null)return;if(!this.getSourceBufferTypes().length)return;let r=e.config,s=n.currentTime,a=i.levelTargetDuration,l=i.live&&r.liveBackBufferLength!==null?r.liveBackBufferLength:r.backBufferLength;if(j(l)&&l>0){let d=Math.max(l,a),u=Math.floor(s/a)*a-d;this.flushBackBuffer(s,a,u)}if(j(r.frontBufferFlushThreshold)&&r.frontBufferFlushThreshold>0){let d=Math.max(r.maxBufferLength,r.frontBufferFlushThreshold),u=Math.max(d,a),f=Math.floor(s/a)*a+u;this.flushFrontBuffer(s,a,f)}}flushBackBuffer(e,i,n){let{details:r,sourceBuffer:s}=this;this.getSourceBufferTypes().forEach((a)=>{let l=s[a];if(l){let d=ye.getBuffered(l);if(d.length>0&&n>d.start(0)){if(this.hls.trigger(A.BACK_BUFFER_REACHED,{bufferEnd:n}),r!=null&&r.live)this.hls.trigger(A.LIVE_BACK_BUFFER_REACHED,{bufferEnd:n});else if(l.ended&&d.end(d.length-1)-e<2*i)return void this.log(`Cannot flush ${a} back buffer while SourceBuffer is in ended state`);this.hls.trigger(A.BUFFER_FLUSHING,{startOffset:0,endOffset:n,type:a})}}})}flushFrontBuffer(e,i,n){let{sourceBuffer:r}=this;this.getSourceBufferTypes().forEach((s)=>{let a=r[s];if(a){let l=ye.getBuffered(a),d=l.length;if(d<2)return;let u=l.start(d-1),f=l.end(d-1);if(n>u||e>=u&&e<=f)return;if(a.ended&&e-f<2*i)return void this.log(`Cannot flush ${s} front buffer while SourceBuffer is in ended state`);this.hls.trigger(A.BUFFER_FLUSHING,{startOffset:u,endOffset:1/0,type:s})}})}updateMediaElementDuration(){if(!this.details||!this.media||!this.mediaSource||this.mediaSource.readyState!=="open")return;let{details:e,hls:i,media:n,mediaSource:r}=this,s=e.fragments[0].start+e.totalduration,a=n.duration,l=j(r.duration)?r.duration:0;e.live&&i.config.liveDurationInfinity?(r.duration=1/0,this.updateSeekableRange(e)):(s>l&&s>a||!j(a))&&(this.log("Updating Media Source duration to "+s.toFixed(3)),r.duration=s)}updateSeekableRange(e){let i=this.mediaSource,n=e.fragments;if(n.length&&e.live&&i!=null&&i.setLiveSeekableRange){let r=Math.max(0,n[0].start),s=Math.max(r,r+e.totalduration);this.log(`Media Source duration is set to ${i.duration}. Setting seekable range to ${r}-${s}.`),i.setLiveSeekableRange(r,s)}}checkPendingTracks(){let{bufferCodecEventsExpected:e,operationQueue:i,pendingTracks:n}=this,r=Object.keys(n).length;if(r&&(!e||r===2||("audiovideo"in n))){this.createSourceBuffers(n),this.pendingTracks={};let s=this.getSourceBufferTypes();if(s.length)this.hls.trigger(A.BUFFER_CREATED,{tracks:this.tracks}),s.forEach((a)=>{i.executeNext(a)});else{let a=new Error("could not create source buffer for media codec(s)");this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:a,reason:a.message})}}}createSourceBuffers(e){let{sourceBuffer:i,mediaSource:n}=this;if(!n)throw Error("createSourceBuffers called when mediaSource was null");for(let s in e)if(!i[s]){var r;let a=e[s];if(!a)throw Error(`source buffer exists for track ${s}, however track does not`);let l=((r=a.levelCodec)==null?void 0:r.indexOf(","))===-1?a.levelCodec:a.codec;l&&s.slice(0,5)==="audio"&&(l=xn(l,this.appendSource));let d=`${a.container};codecs=${l}`;this.log(`creating sourceBuffer(${d})`);try{let u=i[s]=n.addSourceBuffer(d),f=s;this.addBufferListener(f,"updatestart",this._onSBUpdateStart),this.addBufferListener(f,"updateend",this._onSBUpdateEnd),this.addBufferListener(f,"error",this._onSBUpdateError),this.appendSource&&this.addBufferListener(f,"bufferedchange",(E,S)=>{let T=S.removedRanges;T!=null&&T.length&&this.hls.trigger(A.BUFFER_FLUSHED,{type:s})}),this.tracks[s]={buffer:u,codec:l,container:a.container,levelCodec:a.levelCodec,metadata:a.metadata,id:a.id}}catch(u){this.error("error while trying to add sourceBuffer: "+u.message),this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:u,sourceBufferName:s,mimeType:d})}}}get mediaSrc(){var e;let i=((e=this.media)==null?void 0:e.firstChild)||this.media;return i==null?void 0:i.src}_onSBUpdateStart(e){let{operationQueue:i}=this;i.current(e).onStart()}_onSBUpdateEnd(e){var i;if(((i=this.mediaSource)==null?void 0:i.readyState)==="closed")return void this.resetBuffer(e);let{operationQueue:n}=this;n.current(e).onComplete(),n.shiftAndExecuteNext(e)}_onSBUpdateError(e,i){var n;let r=new Error(`${e} SourceBuffer error. MediaSource readyState: ${(n=this.mediaSource)==null?void 0:n.readyState}`);this.error(""+r,i),this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:r,fatal:!1});let s=this.operationQueue.current(e);s&&s.onError(r)}removeExecutor(e,i,n){let{media:r,mediaSource:s,operationQueue:a,sourceBuffer:l}=this,d=l[e];if(!r||!s||!d)return this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`),void a.shiftAndExecuteNext(e);let u=j(r.duration)?r.duration:1/0,f=j(s.duration)?s.duration:1/0,E=Math.max(0,i),S=Math.min(n,u,f);S>E&&(!d.ending||d.ended)?(d.ended=!1,this.log(`Removing [${E},${S}] from the ${e} SourceBuffer`),d.remove(E,S)):a.shiftAndExecuteNext(e)}appendExecutor(e,i){let n=this.sourceBuffer[i];if(n)n.ended=!1,n.appendBuffer(e);else if(!this.pendingTracks[i])throw new Error(`Attempting to append to the ${i} SourceBuffer, but it does not exist`)}blockBuffers(e,i=this.getSourceBufferTypes()){if(!i.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),void Promise.resolve().then(e);let{operationQueue:n}=this,r=i.map((s)=>n.appendBlocker(s));Promise.all(r).then(()=>{e(),i.forEach((s)=>{let a=this.sourceBuffer[s];a!=null&&a.updating||n.shiftAndExecuteNext(s)})})}getSourceBufferTypes(){return Object.keys(this.sourceBuffer)}addBufferListener(e,i,n){let r=this.sourceBuffer[e];if(!r)return;let s=n.bind(this,e);this.listeners[e].push({event:i,listener:s}),r.addEventListener(i,s)}removeBufferListeners(e){let i=this.sourceBuffer[e];i&&this.listeners[e].forEach((n)=>{i.removeEventListener(n.event,n.listener)})}},capLevelController:Go,errorController:class t{constructor(e){this.hls=void 0,this.playlistError=0,this.penalizedRenditions={},this.log=void 0,this.warn=void 0,this.error=void 0,this.hls=e,this.log=C.log.bind(C,"[info]:"),this.warn=C.warn.bind(C,"[warning]:"),this.error=C.error.bind(C,"[error]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(A.ERROR,this.onError,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){let e=this.hls;e&&(e.off(A.ERROR,this.onError,this),e.off(A.ERROR,this.onErrorOut,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}}startLoad(e){}stopLoad(){this.playlistError=0}getVariantLevelIndex(e){return(e==null?void 0:e.type)===me?e.level:this.hls.loadLevel}onManifestLoading(){this.playlistError=0,this.penalizedRenditions={}}onLevelUpdated(){this.playlistError=0}onError(e,i){var n,r;if(i.fatal)return;let s=this.hls,a=i.context;switch(i.details){case H.FRAG_LOAD_ERROR:case H.FRAG_LOAD_TIMEOUT:case H.KEY_LOAD_ERROR:case H.KEY_LOAD_TIMEOUT:return void(i.errorAction=this.getFragRetryOrSwitchAction(i));case H.FRAG_PARSING_ERROR:if((n=i.frag)!=null&&n.gap)return void(i.errorAction={action:$s,flags:$n});case H.FRAG_GAP:case H.FRAG_DECRYPT_ERROR:return i.errorAction=this.getFragRetryOrSwitchAction(i),void(i.errorAction.action=un);case H.LEVEL_EMPTY_ERROR:case H.LEVEL_PARSING_ERROR:{var l,d;let u=i.parent===me?i.level:s.loadLevel;i.details===H.LEVEL_EMPTY_ERROR&&(l=i.context)!=null&&(d=l.levelDetails)!=null&&d.live?i.errorAction=this.getPlaylistRetryOrSwitchAction(i,u):(i.levelRetry=!1,i.errorAction=this.getLevelSwitchAction(i,u))}return;case H.LEVEL_LOAD_ERROR:case H.LEVEL_LOAD_TIMEOUT:return void(typeof(a==null?void 0:a.level)=="number"&&(i.errorAction=this.getPlaylistRetryOrSwitchAction(i,a.level)));case H.AUDIO_TRACK_LOAD_ERROR:case H.AUDIO_TRACK_LOAD_TIMEOUT:case H.SUBTITLE_LOAD_ERROR:case H.SUBTITLE_TRACK_LOAD_TIMEOUT:if(a){let u=s.levels[s.loadLevel];if(u&&(a.type===yi&&u.hasAudioGroup(a.groupId)||a.type===Fi&&u.hasSubtitleGroup(a.groupId)))return i.errorAction=this.getPlaylistRetryOrSwitchAction(i,s.loadLevel),i.errorAction.action=un,void(i.errorAction.flags=Gs)}return;case H.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:{let u=s.levels[s.loadLevel],f=u==null?void 0:u.attrs["HDCP-LEVEL"];f?i.errorAction={action:un,flags:Hs,hdcpLevel:f}:this.keySystemError(i)}return;case H.BUFFER_ADD_CODEC_ERROR:case H.REMUX_ALLOC_ERROR:case H.BUFFER_APPEND_ERROR:return void(i.errorAction=this.getLevelSwitchAction(i,(r=i.level)!=null?r:s.loadLevel));case H.INTERNAL_EXCEPTION:case H.BUFFER_APPENDING_ERROR:case H.BUFFER_FULL_ERROR:case H.LEVEL_SWITCH_ERROR:case H.BUFFER_STALLED_ERROR:case H.BUFFER_SEEK_OVER_HOLE:case H.BUFFER_NUDGE_ON_STALL:return void(i.errorAction={action:$s,flags:$n})}i.type===Ft.KEY_SYSTEM_ERROR&&this.keySystemError(i)}keySystemError(e){let i=this.getVariantLevelIndex(e.frag);e.levelRetry=!1,e.errorAction=this.getLevelSwitchAction(e,i)}getPlaylistRetryOrSwitchAction(e,i){let n=La(this.hls.config.playlistLoadPolicy,e),r=this.playlistError++;if(ar(n,r,es(e),e.response))return{action:ui,flags:$n,retryConfig:n,retryCount:r};let s=this.getLevelSwitchAction(e,i);return n&&(s.retryConfig=n,s.retryCount=r),s}getFragRetryOrSwitchAction(e){let i=this.hls,n=this.getVariantLevelIndex(e.frag),r=i.levels[n],{fragLoadPolicy:s,keyLoadPolicy:a}=i.config,l=La(e.details.startsWith("key")?a:s,e),d=i.levels.reduce((f,E)=>f+E.fragmentError,0);if(r){if(e.details!==H.FRAG_GAP&&r.fragmentError++,ar(l,d,es(e),e.response))return{action:ui,flags:$n,retryConfig:l,retryCount:d}}let u=this.getLevelSwitchAction(e,n);return l&&(u.retryConfig=l,u.retryCount=d),u}getLevelSwitchAction(e,i){let n=this.hls;i==null&&(i=n.loadLevel);let r=this.hls.levels[i];if(r){var s,a;let u=e.details;r.loadError++,u===H.BUFFER_APPEND_ERROR&&r.fragmentError++;let f=-1,{levels:E,loadLevel:S,minAutoLevel:T,maxAutoLevel:_}=n;n.autoLevelEnabled||(n.loadLevel=-1);let D=(s=e.frag)==null?void 0:s.type,w=(D===ei&&u===H.FRAG_PARSING_ERROR||e.sourceBufferName==="audio"&&(u===H.BUFFER_ADD_CODEC_ERROR||u===H.BUFFER_APPEND_ERROR))&&E.some(({audioCodec:X})=>r.audioCodec!==X),x=e.sourceBufferName==="video"&&(u===H.BUFFER_ADD_CODEC_ERROR||u===H.BUFFER_APPEND_ERROR)&&E.some(({codecSet:X,audioCodec:ot})=>r.codecSet!==X&&r.audioCodec===ot),{type:M,groupId:V}=(a=e.context)!=null?a:{};for(let X=E.length;X--;){let ot=(X+S)%E.length;if(ot!==S&&ot>=T&&ot<=_&&E[ot].loadError===0){var l,d;let et=E[ot];if(u===H.FRAG_GAP&&e.frag){let vt=E[ot].details;if(vt){let St=or(e.frag,vt.fragments,e.frag.start);if(St!=null&&St.gap)continue}}else{if(M===yi&&et.hasAudioGroup(V)||M===Fi&&et.hasSubtitleGroup(V))continue;if(D===ei&&(l=r.audioGroups)!=null&&l.some((vt)=>et.hasAudioGroup(vt))||D===Bi&&(d=r.subtitleGroups)!=null&&d.some((vt)=>et.hasSubtitleGroup(vt))||w&&r.audioCodec===et.audioCodec||!w&&r.audioCodec!==et.audioCodec||x&&r.codecSet===et.codecSet)continue}f=ot;break}}if(f>-1&&n.loadLevel!==f)return e.levelRetry=!0,this.playlistError=0,{action:un,flags:$n,nextAutoLevel:f}}return{action:un,flags:Gs}}onErrorOut(e,i){var n;switch((n=i.errorAction)==null?void 0:n.action){case $s:break;case un:this.sendAlternateToPenaltyBox(i),i.errorAction.resolved||i.details===H.FRAG_GAP?/MediaSource readyState: ended/.test(i.error.message)&&(this.warn(`MediaSource ended after "${i.sourceBufferName}" sourceBuffer append error. Attempting to recover from media error.`),this.hls.recoverMediaError()):i.fatal=!0}i.fatal&&this.hls.stopLoad()}sendAlternateToPenaltyBox(e){let i=this.hls,n=e.errorAction;if(!n)return;let{flags:r,hdcpLevel:s,nextAutoLevel:a}=n;switch(r){case $n:this.switchLevel(e,a);break;case Hs:s&&(i.maxHdcpLevel=ct[ct.indexOf(s)-1],n.resolved=!0),this.warn(`Restricting playback to HDCP-LEVEL of "${i.maxHdcpLevel}" or lower`)}n.resolved||this.switchLevel(e,a)}switchLevel(e,i){i!==void 0&&e.errorAction&&(this.warn(`switching to level ${i} after ${e.details}`),this.hls.nextAutoLevel=i,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)}},fpsController:class t{constructor(e){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=e,this.registerListeners()}setStreamController(e){this.streamController=e}registerListeners(){this.hls.on(A.MEDIA_ATTACHING,this.onMediaAttaching,this)}unregisterListeners(){this.hls.off(A.MEDIA_ATTACHING,this.onMediaAttaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(e,i){let n=this.hls.config;if(n.capLevelOnFPSDrop){let r=i.media instanceof self.HTMLVideoElement?i.media:null;this.media=r,r&&typeof r.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),n.fpsDroppedMonitoringPeriod)}}checkFPS(e,i,n){let r=performance.now();if(i){if(this.lastTime){let s=r-this.lastTime,a=n-this.lastDroppedFrames,l=i-this.lastDecodedFrames,d=1000*a/s,u=this.hls;if(u.trigger(A.FPS_DROP,{currentDropped:a,currentDecoded:l,totalDroppedFrames:n}),d>0&&a>u.config.fpsDroppedMonitoringThreshold*l){let f=u.currentLevel;C.warn("drop FPS ratio greater than max allowed value for currentLevel: "+f),f>0&&(u.autoLevelCapping===-1||u.autoLevelCapping>=f)&&(f-=1,u.trigger(A.FPS_DROP_LEVEL_CAPPING,{level:f,droppedLevel:u.currentLevel}),u.autoLevelCapping=f,this.streamController.nextLevelSwitch())}}this.lastTime=r,this.lastDroppedFrames=n,this.lastDecodedFrames=i}}checkFPSInterval(){let e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){let i=e.getVideoPlaybackQuality();this.checkFPS(e,i.totalVideoFrames,i.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}},stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:500000,abrEwmaDefaultEstimateMax:5000000,abrBandWidthFactor:0.95,abrBandWidthUpFactor:0.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:Qe,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableID3MetadataCues:!0,useMediaCapabilities:!0,certLoadPolicy:{default:{maxTimeToFirstByteMs:8000,maxLoadTimeMs:20000,timeoutRetry:null,errorRetry:null}},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8000,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:20000,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1000,maxRetryDelayMs:20000,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:8000}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1000,maxRetryDelayMs:8000}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:120000,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1000,maxRetryDelayMs:8000}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:20000,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1000,maxRetryDelayMs:8000}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1000,manifestLoadingMaxRetryTimeout:64000,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1000,levelLoadingMaxRetryTimeout:64000,fragLoadingTimeOut:20000,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1000,fragLoadingMaxRetryTimeout:64000},{cueHandler:xd,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:class t extends Br{constructor(e,i,n){super(e,i,n,"[subtitle-stream-controller]",Bi),this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}_registerListeners(){let{hls:e}=this;e.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.LEVEL_LOADED,this.onLevelLoaded,this),e.on(A.ERROR,this.onError,this),e.on(A.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(A.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(A.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(A.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(A.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.LEVEL_LOADED,this.onLevelLoaded,this),e.off(A.ERROR,this.onError,this),e.off(A.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(A.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(A.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(A.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(A.FRAG_BUFFERED,this.onFragBuffered,this)}startLoad(e){this.stopLoad(),this.state=be,this.setInterval(500),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}onManifestLoading(){this.mainDetails=null,this.fragmentTracker.removeAllFragments()}onMediaDetaching(){this.tracksBuffered=[],super.onMediaDetaching()}onLevelLoaded(e,i){this.mainDetails=i.details}onSubtitleFragProcessed(e,i){let{frag:n,success:r}=i;if(this.fragPrevious=n,this.state=be,!r)return;let s=this.tracksBuffered[this.currentTrackId];if(!s)return;let a,l=n.start;for(let u=0;u<s.length;u++)if(l>=s[u].start&&l<=s[u].end){a=s[u];break}let d=n.start+n.duration;a?a.end=d:(a={start:l,end:d},s.push(a)),this.fragmentTracker.fragBuffered(n),this.fragBufferedComplete(n,null)}onBufferFlushing(e,i){let{startOffset:n,endOffset:r}=i;if(n===0&&r!==Number.POSITIVE_INFINITY){let s=r-1;if(s<=0)return;i.endOffsetSubtitles=Math.max(0,s),this.tracksBuffered.forEach((a)=>{for(let l=0;l<a.length;)if(a[l].end<=s)a.shift();else{if(!(a[l].start<s))break;a[l].start=s,l++}}),this.fragmentTracker.removeFragmentsInRange(n,s,Bi)}}onFragBuffered(e,i){var n;this.loadedmetadata||i.frag.type!==me||(n=this.media)!=null&&n.buffered.length&&(this.loadedmetadata=!0)}onError(e,i){let n=i.frag;(n==null?void 0:n.type)===Bi&&(this.fragCurrent&&this.fragCurrent.abortRequests(),this.state!==Wi&&(this.state=be))}onSubtitleTracksUpdated(e,{subtitleTracks:i}){this.levels&&El(this.levels,i)?this.levels=i.map((n)=>new ie(n)):(this.tracksBuffered=[],this.levels=i.map((n)=>{let r=new ie(n);return this.tracksBuffered[r.id]=[],r}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,Bi),this.fragPrevious=null,this.mediaBuffer=null)}onSubtitleTrackSwitch(e,i){var n;if(this.currentTrackId=i.id,(n=this.levels)==null||!n.length||this.currentTrackId===-1)return void this.clearInterval();let r=this.levels[this.currentTrackId];r!=null&&r.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,r&&this.setInterval(500)}onSubtitleTrackLoaded(e,i){var n;let{currentTrackId:r,levels:s}=this,{details:a,id:l}=i;if(!s)return void this.warn("Subtitle tracks were reset while loading level "+l);let d=s[r];if(l>=s.length||l!==r||!d)return;this.log(`Subtitle track ${l} loaded [${a.startSN},${a.endSN}]${a.lastPartSn?`[part-${a.lastPartSn}-${a.lastPartIndex}]`:""},duration:${a.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let u=0;if(a.live||(n=d.details)!=null&&n.live){let E=this.mainDetails;if(a.deltaUpdateFailed||!E)return;let S=E.fragments[0];var f;if(d.details)u=this.alignPlaylists(a,d.details,(f=this.levelLastLoaded)==null?void 0:f.details),u===0&&S&&(u=S.start,Bn(a,u));else a.hasProgramDateTime&&E.hasProgramDateTime?(ss(a,E),u=a.fragments[0].start):S&&(u=S.start,Bn(a,u))}if(d.details=a,this.levelLastLoaded=d,this.startFragRequested||!this.mainDetails&&a.live||this.setStartPosition(this.mainDetails||a,u),this.tick(),a.live&&!this.fragCurrent&&this.media&&this.state===be)or(null,a.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),d.details=void 0)}_handleFragmentLoadComplete(e){let{frag:i,payload:n}=e,r=i.decryptdata,s=this.hls;if(!this.fragContextChanged(i)&&n&&n.byteLength>0&&r!=null&&r.key&&r.iv&&r.method==="AES-128"){let a=performance.now();this.decrypter.decrypt(new Uint8Array(n),r.key.buffer,r.iv.buffer).catch((l)=>{throw s.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.FRAG_DECRYPT_ERROR,fatal:!1,error:l,reason:l.message,frag:i}),l}).then((l)=>{let d=performance.now();s.trigger(A.FRAG_DECRYPTED,{frag:i,payload:l,stats:{tstart:a,tdecrypt:d}})}).catch((l)=>{this.warn(`${l.name}: ${l.message}`),this.state=be})}}doTick(){if(this.media){if(this.state===be){let{currentTrackId:e,levels:i}=this,n=i==null?void 0:i[e];if(!n||!i.length||!n.details)return;let{config:r}=this,s=this.getLoadPosition(),a=ye.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],s,r.maxBufferHole),{end:l,len:d}=a,u=this.getFwdBufferInfo(this.media,me),f=n.details;if(d>this.getMaxBufferLength(u==null?void 0:u.len)+f.levelTargetDuration)return;let E=f.fragments,S=E.length,T=f.edge,_=null,D=this.fragPrevious;if(l<T){let w=r.maxFragLookUpTolerance,x=l>T-w?0:w;_=or(D,E,Math.max(E[0].start,l),x),!_&&D&&D.start<E[0].start&&(_=E[0])}else _=E[S-1];if(!_)return;if(_=this.mapToInitFragWhenRequired(_),_.sn!=="initSegment"){let w=E[_.sn-f.startSN-1];w&&w.cc===_.cc&&this.fragmentTracker.getState(w)===Ri&&(_=w)}this.fragmentTracker.getState(_)===Ri&&this.loadFragment(_,n,l)}}else this.state=be}getMaxBufferLength(e){let i=super.getMaxBufferLength();return e?Math.max(i,e):i}loadFragment(e,i,n){this.fragCurrent=e,e.sn==="initSegment"?this._loadInitSegment(e,i):(this.startFragRequested=!0,super.loadFragment(e,i,n))}get mediaBufferTimeRanges(){return new Sl(this.tracksBuffered[this.currentTrackId]||[])}},subtitleTrackController:class t extends ii{constructor(e){super(e,"[subtitle-track-controller]"),this.media=null,this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.queuedDefaultTrack=-1,this.asyncPollTrackChange=()=>this.pollTrackChange(0),this.useTextTrackPolling=!1,this.subtitlePollingInterval=-1,this._subtitleDisplay=!0,this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let i=null,n=rr(this.media.textTracks);for(let s=0;s<n.length;s++)if(n[s].mode==="hidden")i=n[s];else if(n[s].mode==="showing"){i=n[s];break}let r=this.findTrackForTextTrack(i);this.subtitleTrack!==r&&this.setSubtitleTrack(r)},this.registerListeners()}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,this.onTextTracksChanged=this.asyncPollTrackChange=null,super.destroy()}get subtitleDisplay(){return this._subtitleDisplay}set subtitleDisplay(e){this._subtitleDisplay=e,this.trackId>-1&&this.toggleTrackModes()}registerListeners(){let{hls:e}=this;e.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.MANIFEST_PARSED,this.onManifestParsed,this),e.on(A.LEVEL_LOADING,this.onLevelLoading,this),e.on(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(A.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(A.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.MANIFEST_PARSED,this.onManifestParsed,this),e.off(A.LEVEL_LOADING,this.onLevelLoading,this),e.off(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(A.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(A.ERROR,this.onError,this)}onMediaAttached(e,i){this.media=i.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&("onchange"in this.media.textTracks)),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))}pollTrackChange(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,e)}onMediaDetaching(){if(!this.media)return;self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||this.media.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),rr(this.media.textTracks).forEach((e)=>{Ui(e)}),this.subtitleTrack=-1,this.media=null}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(e,i){this.tracks=i.subtitleTracks}onSubtitleTrackLoaded(e,i){let{id:n,groupId:r,details:s}=i,a=this.tracksInGroup[n];if(!a||a.groupId!==r)return void this.warn(`Subtitle track with id:${n} and group:${r} not found in active group ${a==null?void 0:a.groupId}`);let l=a.details;a.details=i.details,this.log(`Subtitle track ${n} "${a.name}" lang:${a.lang} group:${r} loaded [${s.startSN}-${s.endSN}]`),n===this.trackId&&this.playlistLoaded(n,i,l)}onLevelLoading(e,i){this.switchLevel(i.level)}onLevelSwitching(e,i){this.switchLevel(i.level)}switchLevel(e){let i=this.hls.levels[e];if(!i)return;let n=i.subtitleGroups||null,r=this.groupIds,s=this.currentTrack;if(!n||(r==null?void 0:r.length)!==(n==null?void 0:n.length)||n!=null&&n.some((a)=>(r==null?void 0:r.indexOf(a))===-1)){this.groupIds=n,this.trackId=-1,this.currentTrack=null;let a=this.tracks.filter((f)=>!n||n.indexOf(f.groupId)!==-1);if(a.length)this.selectDefaultTrack&&!a.some((f)=>f.default)&&(this.selectDefaultTrack=!1),a.forEach((f,E)=>{f.id=E});else if(!s&&!this.tracksInGroup.length)return;this.tracksInGroup=a;let l=this.hls.config.subtitlePreference;if(!s&&l){this.selectDefaultTrack=!1;let f=rn(l,a);if(f>-1)s=a[f];else{let E=rn(l,this.tracks);s=this.tracks[E]}}let d=this.findTrackId(s);d===-1&&s&&(d=this.findTrackId(null));let u={subtitleTracks:a};this.log(`Updating subtitle tracks, ${a.length} track(s) found in "${n==null?void 0:n.join(",")}" group-id`),this.hls.trigger(A.SUBTITLE_TRACKS_UPDATED,u),d!==-1&&this.trackId===-1&&this.setSubtitleTrack(d)}else this.shouldReloadPlaylist(s)&&this.setSubtitleTrack(this.trackId)}findTrackId(e){let i=this.tracksInGroup,n=this.selectDefaultTrack;for(let r=0;r<i.length;r++){let s=i[r];if((!n||s.default)&&(n||e)&&(!e||lr(s,e)))return r}if(e){for(let r=0;r<i.length;r++){let s=i[r];if(ps(e.attrs,s.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return r}for(let r=0;r<i.length;r++){let s=i[r];if(ps(e.attrs,s.attrs,["LANGUAGE"]))return r}}return-1}findTrackForTextTrack(e){if(e){let i=this.tracksInGroup;for(let n=0;n<i.length;n++)if(Do(i[n],e))return n}return-1}onError(e,i){!i.fatal&&i.context&&(i.context.type!==Fi||i.context.id!==this.trackId||this.groupIds&&this.groupIds.indexOf(i.context.groupId)===-1||this.checkRetry(i))}get allSubtitleTracks(){return this.tracks}get subtitleTracks(){return this.tracksInGroup}get subtitleTrack(){return this.trackId}set subtitleTrack(e){this.selectDefaultTrack=!1,this.setSubtitleTrack(e)}setSubtitleOption(e){if(this.hls.config.subtitlePreference=e,e){let i=this.allSubtitleTracks;if(this.selectDefaultTrack=!1,i.length){let n=this.currentTrack;if(n&&lr(e,n))return n;let r=rn(e,this.tracksInGroup);if(r>-1){let s=this.tracksInGroup[r];return this.setSubtitleTrack(r),s}if(n)return null;{let s=rn(e,i);if(s>-1)return i[s]}}}return null}loadPlaylist(e){super.loadPlaylist();let i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){let{id:n,groupId:r,url:s}=i;if(e)try{s=e.addDirectives(s)}catch(a){this.warn("Could not construct new URL with HLS Delivery Directives: "+a)}this.log("Loading subtitle playlist for id "+n),this.hls.trigger(A.SUBTITLE_TRACK_LOADING,{url:s,id:n,groupId:r,deliveryDirectives:e||null})}}toggleTrackModes(){let{media:e}=this;if(!e)return;let i=rr(e.textTracks),n=this.currentTrack,r;if(n&&(r=i.filter((s)=>Do(n,s))[0],r||this.warn(`Unable to find subtitle TextTrack with name "${n.name}" and language "${n.lang}"`)),[].slice.call(i).forEach((s)=>{s.mode!=="disabled"&&s!==r&&(s.mode="disabled")}),r){let s=this.subtitleDisplay?"showing":"hidden";r.mode!==s&&(r.mode=s)}}setSubtitleTrack(e){let i=this.tracksInGroup;if(!this.media)return void(this.queuedDefaultTrack=e);if(e<-1||e>=i.length||!j(e))return void this.warn("Invalid subtitle track id: "+e);this.clearTimer(),this.selectDefaultTrack=!1;let n=this.currentTrack,r=i[e]||null;if(this.trackId=e,this.currentTrack=r,this.toggleTrackModes(),!r)return void this.hls.trigger(A.SUBTITLE_TRACK_SWITCH,{id:e});let s=!!r.details&&!r.details.live;if(e===this.trackId&&r===n&&s)return;this.log("Switching to subtitle-track "+e+(r?` "${r.name}" lang:${r.lang} group:${r.groupId}`:""));let{id:a,groupId:l="",name:d,type:u,url:f}=r;this.hls.trigger(A.SUBTITLE_TRACK_SWITCH,{id:a,groupId:l,name:d,type:u,url:f});let E=this.switchParams(r.url,n==null?void 0:n.details,r.details);this.loadPlaylist(E)}},timelineController:class t{constructor(e){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this.captionsProperties=void 0,this.hls=e,this.config=e.config,this.Cues=e.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},e.on(A.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(A.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(A.FRAG_LOADING,this.onFragLoading,this),e.on(A.FRAG_LOADED,this.onFragLoaded,this),e.on(A.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.on(A.FRAG_DECRYPTED,this.onFragDecrypted,this),e.on(A.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(A.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.on(A.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){let{hls:e}=this;e.off(A.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(A.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(A.FRAG_LOADING,this.onFragLoading,this),e.off(A.FRAG_LOADED,this.onFragLoaded,this),e.off(A.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(A.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(A.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(A.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(A.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){if(this.config.enableCEA708Captions&&(!this.cea608Parser1||!this.cea608Parser2)){let e=new aa(this,"textTrack1"),i=new aa(this,"textTrack2"),n=new aa(this,"textTrack3"),r=new aa(this,"textTrack4");this.cea608Parser1=new Oo(1,e,i),this.cea608Parser2=new Oo(3,n,r)}}addCues(e,i,n,r,s){let a=!1;for(let E=s.length;E--;){let S=s[E],T=(l=S[0],d=S[1],u=i,f=n,Math.min(d,f)-Math.max(l,u));if(T>=0&&(S[0]=Math.min(S[0],i),S[1]=Math.max(S[1],n),a=!0,T/(n-i)>0.5))return}var l,d,u,f;if(a||s.push([i,n]),this.config.renderTextTracksNatively){let E=this.captionsTracks[e];this.Cues.newCue(E,i,n,r)}else{let E=this.Cues.newCue(null,i,n,r);this.hls.trigger(A.CUES_PARSED,{type:"captions",cues:E,track:e})}}onInitPtsFound(e,{frag:i,id:n,initPTS:r,timescale:s}){let{unparsedVttFrags:a}=this;n==="main"&&(this.initPTS[i.cc]={baseTime:r,timescale:s}),a.length&&(this.unparsedVttFrags=[],a.forEach((l)=>{this.onFragLoaded(A.FRAG_LOADED,l)}))}getExistingTrack(e,i){let{media:n}=this;if(n)for(let r=0;r<n.textTracks.length;r++){let s=n.textTracks[r];if(Hl(s,{name:e,lang:i,attrs:{}}))return s}return null}createCaptionsTrack(e){this.config.renderTextTracksNatively?this.createNativeTrack(e):this.createNonNativeTrack(e)}createNativeTrack(e){if(this.captionsTracks[e])return;let{captionsProperties:i,captionsTracks:n,media:r}=this,{label:s,languageCode:a}=i[e],l=this.getExistingTrack(s,a);if(l)n[e]=l,Ui(n[e]),ir(n[e],r);else{let d=this.createTextTrack("captions",s,a);d&&(d[e]=!0,n[e]=d)}}createNonNativeTrack(e){if(this.nonNativeCaptionsTracks[e])return;let i=this.captionsProperties[e];if(!i)return;let n={_id:e,label:i.label,kind:"captions",default:!!i.media&&!!i.media.default,closedCaptions:i.media};this.nonNativeCaptionsTracks[e]=n,this.hls.trigger(A.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:[n]})}createTextTrack(e,i,n){let r=this.media;if(r)return r.addTextTrack(e,i,n)}onMediaAttaching(e,i){this.media=i.media,this._cleanTracks()}onMediaDetaching(){let{captionsTracks:e}=this;Object.keys(e).forEach((i)=>{Ui(e[i]),delete e[i]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())}_cleanTracks(){let{media:e}=this;if(!e)return;let i=e.textTracks;if(i)for(let n=0;n<i.length;n++)Ui(i[n])}onSubtitleTracksUpdated(e,i){let n=i.subtitleTracks||[],r=n.some((s)=>s.textCodec==="stpp.ttml.im1t");if(this.config.enableWebVTT||r&&this.config.enableIMSC1){if(El(this.tracks,n))return void(this.tracks=n);if(this.textTracks=[],this.tracks=n,this.config.renderTextTracksNatively){let s=this.media,a=s?rr(s.textTracks):null;if(this.tracks.forEach((l,d)=>{let u;if(a){let f=null;for(let E=0;E<a.length;E++)if(a[E]&&Hl(a[E],l)){f=a[E],a[E]=null;break}f&&(u=f)}if(u)Ui(u);else{let f=Gl(l);u=this.createTextTrack(f,l.name,l.lang),u&&(u.mode="disabled")}u&&this.textTracks.push(u)}),a!=null&&a.length){let l=a.filter((d)=>d!==null).map((d)=>d.label);l.length&&C.warn(`Media element contains unused subtitle tracks: ${l.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}}else if(this.tracks.length){let s=this.tracks.map((a)=>({label:a.name,kind:a.type.toLowerCase(),default:a.default,subtitleTrack:a}));this.hls.trigger(A.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:s})}}}onManifestLoaded(e,i){this.config.enableCEA708Captions&&i.captions&&i.captions.forEach((n)=>{let r=/(?:CC|SERVICE)([1-4])/.exec(n.instreamId);if(!r)return;let s="textTrack"+r[1],a=this.captionsProperties[s];a&&(a.label=n.name,n.lang&&(a.languageCode=n.lang),a.media=n)})}closedCaptionsForLevel(e){let i=this.hls.levels[e.level];return i==null?void 0:i.attrs["CLOSED-CAPTIONS"]}onFragLoading(e,i){this.initCea608Parsers();let{cea608Parser1:n,cea608Parser2:r,lastCc:s,lastSn:a,lastPartIndex:l}=this;if(this.enabled&&n&&r&&i.frag.type===me){var d,u;let{cc:f,sn:E}=i.frag,S=(d=i==null||(u=i.part)==null?void 0:u.index)!=null?d:-1;E===a+1||E===a&&S===l+1||f===s||(n.reset(),r.reset()),this.lastCc=f,this.lastSn=E,this.lastPartIndex=S}}onFragLoaded(e,i){let{frag:n,payload:r}=i;if(n.type===Bi)if(r.byteLength){let s=n.decryptdata,a="stats"in i;if(s==null||!s.encrypted||a){let l=this.tracks[n.level],d=this.vttCCs;d[n.cc]||(d[n.cc]={start:n.start,prevCC:this.prevCC,new:!0},this.prevCC=n.cc),l&&l.textCodec==="stpp.ttml.im1t"?this._parseIMSC1(n,r):this._parseVTTs(i)}}else this.hls.trigger(A.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:n,error:new Error("Empty subtitle payload")})}_parseIMSC1(e,i){let n=this.hls;Bl(i,this.initPTS[e.cc],(r)=>{this._appendCues(r,e.level),n.trigger(A.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:e})},(r)=>{C.log("Failed to parse IMSC1: "+r),n.trigger(A.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:e,error:r})})}_parseVTTs(e){var i;let{frag:n,payload:r}=e,{initPTS:s,unparsedVttFrags:a}=this,l=s.length-1;if(!s[n.cc]&&l===-1)return void a.push(e);let d=this.hls;vd((i=n.initSegment)!=null&&i.data?li(n.initSegment.data,new Uint8Array(r)):r,this.initPTS[n.cc],this.vttCCs,n.cc,n.start,(u)=>{this._appendCues(u,n.level),d.trigger(A.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:n})},(u)=>{let f=u.message==="Missing initPTS for VTT MPEGTS";f?a.push(e):this._fallbackToIMSC1(n,r),C.log("Failed to parse VTT cue: "+u),f&&l>n.cc||d.trigger(A.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:n,error:u})})}_fallbackToIMSC1(e,i){let n=this.tracks[e.level];n.textCodec||Bl(i,this.initPTS[e.cc],()=>{n.textCodec="stpp.ttml.im1t",this._parseIMSC1(e,i)},()=>{n.textCodec="wvtt"})}_appendCues(e,i){let n=this.hls;if(this.config.renderTextTracksNatively){let r=this.textTracks[i];if(!r||r.mode==="disabled")return;e.forEach((s)=>Dr(r,s))}else{let r=this.tracks[i];if(!r)return;let s=r.default?"default":"subtitles"+i;n.trigger(A.CUES_PARSED,{type:"subtitles",cues:e,track:s})}}onFragDecrypted(e,i){let{frag:n}=i;n.type===Bi&&this.onFragLoaded(A.FRAG_LOADED,i)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(e,i){this.initCea608Parsers();let{cea608Parser1:n,cea608Parser2:r}=this;if(!this.enabled||!n||!r)return;let{frag:s,samples:a}=i;if(s.type!==me||this.closedCaptionsForLevel(s)!=="NONE")for(let l=0;l<a.length;l++){let d=a[l].bytes;if(d){let u=this.extractCea608Data(d);n.addData(a[l].pts,u[0]),r.addData(a[l].pts,u[1])}}}onBufferFlushing(e,{startOffset:i,endOffset:n,endOffsetSubtitles:r,type:s}){let{media:a}=this;if(a&&!(a.currentTime<n)){if(!s||s==="video"){let{captionsTracks:l}=this;Object.keys(l).forEach((d)=>nr(l[d],i,n))}if(this.config.renderTextTracksNatively&&i===0&&r!==void 0){let{textTracks:l}=this;Object.keys(l).forEach((d)=>nr(l[d],i,r))}}}extractCea608Data(e){let i=[[],[]],n=31&e[0],r=2;for(let s=0;s<n;s++){let a=e[r++],l=127&e[r++],d=127&e[r++];if(l===0&&d===0)continue;if((4&a)!=0){let u=3&a;u!==0&&u!==1||(i[u].push(l),i[u].push(d))}}return i}},audioStreamController:class t extends Br{constructor(e,i,n){super(e,i,n,"[audio-stream-controller]",ei),this.videoBuffer=null,this.videoTrackCC=-1,this.waitingVideoCC=-1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.flushing=!1,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this._registerListeners()}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null,this.bufferedTrack=null,this.switchingTrack=null}_registerListeners(){let{hls:e}=this;e.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.LEVEL_LOADED,this.onLevelLoaded,this),e.on(A.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.on(A.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(A.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(A.ERROR,this.onError,this),e.on(A.BUFFER_RESET,this.onBufferReset,this),e.on(A.BUFFER_CREATED,this.onBufferCreated,this),e.on(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(A.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(A.INIT_PTS_FOUND,this.onInitPtsFound,this),e.on(A.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:e}=this;e.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.LEVEL_LOADED,this.onLevelLoaded,this),e.off(A.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),e.off(A.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(A.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(A.ERROR,this.onError,this),e.off(A.BUFFER_RESET,this.onBufferReset,this),e.off(A.BUFFER_CREATED,this.onBufferCreated,this),e.off(A.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(A.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(A.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(A.FRAG_BUFFERED,this.onFragBuffered,this)}onInitPtsFound(e,{frag:i,id:n,initPTS:r,timescale:s}){if(n==="main"){let a=i.cc;this.initPTS[i.cc]={baseTime:r,timescale:s},this.log(`InitPTS for cc: ${a} found from main: ${r}`),this.videoTrackCC=a,this.state===an&&this.tick()}}startLoad(e){if(!this.levels)return this.startPosition=e,void(this.state=Wi);let i=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),i>0&&e===-1?(this.log("Override startPosition with lastCurrentTime @"+i.toFixed(3)),e=i,this.state=be):(this.loadedmetadata=!1,this.state=fr),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}doTick(){switch(this.state){case be:this.doTickIdle();break;case fr:{var e;let{levels:n,trackId:r}=this,s=n==null||(e=n[r])==null?void 0:e.details;if(s){if(this.waitForCdnTuneIn(s))break;this.state=an}break}case hr:{var i;let n=performance.now(),r=this.retryDate;if(!r||n>=r||(i=this.media)!=null&&i.seeking){let{levels:s,trackId:a}=this;this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded((s==null?void 0:s[a])||null),this.state=be}break}case an:{let n=this.waitingData;if(n){let{frag:r,part:s,cache:a,complete:l}=n;if(this.initPTS[r.cc]!==void 0){this.waitingData=null,this.waitingVideoCC=-1,this.state=ur;let d={frag:r,part:s,payload:a.flush(),networkDetails:null};this._handleFragmentLoadProgress(d),l&&super._handleFragmentLoadComplete(d)}else if(this.videoTrackCC!==this.waitingVideoCC)this.log(`Waiting fragment cc (${r.cc}) cancelled because video is at cc ${this.videoTrackCC}`),this.clearWaitingFragment();else{let d=this.getLoadPosition(),u=ye.bufferInfo(this.mediaBuffer,d,this.config.maxBufferHole);Un(u.end,this.config.maxFragLookUpTolerance,r)<0&&(this.log(`Waiting fragment cc (${r.cc}) @ ${r.start} cancelled because another fragment at ${u.end} is needed`),this.clearWaitingFragment())}}else this.state=be}}this.onTickEnd()}clearWaitingFragment(){let e=this.waitingData;e&&(this.fragmentTracker.removeFragment(e.frag),this.waitingData=null,this.waitingVideoCC=-1,this.state=be)}resetLoadingState(){this.clearWaitingFragment(),super.resetLoadingState()}onTickEnd(){let{media:e}=this;e!=null&&e.readyState&&(this.lastCurrentTime=e.currentTime)}doTickIdle(){let{hls:e,levels:i,media:n,trackId:r}=this,s=e.config;if(!n&&(this.startFragRequested||!s.startFragPrefetch)||i==null||!i[r])return;let a=i[r],l=a.details;if(!l||l.live&&this.levelLastLoaded!==a||this.waitForCdnTuneIn(l))return void(this.state=fr);let d=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&d&&(this.bufferFlushed=!1,this.afterBufferFlushed(d,gt,ei));let u=this.getFwdBufferInfo(d,ei);if(u===null)return;let{bufferedTrack:f,switchingTrack:E}=this;if(!E&&this._streamEnded(u,l))return e.trigger(A.BUFFER_EOS,{type:"audio"}),void(this.state=Fr);let S=this.getFwdBufferInfo(this.videoBuffer?this.videoBuffer:this.media,me),T=u.len,_=this.getMaxBufferLength(S==null?void 0:S.len),D=l.fragments,w=D[0].start,x=this.flushing?this.getLoadPosition():u.end;if(E&&n){let ot=this.getLoadPosition();f&&!ps(E.attrs,f.attrs)&&(x=ot),l.PTSKnown&&ot<w&&(u.end>w||u.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),n.currentTime=w+0.05)}if(T>=_&&!E&&x<D[D.length-1].start)return;let M=this.getNextFragment(x,l),V=!1;if(M&&this.isLoopLoading(M,x)&&(V=!!M.gap,M=this.getNextFragmentLoopLoading(M,l,u,me,_)),!M)return void(this.bufferFlushed=!0);let X=S&&M.start>S.end+l.targetduration;if(X||(S==null||!S.len)&&u.len){let ot=this.getAppendedFrag(M.start,me);if(ot===null)return;if(V||(V=!!ot.gap||!!X&&S.len===0),X&&!V||V&&u.nextStart&&u.nextStart<ot.end)return}this.loadFragment(M,a,x)}getMaxBufferLength(e){let i=super.getMaxBufferLength();return e?Math.min(Math.max(i,e),this.config.maxMaxBufferLength):i}onMediaDetaching(){this.videoBuffer=null,this.bufferFlushed=this.flushing=!1,super.onMediaDetaching()}onAudioTracksUpdated(e,{audioTracks:i}){this.resetTransmuxer(),this.levels=i.map((n)=>new ie(n))}onAudioTrackSwitching(e,i){let n=!!i.url;this.trackId=i.id;let{fragCurrent:r}=this;r&&(r.abortRequests(),this.removeUnbufferedFrags(r.start)),this.resetLoadingState(),n?this.setInterval(100):this.resetTransmuxer(),n?(this.switchingTrack=i,this.state=be,this.flushAudioIfNeeded(i)):(this.switchingTrack=null,this.bufferedTrack=i,this.state=Wi),this.tick()}onManifestLoading(){this.fragmentTracker.removeAllFragments(),this.startPosition=this.lastCurrentTime=0,this.bufferFlushed=this.flushing=!1,this.levels=this.mainDetails=this.waitingData=this.bufferedTrack=this.cachedTrackLoadedData=this.switchingTrack=null,this.startFragRequested=!1,this.trackId=this.videoTrackCC=this.waitingVideoCC=-1}onLevelLoaded(e,i){this.mainDetails=i.details,this.cachedTrackLoadedData!==null&&(this.hls.trigger(A.AUDIO_TRACK_LOADED,this.cachedTrackLoadedData),this.cachedTrackLoadedData=null)}onAudioTrackLoaded(e,i){var n;if(this.mainDetails==null)return void(this.cachedTrackLoadedData=i);let{levels:r}=this,{details:s,id:a}=i;if(!r)return void this.warn("Audio tracks were reset while loading level "+a);this.log(`Audio track ${a} loaded [${s.startSN},${s.endSN}]${s.lastPartSn?`[part-${s.lastPartSn}-${s.lastPartIndex}]`:""},duration:${s.totalduration}`);let l=r[a],d=0;if(s.live||(n=l.details)!=null&&n.live){this.checkLiveUpdate(s);let f=this.mainDetails;if(s.deltaUpdateFailed||!f)return;var u;if(!l.details&&s.hasProgramDateTime&&f.hasProgramDateTime)ss(s,f),d=s.fragments[0].start;else d=this.alignPlaylists(s,l.details,(u=this.levelLastLoaded)==null?void 0:u.details)}l.details=s,this.levelLastLoaded=l,this.startFragRequested||!this.mainDetails&&s.live||this.setStartPosition(this.mainDetails||s,d),this.state!==fr||this.waitForCdnTuneIn(s)||(this.state=be),this.tick()}_handleFragmentLoadProgress(e){var i;let{frag:n,part:r,payload:s}=e,{config:a,trackId:l,levels:d}=this;if(!d)return void this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${n.sn} of level ${n.level} will not be buffered`);let u=d[l];if(!u)return void this.warn("Audio track is undefined on fragment load progress");let f=u.details;if(!f)return this.warn("Audio track details undefined on fragment load progress"),void this.removeUnbufferedFrags(n.start);let E=a.defaultAudioCodec||u.audioCodec||"mp4a.40.2",S=this.transmuxer;S||(S=this.transmuxer=new Ro(this.hls,ei,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));let T=this.initPTS[n.cc],_=(i=n.initSegment)==null?void 0:i.data;if(T!==void 0){let w=r?r.index:-1,x=w!==-1,M=new dr(n.level,n.sn,n.stats.chunkCount,s.byteLength,w,x);S.push(s,_,E,"",n,r,f.totalduration,!1,M,T)}else{this.log(`Unknown video PTS for cc ${n.cc}, waiting for video PTS before demuxing audio frag ${n.sn} of [${f.startSN} ,${f.endSN}],track ${l}`);let{cache:D}=this.waitingData=this.waitingData||{frag:n,part:r,cache:new os,complete:!1};D.push(new Uint8Array(s)),this.waitingVideoCC=this.videoTrackCC,this.state=an}}_handleFragmentLoadComplete(e){this.waitingData?this.waitingData.complete=!0:super._handleFragmentLoadComplete(e)}onBufferReset(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1}onBufferCreated(e,i){let n=i.tracks.audio;n&&(this.mediaBuffer=n.buffer||null),i.tracks.video&&(this.videoBuffer=i.tracks.video.buffer||null)}onFragBuffered(e,i){let{frag:n,part:r}=i;if(n.type===ei)if(this.fragContextChanged(n))this.warn(`Fragment ${n.sn}${r?" p: "+r.index:""} of level ${n.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);else{if(n.sn!=="initSegment"){this.fragPrevious=n;let s=this.switchingTrack;s&&(this.bufferedTrack=s,this.switchingTrack=null,this.hls.trigger(A.AUDIO_TRACK_SWITCHED,L({},s)))}this.fragBufferedComplete(n,r)}else if(!this.loadedmetadata&&n.type===me){let s=this.videoBuffer||this.media;if(s)ye.getBuffered(s).length&&(this.loadedmetadata=!0)}}onError(e,i){var n;if(i.fatal)this.state=mr;else switch(i.details){case H.FRAG_GAP:case H.FRAG_PARSING_ERROR:case H.FRAG_DECRYPT_ERROR:case H.FRAG_LOAD_ERROR:case H.FRAG_LOAD_TIMEOUT:case H.KEY_LOAD_ERROR:case H.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(ei,i);break;case H.AUDIO_TRACK_LOAD_ERROR:case H.AUDIO_TRACK_LOAD_TIMEOUT:case H.LEVEL_PARSING_ERROR:i.levelRetry||this.state!==fr||((n=i.context)==null?void 0:n.type)!==yi||(this.state=be);break;case H.BUFFER_APPEND_ERROR:case H.BUFFER_FULL_ERROR:if(!i.parent||i.parent!=="audio")return;if(i.details===H.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(i)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case H.INTERNAL_EXCEPTION:this.recoverWorkerError(i)}}onBufferFlushing(e,{type:i}){i!==Rt&&(this.flushing=!0)}onBufferFlushed(e,{type:i}){if(i!==Rt){this.flushing=!1,this.bufferFlushed=!0,this.state===Fr&&(this.state=be);let n=this.mediaBuffer||this.media;n&&(this.afterBufferFlushed(n,i,ei),this.tick())}}_handleTransmuxComplete(e){var i;let n="audio",{hls:r}=this,{remuxResult:s,chunkMeta:a}=e,l=this.getCurrentContext(a);if(!l)return void this.resetWhenMissingContext(a);let{frag:d,part:u,level:f}=l,{details:E}=f,{audio:S,text:T,id3:_,initSegment:D}=s;if(!this.fragContextChanged(d)&&E){if(this.state=hn,this.switchingTrack&&S&&this.completeAudioSwitch(this.switchingTrack),D!=null&&D.tracks){let w=d.initSegment||d;this._bufferInitSegment(f,D.tracks,w,a),r.trigger(A.FRAG_PARSING_INIT_SEGMENT,{frag:w,id:"audio",tracks:D.tracks})}if(S){let{startPTS:w,endPTS:x,startDTS:M,endDTS:V}=S;u&&(u.elementaryStreams[gt]={startPTS:w,endPTS:x,startDTS:M,endDTS:V}),d.setElementaryStreamInfo(gt,w,x,M,V),this.bufferFragmentData(S,d,u,a)}if(_!=null&&(i=_.samples)!=null&&i.length){let w=z({id:"audio",frag:d,details:E},_);r.trigger(A.FRAG_PARSING_METADATA,w)}if(T){let w=z({id:"audio",frag:d,details:E},T);r.trigger(A.FRAG_PARSING_USERDATA,w)}}else this.fragmentTracker.removeFragment(d)}_bufferInitSegment(e,i,n,r){if(this.state!==hn)return;i.video&&delete i.video;let s=i.audio;if(!s)return;s.id="audio";let a=e.audioCodec;this.log(`Init audio buffer, container:${s.container}, codecs[level/parsed]=[${a}/${s.codec}]`),a&&a.split(",").length===1&&(s.levelCodec=a),this.hls.trigger(A.BUFFER_CODECS,i);let l=s.initSegment;if(l!=null&&l.byteLength){let d={type:"audio",frag:n,part:null,chunkMeta:r,parent:n.type,data:l};this.hls.trigger(A.BUFFER_APPENDING,d)}this.tickImmediate()}loadFragment(e,i,n){let r=this.fragmentTracker.getState(e);var s;if(this.fragCurrent=e,this.switchingTrack||r===Ri||r===Hn)if(e.sn==="initSegment")this._loadInitSegment(e,i);else if((s=i.details)!=null&&s.live&&!this.initPTS[e.cc]){this.log(`Waiting for video PTS in continuity counter ${e.cc} of live stream before loading audio fragment ${e.sn} of level ${this.trackId}`),this.state=an;let a=this.mainDetails;a&&a.fragments[0].start!==i.details.fragments[0].start&&ss(i.details,a)}else this.startFragRequested=!0,super.loadFragment(e,i,n);else this.clearTrackerIfNeeded(e)}flushAudioIfNeeded(e){let{media:i,bufferedTrack:n}=this,r=n==null?void 0:n.attrs,s=e.attrs;i&&r&&(r.CHANNELS!==s.CHANNELS||n.name!==e.name||n.lang!==e.lang)&&(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null)}completeAudioSwitch(e){let{hls:i}=this;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,i.trigger(A.AUDIO_TRACK_SWITCHED,L({},e))}},audioTrackController:class t extends ii{constructor(e){super(e,"[audio-track-controller]"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){let{hls:e}=this;e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.MANIFEST_PARSED,this.onManifestParsed,this),e.on(A.LEVEL_LOADING,this.onLevelLoading,this),e.on(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(A.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(A.ERROR,this.onError,this)}unregisterListeners(){let{hls:e}=this;e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.MANIFEST_PARSED,this.onManifestParsed,this),e.off(A.LEVEL_LOADING,this.onLevelLoading,this),e.off(A.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(A.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(A.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(e,i){this.tracks=i.audioTracks||[]}onAudioTrackLoaded(e,i){let{id:n,groupId:r,details:s}=i,a=this.tracksInGroup[n];if(!a||a.groupId!==r)return void this.warn(`Audio track with id:${n} and group:${r} not found in active group ${a==null?void 0:a.groupId}`);let l=a.details;a.details=i.details,this.log(`Audio track ${n} "${a.name}" lang:${a.lang} group:${r} loaded [${s.startSN}-${s.endSN}]`),n===this.trackId&&this.playlistLoaded(n,i,l)}onLevelLoading(e,i){this.switchLevel(i.level)}onLevelSwitching(e,i){this.switchLevel(i.level)}switchLevel(e){let i=this.hls.levels[e];if(!i)return;let n=i.audioGroups||null,r=this.groupIds,s=this.currentTrack;if(!n||(r==null?void 0:r.length)!==(n==null?void 0:n.length)||n!=null&&n.some((l)=>(r==null?void 0:r.indexOf(l))===-1)){this.groupIds=n,this.trackId=-1,this.currentTrack=null;let l=this.tracks.filter((S)=>!n||n.indexOf(S.groupId)!==-1);if(l.length)this.selectDefaultTrack&&!l.some((S)=>S.default)&&(this.selectDefaultTrack=!1),l.forEach((S,T)=>{S.id=T});else if(!s&&!this.tracksInGroup.length)return;this.tracksInGroup=l;let d=this.hls.config.audioPreference;if(!s&&d){let S=rn(d,l,cr);if(S>-1)s=l[S];else{let T=rn(d,this.tracks);s=this.tracks[T]}}let u=this.findTrackId(s);u===-1&&s&&(u=this.findTrackId(null));let f={audioTracks:l};this.log(`Updating audio tracks, ${l.length} track(s) found in group(s): ${n==null?void 0:n.join(",")}`),this.hls.trigger(A.AUDIO_TRACKS_UPDATED,f);let E=this.trackId;if(u!==-1&&E===-1)this.setAudioTrack(u);else if(l.length&&E===-1){var a;let S=new Error(`No audio track selected for current audio group-ID(s): ${(a=this.groupIds)==null?void 0:a.join(",")} track count: ${l.length}`);this.warn(S.message),this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:S})}}else this.shouldReloadPlaylist(s)&&this.setAudioTrack(this.trackId)}onError(e,i){!i.fatal&&i.context&&(i.context.type!==yi||i.context.id!==this.trackId||this.groupIds&&this.groupIds.indexOf(i.context.groupId)===-1||(this.requestScheduled=-1,this.checkRetry(i)))}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}setAudioOption(e){let i=this.hls;if(i.config.audioPreference=e,e){let n=this.allAudioTracks;if(this.selectDefaultTrack=!1,n.length){let r=this.currentTrack;if(r&&lr(e,r,cr))return r;let s=rn(e,this.tracksInGroup,cr);if(s>-1){let a=this.tracksInGroup[s];return this.setAudioTrack(s),a}if(r){let a=i.loadLevel;a===-1&&(a=i.firstAutoLevel);let l=function(d,u,f,E,S){let T=u[E],_=u.reduce((V,X,ot)=>{let et=X.uri;return(V[et]||(V[et]=[])).push(ot),V},{})[T.uri];_.length>1&&(E=Math.max.apply(Math,_));let{videoRange:D,frameRate:w}=T,x=T.codecSet.substring(0,4),M=ka(u,E,(V)=>{if(V.videoRange!==D||V.frameRate!==w||V.codecSet.substring(0,4)!==x)return!1;let X=V.audioGroups,ot=f.filter((et)=>!X||X.indexOf(et.groupId)!==-1);return rn(d,ot,S)>-1});return M>-1?M:ka(u,E,(V)=>{let X=V.audioGroups,ot=f.filter((et)=>!X||X.indexOf(et.groupId)!==-1);return rn(d,ot,S)>-1})}(e,i.levels,n,a,cr);if(l===-1)return null;i.nextLoadLevel=l}if(e.channels||e.audioCodec){let a=rn(e,n);if(a>-1)return n[a]}}}return null}setAudioTrack(e){let i=this.tracksInGroup;if(e<0||e>=i.length)return void this.warn("Invalid audio track id: "+e);this.clearTimer(),this.selectDefaultTrack=!1;let n=this.currentTrack,r=i[e],s=r.details&&!r.details.live;if(e===this.trackId&&r===n&&s)return;if(this.log(`Switching to audio-track ${e} "${r.name}" lang:${r.lang} group:${r.groupId} channels:${r.channels}`),this.trackId=e,this.currentTrack=r,this.hls.trigger(A.AUDIO_TRACK_SWITCHING,L({},r)),s)return;let a=this.switchParams(r.url,n==null?void 0:n.details,r.details);this.loadPlaylist(a)}findTrackId(e){let i=this.tracksInGroup;for(let n=0;n<i.length;n++){let r=i[n];if((!this.selectDefaultTrack||r.default)&&(!e||lr(e,r,cr)))return n}if(e){let{name:n,lang:r,assocLang:s,characteristics:a,audioCodec:l,channels:d}=e;for(let u=0;u<i.length;u++)if(lr({name:n,lang:r,assocLang:s,characteristics:a,audioCodec:l,channels:d},i[u],cr))return u;for(let u=0;u<i.length;u++){let f=i[u];if(ps(e.attrs,f.attrs,["LANGUAGE","ASSOC-LANGUAGE","CHARACTERISTICS"]))return u}for(let u=0;u<i.length;u++){let f=i[u];if(ps(e.attrs,f.attrs,["LANGUAGE"]))return u}}return-1}loadPlaylist(e){let i=this.currentTrack;if(this.shouldLoadPlaylist(i)&&i){super.loadPlaylist();let{id:n,groupId:r,url:s}=i;if(e)try{s=e.addDirectives(s)}catch(a){this.warn("Could not construct new URL with HLS Delivery Directives: "+a)}this.log(`loading audio-track playlist ${n} "${i.name}" lang:${i.lang} group:${r}`),this.clearTimer(),this.hls.trigger(A.AUDIO_TRACK_LOADING,{url:s,id:n,groupId:r,deliveryDirectives:e||null})}}},emeController:ys,cmcdController:class t{constructor(e){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.includeKeys=void 0,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=(r)=>{try{this.apply(r,{ot:Di.MANIFEST,su:!this.initialized})}catch(s){C.warn("Could not generate manifest CMCD data.",s)}},this.applyFragmentData=(r)=>{try{let s=r.frag,a=this.hls.levels[s.level],l=this.getObjectType(s),d={d:1000*s.duration,ot:l};l!==Di.VIDEO&&l!==Di.AUDIO&&l!=Di.MUXED||(d.br=a.bitrate/1000,d.tb=this.getTopBandwidth(l)/1000,d.bl=this.getBufferLength(l)),this.apply(r,d)}catch(s){C.warn("Could not generate segment CMCD data.",s)}},this.hls=e;let i=this.config=e.config,{cmcd:n}=i;n!=null&&(i.pLoader=this.createPlaylistLoader(),i.fLoader=this.createFragmentLoader(),this.sid=n.sessionId||function(){try{return crypto.randomUUID()}catch(r){try{let s=URL.createObjectURL(new Blob),a=s.toString();return URL.revokeObjectURL(s),a.slice(a.lastIndexOf("/")+1)}catch(s){let a=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(l)=>{let d=(a+16*Math.random())%16|0;return a=Math.floor(a/16),(l=="x"?d:3&d|8).toString(16)})}}}(),this.cid=n.contentId,this.useHeaders=n.useHeaders===!0,this.includeKeys=n.includeKeys,this.registerListeners())}registerListeners(){let e=this.hls;e.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(A.MEDIA_DETACHED,this.onMediaDetached,this),e.on(A.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){let e=this.hls;e.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(A.MEDIA_DETACHED,this.onMediaDetached,this),e.off(A.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=null}onMediaAttached(e,i){this.media=i.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(e,i){var n,r;this.audioBuffer=(n=i.tracks.audio)==null?void 0:n.buffer,this.videoBuffer=(r=i.tracks.video)==null?void 0:r.buffer}createData(){var e;return{v:1,sf:Ho.HLS,sid:this.sid,cid:this.cid,pr:(e=this.media)==null?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1000}}apply(e,i={}){z(i,this.createData());let n=i.ot===Di.INIT||i.ot===Di.VIDEO||i.ot===Di.MUXED;this.starved&&n&&(i.bs=!0,i.su=!0,this.starved=!1),i.su==null&&(i.su=this.buffering);let{includeKeys:r}=this;r&&(i=Object.keys(i).reduce((s,a)=>(r.includes(a)&&(s[a]=i[a]),s),{})),this.useHeaders?(e.headers||(e.headers={}),kd(e.headers,i)):e.url=Rd(e.url,i)}getObjectType(e){let{type:i}=e;return i==="subtitle"?Di.TIMED_TEXT:e.sn==="initSegment"?Di.INIT:i==="audio"?Di.AUDIO:i==="main"?this.hls.audioTracks.length?Di.VIDEO:Di.MUXED:void 0}getTopBandwidth(e){let i,n=0,r=this.hls;if(e===Di.AUDIO)i=r.audioTracks;else{let s=r.maxAutoLevel,a=s>-1?s+1:r.levels.length;i=r.levels.slice(0,a)}for(let s of i)s.bitrate>n&&(n=s.bitrate);return n>0?n:NaN}getBufferLength(e){let i=this.hls.media,n=e===Di.AUDIO?this.audioBuffer:this.videoBuffer;if(!n||!i)return NaN;return 1000*ye.bufferInfo(n,i.currentTime,this.config.maxBufferHole).len}createPlaylistLoader(){let{pLoader:e}=this.config,i=this.applyPlaylistData,n=e||this.config.loader;return class r{constructor(s){this.loader=void 0,this.loader=new n(s)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(s,a,l){i(s),this.loader.load(s,a,l)}}}createFragmentLoader(){let{fLoader:e}=this.config,i=this.applyFragmentData,n=e||this.config.loader;return class r{constructor(s){this.loader=void 0,this.loader=new n(s)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(s,a,l){i(s),this.loader.load(s,a,l)}}}},contentSteeringController:class t{constructor(e){this.hls=void 0,this.log=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this.pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=e,this.log=C.log.bind(C,"[content-steering]:"),this.registerListeners()}registerListeners(){let e=this.hls;e.on(A.MANIFEST_LOADING,this.onManifestLoading,this),e.on(A.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(A.MANIFEST_PARSED,this.onManifestParsed,this),e.on(A.ERROR,this.onError,this)}unregisterListeners(){let e=this.hls;e&&(e.off(A.MANIFEST_LOADING,this.onManifestLoading,this),e.off(A.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(A.MANIFEST_PARSED,this.onManifestParsed,this),e.off(A.ERROR,this.onError,this))}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){let e=1000*this.timeToLoad-(performance.now()-this.updated);if(e>0)return void this.scheduleRefresh(this.uri,e)}this.loadSteeringManifest(this.uri)}}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}clearTimeout(){this.reloadTimer!==-1&&(self.clearTimeout(this.reloadTimer),this.reloadTimer=-1)}destroy(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}removeLevel(e){let i=this.levels;i&&(this.levels=i.filter((n)=>n!==e))}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(e,i){let{contentSteering:n}=i;n!==null&&(this.pathwayId=n.pathwayId,this.uri=n.uri,this.started&&this.startLoad())}onManifestParsed(e,i){this.audioTracks=i.audioTracks,this.subtitleTracks=i.subtitleTracks}onError(e,i){let{errorAction:n}=i;if((n==null?void 0:n.action)===un&&n.flags===Gs){let r=this.levels,s=this.pathwayPriority,a=this.pathwayId;if(i.context){let{groupId:l,pathwayId:d,type:u}=i.context;l&&r?a=this.getPathwayForGroupId(l,u,a):d&&(a=d)}a in this.penalizedPathways||(this.penalizedPathways[a]=performance.now()),!s&&r&&(s=r.reduce((l,d)=>(l.indexOf(d.pathwayId)===-1&&l.push(d.pathwayId),l),[])),s&&s.length>1&&(this.updatePathwayPriority(s),n.resolved=this.pathwayId!==a),n.resolved||C.warn(`Could not resolve ${i.details} ("${i.error.message}") with content-steering for Pathway: ${a} levels: ${r?r.length:r} priorities: ${JSON.stringify(s)} penalized: ${JSON.stringify(this.penalizedPathways)}`)}}filterParsedLevels(e){this.levels=e;let i=this.getLevelsForPathway(this.pathwayId);if(i.length===0){let n=e[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${n}"`),i=this.getLevelsForPathway(n),this.pathwayId=n}return i.length!==e.length?(this.log(`Found ${i.length}/${e.length} levels in Pathway "${this.pathwayId}"`),i):e}getLevelsForPathway(e){return this.levels===null?[]:this.levels.filter((i)=>e===i.pathwayId)}updatePathwayPriority(e){let i;this.pathwayPriority=e;let n=this.penalizedPathways,r=performance.now();Object.keys(n).forEach((s)=>{r-n[s]>300000&&delete n[s]});for(let s=0;s<e.length;s++){let a=e[s];if(a in n)continue;if(a===this.pathwayId)return;let l=this.hls.nextLoadLevel,d=this.hls.levels[l];if(i=this.getLevelsForPathway(a),i.length>0){this.log(`Setting Pathway to "${a}"`),this.pathwayId=a,Bs(i),this.hls.trigger(A.LEVELS_UPDATED,{levels:i});let u=this.hls.levels[l];d&&u&&this.levels&&(u.attrs["STABLE-VARIANT-ID"]!==d.attrs["STABLE-VARIANT-ID"]&&u.bitrate!==d.bitrate&&this.log(`Unstable Pathways change from bitrate ${d.bitrate} to ${u.bitrate}`),this.hls.nextLoadLevel=l);break}}}getPathwayForGroupId(e,i,n){let r=this.getLevelsForPathway(n).concat(this.levels||[]);for(let s=0;s<r.length;s++)if(i===yi&&r[s].hasAudioGroup(e)||i===Fi&&r[s].hasSubtitleGroup(e))return r[s].pathwayId;return n}clonePathways(e){let i=this.levels;if(!i)return;let n={},r={};e.forEach((s)=>{let{ID:a,"BASE-ID":l,"URI-REPLACEMENT":d}=s;if(i.some((f)=>f.pathwayId===a))return;let u=this.getLevelsForPathway(l).map((f)=>{let E=new J(f.attrs);E["PATHWAY-ID"]=a;let S=E.AUDIO&&`${E.AUDIO}_clone_${a}`,T=E.SUBTITLES&&`${E.SUBTITLES}_clone_${a}`;S&&(n[E.AUDIO]=S,E.AUDIO=S),T&&(r[E.SUBTITLES]=T,E.SUBTITLES=T);let _=zl(f.uri,E["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",d),D=new ie({attrs:E,audioCodec:f.audioCodec,bitrate:f.bitrate,height:f.height,name:f.name,url:_,videoCodec:f.videoCodec,width:f.width});if(f.audioGroups)for(let w=1;w<f.audioGroups.length;w++)D.addGroupId("audio",`${f.audioGroups[w]}_clone_${a}`);if(f.subtitleGroups)for(let w=1;w<f.subtitleGroups.length;w++)D.addGroupId("text",`${f.subtitleGroups[w]}_clone_${a}`);return D});i.push(...u),Yl(this.audioTracks,n,d,a),Yl(this.subtitleTracks,r,d,a)})}loadSteeringManifest(e){let i=this.hls.config,n=i.loader,r;this.loader&&this.loader.destroy(),this.loader=new n(i);try{r=new self.URL(e)}catch(f){return this.enabled=!1,void this.log("Failed to parse Steering Manifest URI: "+e)}if(r.protocol!=="data:"){let f=0|(this.hls.bandwidthEstimate||i.abrEwmaDefaultEstimate);r.searchParams.set("_HLS_pathway",this.pathwayId),r.searchParams.set("_HLS_throughput",""+f)}let s={responseType:"json",url:r.href},a=i.steeringManifestLoadPolicy.default,l=a.errorRetry||a.timeoutRetry||{},d={loadPolicy:a,timeout:a.maxLoadTimeMs,maxRetry:l.maxNumRetry||0,retryDelay:l.retryDelayMs||0,maxRetryDelay:l.maxRetryDelayMs||0},u={onSuccess:(f,E,S,T)=>{this.log(`Loaded steering manifest: "${r}"`);let _=f.data;if(_.VERSION!==1)return void this.log(`Steering VERSION ${_.VERSION} not supported!`);this.updated=performance.now(),this.timeToLoad=_.TTL;let{"RELOAD-URI":D,"PATHWAY-CLONES":w,"PATHWAY-PRIORITY":x}=_;if(D)try{this.uri=new self.URL(D,r).href}catch(V){return this.enabled=!1,void this.log("Failed to parse Steering Manifest RELOAD-URI: "+D)}this.scheduleRefresh(this.uri||S.url),w&&this.clonePathways(w);let M={steeringManifest:_,url:r.toString()};this.hls.trigger(A.STEERING_MANIFEST_LOADED,M),x&&this.updatePathwayPriority(x)},onError:(f,E,S,T)=>{if(this.log(`Error loading steering manifest: ${f.code} ${f.text} (${E.url})`),this.stopLoad(),f.code===410)return this.enabled=!1,void this.log(`Steering manifest ${E.url} no longer available`);let _=1000*this.timeToLoad;if(f.code!==429)this.scheduleRefresh(this.uri||E.url,_);else{let D=this.loader;if(typeof(D==null?void 0:D.getResponseHeader)=="function"){let w=D.getResponseHeader("Retry-After");w&&(_=1000*parseFloat(w))}this.log(`Steering manifest ${E.url} rate limited`)}},onTimeout:(f,E,S)=>{this.log(`Timeout loading steering manifest (${E.url})`),this.scheduleRefresh(this.uri||E.url)}};this.log("Requesting steering manifest: "+r),this.loader.load(s,d,u)}scheduleRefresh(e,i=1000*this.timeToLoad){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var n;let r=(n=this.hls)==null?void 0:n.media;!r||r.ended?this.scheduleRefresh(e,1000*this.timeToLoad):this.loadSteeringManifest(e)},i)}}});function zo(t){return t&&typeof t=="object"?Array.isArray(t)?t.map(zo):Object.keys(t).reduce((e,i)=>(e[i]=zo(t[i]),e),{}):t}function Nd(t){let e=t.loader;if(e!==Yo&&e!==qo)C.log("[config]: Custom loader detected, cannot enable progressive streaming"),t.progressive=!1;else(function(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch(i){}return!1})()&&(t.loader=Yo,t.progressive=!0,t.enableSoftwareAES=!0,C.log("[config]: Progressive streaming enabled, using FetchLoader"))}let Xo;class Ql extends ii{constructor(t,e){super(t,"[level-controller]"),this._levels=[],this._firstLevel=-1,this._maxAutoLevel=-1,this._startLevel=void 0,this.currentLevel=null,this.currentLevelIndex=-1,this.manualLevelIndex=-1,this.steering=void 0,this.onParsedComplete=void 0,this.steering=e,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(A.MANIFEST_LOADING,this.onManifestLoading,this),t.on(A.MANIFEST_LOADED,this.onManifestLoaded,this),t.on(A.LEVEL_LOADED,this.onLevelLoaded,this),t.on(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(A.FRAG_BUFFERED,this.onFragBuffered,this),t.on(A.ERROR,this.onError,this)}_unregisterListeners(){let{hls:t}=this;t.off(A.MANIFEST_LOADING,this.onManifestLoading,this),t.off(A.MANIFEST_LOADED,this.onManifestLoaded,this),t.off(A.LEVEL_LOADED,this.onLevelLoaded,this),t.off(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(A.FRAG_BUFFERED,this.onFragBuffered,this),t.off(A.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}stopLoad(){this._levels.forEach((t)=>{t.loadError=0,t.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(t,e){this.resetLevels()}onManifestLoaded(t,e){let i=this.hls.config.preferManagedMediaSource,n=[],r={},s={},a=!1,l=!1,d=!1;e.levels.forEach((u)=>{var f,E;let S=u.attrs,{audioCodec:T,videoCodec:_}=u;((f=T)==null?void 0:f.indexOf("mp4a.40.34"))!==-1&&(Xo||(Xo=/chrome|firefox/i.test(navigator.userAgent)),Xo&&(u.audioCodec=T=void 0)),T&&(u.audioCodec=T=xn(T,i)),((E=_)==null?void 0:E.indexOf("avc1"))===0&&(_=u.videoCodec=function(nt){let it=nt.split(".");if(it.length>2){let jt=it.shift()+".";return jt+=parseInt(it.shift()).toString(16),jt+=("000"+parseInt(it.shift()).toString(16)).slice(-4),jt}return nt}(_));let{width:D,height:w,unknownCodecs:x}=u;if(a||(a=!(!D||!w)),l||(l=!!_),d||(d=!!T),x!=null&&x.length||T&&!Jn(T,"audio",i)||_&&!Jn(_,"video",i))return;let{CODECS:M,"FRAME-RATE":V,"HDCP-LEVEL":X,"PATHWAY-ID":ot,RESOLUTION:et,"VIDEO-RANGE":vt}=S,St=`${(ot||".")+"-"}${u.bitrate}-${et}-${V}-${M}-${vt}-${X}`;if(r[St])if(r[St].uri===u.url||u.attrs["PATHWAY-ID"])r[St].addGroupId("audio",S.AUDIO),r[St].addGroupId("text",S.SUBTITLES);else{let nt=s[St]+=1;u.attrs["PATHWAY-ID"]=new Array(nt+1).join(".");let it=new ie(u);r[St]=it,n.push(it)}else{let nt=new ie(u);r[St]=nt,s[St]=1,n.push(nt)}}),this.filterAndSortMediaOptions(n,e,a,l,d)}filterAndSortMediaOptions(t,e,i,n,r){let s=[],a=[],l=t;if((i||n)&&r&&(l=l.filter(({videoCodec:T,videoRange:_,width:D,height:w})=>{return(!!T||!(!D||!w))&&(!!(x=_)&&It.indexOf(x)>-1);var x})),l.length===0)return void Promise.resolve().then(()=>{if(this.hls){e.levels.length&&this.warn("One or more CODECS in variant not supported: "+JSON.stringify(e.levels[0].attrs));let T=new Error("no level with compatible codecs found in manifest");this.hls.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:e.url,error:T,reason:T.message})}});if(e.audioTracks){let{preferManagedMediaSource:T}=this.hls.config;s=e.audioTracks.filter((_)=>!_.audioCodec||Jn(_.audioCodec,"audio",T)),Zl(s)}e.subtitles&&(a=e.subtitles,Zl(a));let d=l.slice(0);l.sort((T,_)=>{if(T.attrs["HDCP-LEVEL"]!==_.attrs["HDCP-LEVEL"])return(T.attrs["HDCP-LEVEL"]||"")>(_.attrs["HDCP-LEVEL"]||"")?1:-1;if(i&&T.height!==_.height)return T.height-_.height;if(T.frameRate!==_.frameRate)return T.frameRate-_.frameRate;if(T.videoRange!==_.videoRange)return It.indexOf(T.videoRange)-It.indexOf(_.videoRange);if(T.videoCodec!==_.videoCodec){let D=Ue(T.videoCodec),w=Ue(_.videoCodec);if(D!==w)return w-D}if(T.uri===_.uri&&T.codecSet!==_.codecSet){let D=On(T.codecSet),w=On(_.codecSet);if(D!==w)return w-D}return T.averageBitrate!==_.averageBitrate?T.averageBitrate-_.averageBitrate:0});let u=d[0];if(this.steering&&(l=this.steering.filterParsedLevels(l),l.length!==d.length)){for(let T=0;T<d.length;T++)if(d[T].pathwayId===l[0].pathwayId){u=d[T];break}}this._levels=l;for(let T=0;T<l.length;T++)if(l[T]===u){var f;this._firstLevel=T;let _=u.bitrate,D=this.hls.bandwidthEstimate;if(this.log(`manifest loaded, ${l.length} level(s) found, first bitrate: ${_}`),((f=this.hls.userConfig)==null?void 0:f.abrEwmaDefaultEstimate)===void 0){let w=Math.min(_,this.hls.config.abrEwmaDefaultEstimateMax);w>D&&D===Jl.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=w)}break}let E=r&&!n,S={levels:l,audioTracks:s,subtitleTracks:a,sessionData:e.sessionData,sessionKeys:e.sessionKeys,firstLevel:this._firstLevel,stats:e.stats,audio:r,video:n,altAudio:!E&&s.some((T)=>!!T.url)};this.hls.trigger(A.MANIFEST_PARSED,S),(this.hls.config.autoStartLoad||this.hls.forceStartLoad)&&this.hls.startLoad(this.hls.config.startPosition)}get levels(){return this._levels.length===0?null:this._levels}get level(){return this.currentLevelIndex}set level(t){let e=this._levels;if(e.length===0)return;if(t<0||t>=e.length){let u=new Error("invalid level idx"),f=t<0;if(this.hls.trigger(A.ERROR,{type:Ft.OTHER_ERROR,details:H.LEVEL_SWITCH_ERROR,level:t,fatal:f,error:u,reason:u.message}),f)return;t=Math.min(t,e.length-1)}let i=this.currentLevelIndex,n=this.currentLevel,r=n?n.attrs["PATHWAY-ID"]:void 0,s=e[t],a=s.attrs["PATHWAY-ID"];if(this.currentLevelIndex=t,this.currentLevel=s,i===t&&s.details&&n&&r===a)return;this.log(`Switching to level ${t} (${s.height?s.height+"p ":""}${s.videoRange?s.videoRange+" ":""}${s.codecSet?s.codecSet+" ":""}@${s.bitrate})${a?" with Pathway "+a:""} from level ${i}${r?" with Pathway "+r:""}`);let l={level:t,attrs:s.attrs,details:s.details,bitrate:s.bitrate,averageBitrate:s.averageBitrate,maxBitrate:s.maxBitrate,realBitrate:s.realBitrate,width:s.width,height:s.height,codecSet:s.codecSet,audioCodec:s.audioCodec,videoCodec:s.videoCodec,audioGroups:s.audioGroups,subtitleGroups:s.subtitleGroups,loaded:s.loaded,loadError:s.loadError,fragmentError:s.fragmentError,name:s.name,id:s.id,uri:s.uri,url:s.url,urlId:0,audioGroupIds:s.audioGroupIds,textGroupIds:s.textGroupIds};this.hls.trigger(A.LEVEL_SWITCHING,l);let d=s.details;if(!d||d.live){let u=this.switchParams(s.uri,n==null?void 0:n.details,d);this.loadPlaylist(u)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(t){this.manualLevelIndex=t,this._startLevel===void 0&&(this._startLevel=t),t!==-1&&(this.level=t)}get firstLevel(){return this._firstLevel}set firstLevel(t){this._firstLevel=t}get startLevel(){if(this._startLevel===void 0){let t=this.hls.config.startLevel;return t!==void 0?t:this.hls.firstAutoLevel}return this._startLevel}set startLevel(t){this._startLevel=t}onError(t,e){!e.fatal&&e.context&&e.context.type===Vi&&e.context.level===this.level&&this.checkRetry(e)}onFragBuffered(t,{frag:e}){if(e!==void 0&&e.type===me){let i=e.elementaryStreams;if(!Object.keys(i).some((r)=>!!i[r]))return;let n=this._levels[e.level];n!=null&&n.loadError&&(this.log(`Resetting level error count of ${n.loadError} on frag buffered`),n.loadError=0)}}onLevelLoaded(t,e){var i;let{level:n,details:r}=e,s=this._levels[n];var a;if(!s)return this.warn("Invalid level index "+n),void((a=e.deliveryDirectives)!=null&&a.skip&&(r.deltaUpdateFailed=!0));n===this.currentLevelIndex?(s.fragmentError===0&&(s.loadError=0),this.playlistLoaded(n,e,s.details)):(i=e.deliveryDirectives)!=null&&i.skip&&(r.deltaUpdateFailed=!0)}loadPlaylist(t){super.loadPlaylist();let e=this.currentLevelIndex,i=this.currentLevel;if(i&&this.shouldLoadPlaylist(i)){let n=i.uri;if(t)try{n=t.addDirectives(n)}catch(s){this.warn("Could not construct new URL with HLS Delivery Directives: "+s)}let r=i.attrs["PATHWAY-ID"];this.log(`Loading level index ${e}${(t==null?void 0:t.msn)!==void 0?" at sn "+t.msn+" part "+t.part:""} with${r?" Pathway "+r:""} ${n}`),this.clearTimer(),this.hls.trigger(A.LEVEL_LOADING,{url:n,level:e,pathwayId:i.attrs["PATHWAY-ID"],id:0,deliveryDirectives:t||null})}}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(t){this.level=t,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=t)}removeLevel(t){var e;let i=this._levels.filter((n,r)=>r!==t||(this.steering&&this.steering.removeLevel(n),n===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,n.details&&n.details.fragments.forEach((s)=>s.level=-1)),!1));Bs(i),this._levels=i,this.currentLevelIndex>-1&&(e=this.currentLevel)!=null&&e.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.hls.trigger(A.LEVELS_UPDATED,{levels:i})}onLevelsUpdated(t,{levels:e}){this._levels=e}checkMaxAutoUpdated(){let{autoLevelCapping:t,maxAutoLevel:e,maxHdcpLevel:i}=this.hls;this._maxAutoLevel!==e&&(this._maxAutoLevel=e,this.hls.trigger(A.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:t,levels:this.levels,maxAutoLevel:e,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:i}))}}function Zl(t){let e={};t.forEach((i)=>{let n=i.groupId||"";i.id=e[n]=e[n]||0,e[n]++})}class tc{constructor(t){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=t}abort(t){for(let i in this.keyUriToKeyInfo){let n=this.keyUriToKeyInfo[i].loader;if(n){var e;if(t&&t!==((e=n.context)==null?void 0:e.frag.type))return;n.abort()}}}detach(){for(let t in this.keyUriToKeyInfo){let e=this.keyUriToKeyInfo[t];(e.mediaKeySessionContext||e.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[t]}}destroy(){this.detach();for(let t in this.keyUriToKeyInfo){let e=this.keyUriToKeyInfo[t].loader;e&&e.destroy()}this.keyUriToKeyInfo={}}createKeyLoadError(t,e=H.KEY_LOAD_ERROR,i,n,r){return new sn({type:Ft.NETWORK_ERROR,details:e,fatal:!1,frag:t,response:r,error:i,networkDetails:n})}loadClear(t,e){if(this.emeController&&this.config.emeEnabled){let{sn:i,cc:n}=t;for(let r=0;r<e.length;r++){let s=e[r];if(n<=s.cc&&(i==="initSegment"||s.sn==="initSegment"||i<s.sn)){this.emeController.selectKeySystemFormat(s).then((a)=>{s.setKeyFormat(a)});break}}}}load(t){return!t.decryptdata&&t.encrypted&&this.emeController?this.emeController.selectKeySystemFormat(t).then((e)=>this.loadInternal(t,e)):this.loadInternal(t)}loadInternal(t,e){var i,n;e&&t.setKeyFormat(e);let r=t.decryptdata;if(!r){let d=new Error(e?"Expected frag.decryptdata to be defined after setting format "+e:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(t,H.KEY_LOAD_ERROR,d))}let s=r.uri;if(!s)return Promise.reject(this.createKeyLoadError(t,H.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${s}"`)));let a=this.keyUriToKeyInfo[s];if((i=a)!=null&&i.decryptdata.key)return r.key=a.decryptdata.key,Promise.resolve({frag:t,keyInfo:a});var l;if((n=a)!=null&&n.keyLoadPromise)switch((l=a.mediaKeySessionContext)==null?void 0:l.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return a.keyLoadPromise.then((d)=>(r.key=d.keyInfo.decryptdata.key,{frag:t,keyInfo:a}))}switch(a=this.keyUriToKeyInfo[s]={decryptdata:r,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},r.method){case"ISO-23001-7":case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return r.keyFormat==="identity"?this.loadKeyHTTP(a,t):this.loadKeyEME(a,t);case"AES-128":return this.loadKeyHTTP(a,t);default:return Promise.reject(this.createKeyLoadError(t,H.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${r.method}"`)))}}loadKeyEME(t,e){let i={frag:e,keyInfo:t};if(this.emeController&&this.config.emeEnabled){let n=this.emeController.loadKey(i);if(n)return(t.keyLoadPromise=n.then((r)=>(t.mediaKeySessionContext=r,i))).catch((r)=>{throw t.keyLoadPromise=null,r})}return Promise.resolve(i)}loadKeyHTTP(t,e){let i=this.config,n=new i.loader(i);return e.keyLoader=t.loader=n,t.keyLoadPromise=new Promise((r,s)=>{let a={keyInfo:t,frag:e,responseType:"arraybuffer",url:t.decryptdata.uri},l=i.keyLoadPolicy.default,d={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},u={onSuccess:(f,E,S,T)=>{let{frag:_,keyInfo:D,url:w}=S;if(!_.decryptdata||D!==this.keyUriToKeyInfo[w])return s(this.createKeyLoadError(_,H.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),T));D.decryptdata.key=_.decryptdata.key=new Uint8Array(f.data),_.keyLoader=null,D.loader=null,r({frag:_,keyInfo:D})},onError:(f,E,S,T)=>{this.resetLoader(E),s(this.createKeyLoadError(e,H.KEY_LOAD_ERROR,new Error(`HTTP Error ${f.code} loading key ${f.text}`),S,L({url:a.url,data:void 0},f)))},onTimeout:(f,E,S)=>{this.resetLoader(E),s(this.createKeyLoadError(e,H.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),S))},onAbort:(f,E,S)=>{this.resetLoader(E),s(this.createKeyLoadError(e,H.INTERNAL_ABORTED,new Error("key loading aborted"),S))}};n.load(a,d,u)})}resetLoader(t){let{frag:e,keyInfo:i,url:n}=t,r=i.loader;e.keyLoader===r&&(e.keyLoader=null,i.loader=null),delete this.keyUriToKeyInfo[n],r&&r.destroy()}}function ec(){return self.SourceBuffer||self.WebKitSourceBuffer}function ic(){if(!Xi())return!1;let t=ec();return!t||t.prototype&&typeof t.prototype.appendBuffer=="function"&&typeof t.prototype.remove=="function"}class nc{constructor(t,e,i,n){this.config=void 0,this.media=null,this.fragmentTracker=void 0,this.hls=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.config=t,this.media=e,this.fragmentTracker=i,this.hls=n}destroy(){this.media=null,this.hls=this.fragmentTracker=null}poll(t,e){let{config:i,media:n,stalled:r}=this;if(n===null)return;let{currentTime:s,seeking:a}=n,l=this.seeking&&!a,d=!this.seeking&&a;if(this.seeking=a,s!==t){if(this.moved=!0,a||(this.nudgeRetry=0),r!==null){if(this.stallReported){let D=self.performance.now()-r;C.warn(`playback not stuck anymore @${s}, after ${Math.round(D)}ms`),this.stallReported=!1}this.stalled=null}return}if(d||l)return void(this.stalled=null);if(n.paused&&!a||n.ended||n.playbackRate===0||!ye.getBuffered(n).length)return void(this.nudgeRetry=0);let u=ye.bufferInfo(n,s,0),f=u.nextStart||0;if(a){let D=u.len>2,w=!f||e&&e.start<=s||f-s>2&&!this.fragmentTracker.getPartialFragment(s);if(D||w)return;this.moved=!1}if(!this.moved&&this.stalled!==null){var E;if(!(u.len>0)&&!f)return;let D=Math.max(f,u.start||0)-s,w=this.hls.levels?this.hls.levels[this.hls.currentLevel]:null,x=(w==null||(E=w.details)==null?void 0:E.live)?2*w.details.targetduration:2,M=this.fragmentTracker.getPartialFragment(s);if(D>0&&(D<=x||M))return void(n.paused||this._trySkipBufferHole(M))}let S=self.performance.now();if(r===null)return void(this.stalled=S);let T=S-r;if(!a&&T>=250&&(this._reportStall(u),!this.media))return;let _=ye.bufferInfo(n,s,i.maxBufferHole);this._tryFixBufferStall(_,T)}_tryFixBufferStall(t,e){let{config:i,fragmentTracker:n,media:r}=this;if(r===null)return;let s=r.currentTime,a=n.getPartialFragment(s);if(a){if(this._trySkipBufferHole(a)||!this.media)return}(t.len>i.maxBufferHole||t.nextStart&&t.nextStart-s<i.maxBufferHole)&&e>1000*i.highBufferWatchdogPeriod&&(C.warn("Trying to nudge playhead over buffer-hole"),this.stalled=null,this._tryNudgeBuffer())}_reportStall(t){let{hls:e,media:i,stallReported:n}=this;if(!n&&i){this.stallReported=!0;let r=new Error(`Playback stalling at @${i.currentTime} due to low buffer (${JSON.stringify(t)})`);C.warn(r.message),e.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_STALLED_ERROR,fatal:!1,error:r,buffer:t.len})}}_trySkipBufferHole(t){let{config:e,hls:i,media:n}=this;if(n===null)return 0;let r=n.currentTime,s=ye.bufferInfo(n,r,0),a=r<s.start?s.start:s.nextStart;if(a){let l=s.len<=e.maxBufferHole,d=s.len>0&&s.len<1&&n.readyState<3,u=a-r;if(u>0&&(l||d)){if(u>e.maxBufferHole){let{fragmentTracker:E}=this,S=!1;if(r===0){let T=E.getAppendedFrag(0,me);T&&a<T.end&&(S=!0)}if(!S){let T=t||E.getAppendedFrag(r,me);if(T){let _=!1,D=T.end;for(;D<a;){let w=E.getPartialFragment(D);if(!w){_=!0;break}D+=w.duration}if(_)return 0}}}let f=Math.max(a+0.05,r+0.1);if(C.warn(`skipping hole, adjusting currentTime from ${r} to ${f}`),this.moved=!0,this.stalled=null,n.currentTime=f,t&&!t.gap){let E=new Error(`fragment loaded with buffer holes, seeking from ${r} to ${f}`);i.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:E,reason:E.message,frag:t})}return f}}return 0}_tryNudgeBuffer(){let{config:t,hls:e,media:i,nudgeRetry:n}=this;if(i===null)return;let r=i.currentTime;if(this.nudgeRetry++,n<t.nudgeMaxRetry){let s=r+(n+1)*t.nudgeOffset,a=new Error(`Nudging 'currentTime' from ${r} to ${s}`);C.warn(a.message),i.currentTime=s,e.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_NUDGE_ON_STALL,error:a,fatal:!1})}else{let s=new Error(`Playhead still not moving while enough data buffered @${r} after ${t.nudgeMaxRetry} nudges`);C.error(s.message),e.trigger(A.ERROR,{type:Ft.MEDIA_ERROR,details:H.BUFFER_STALLED_ERROR,error:s,fatal:!0})}}}class rc extends Br{constructor(t,e,i){super(t,e,i,"[stream-controller]",me),this.audioCodecSwap=!1,this.gapController=null,this.level=-1,this._forceStartLoad=!1,this.altAudio=!1,this.audioOnly=!1,this.fragPlaying=null,this.onvplaying=null,this.onvseeked=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this._registerListeners()}_registerListeners(){let{hls:t}=this;t.on(A.MEDIA_ATTACHED,this.onMediaAttached,this),t.on(A.MEDIA_DETACHING,this.onMediaDetaching,this),t.on(A.MANIFEST_LOADING,this.onManifestLoading,this),t.on(A.MANIFEST_PARSED,this.onManifestParsed,this),t.on(A.LEVEL_LOADING,this.onLevelLoading,this),t.on(A.LEVEL_LOADED,this.onLevelLoaded,this),t.on(A.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.on(A.ERROR,this.onError,this),t.on(A.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.on(A.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.on(A.BUFFER_CREATED,this.onBufferCreated,this),t.on(A.BUFFER_FLUSHED,this.onBufferFlushed,this),t.on(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.on(A.FRAG_BUFFERED,this.onFragBuffered,this)}_unregisterListeners(){let{hls:t}=this;t.off(A.MEDIA_ATTACHED,this.onMediaAttached,this),t.off(A.MEDIA_DETACHING,this.onMediaDetaching,this),t.off(A.MANIFEST_LOADING,this.onManifestLoading,this),t.off(A.MANIFEST_PARSED,this.onManifestParsed,this),t.off(A.LEVEL_LOADED,this.onLevelLoaded,this),t.off(A.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),t.off(A.ERROR,this.onError,this),t.off(A.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),t.off(A.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),t.off(A.BUFFER_CREATED,this.onBufferCreated,this),t.off(A.BUFFER_FLUSHED,this.onBufferFlushed,this),t.off(A.LEVELS_UPDATED,this.onLevelsUpdated,this),t.off(A.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this._unregisterListeners(),super.onHandlerDestroying()}startLoad(t){if(this.levels){let{lastCurrentTime:e,hls:i}=this;if(this.stopLoad(),this.setInterval(100),this.level=-1,!this.startFragRequested){let n=i.startLevel;n===-1&&(i.config.testBandwidth&&this.levels.length>1?(n=0,this.bitrateTest=!0):n=i.firstAutoLevel),i.nextLoadLevel=n,this.level=i.loadLevel,this.loadedmetadata=!1}e>0&&t===-1&&(this.log("Override startPosition with lastCurrentTime @"+e.toFixed(3)),t=e),this.state=be,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()}else this._forceStartLoad=!0,this.state=Wi}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case Me:{let{levels:e,level:i}=this,n=e==null?void 0:e[i],r=n==null?void 0:n.details;if(r&&(!r.live||this.levelLastLoaded===n)){if(this.waitForCdnTuneIn(r))break;this.state=be;break}if(this.hls.nextLoadLevel!==this.level){this.state=be;break}break}case hr:{var t;let e=self.performance.now(),i=this.retryDate;if(!i||e>=i||(t=this.media)!=null&&t.seeking){let{levels:n,level:r}=this,s=n==null?void 0:n[r];this.resetStartWhenNotLoaded(s||null),this.state=be}}}this.state===be&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){super.onTickEnd(),this.checkBuffer(),this.checkFragmentChanged()}doTickIdle(){let{hls:t,levelLastLoaded:e,levels:i,media:n}=this;if(e===null||!n&&(this.startFragRequested||!t.config.startFragPrefetch))return;if(this.altAudio&&this.audioOnly)return;let r=t.nextLoadLevel;if(i==null||!i[r])return;let s=i[r],a=this.getMainFwdBufferInfo();if(a===null)return;let l=this.getLevelDetails();if(l&&this._streamEnded(a,l)){let _={};return this.altAudio&&(_.type="video"),this.hls.trigger(A.BUFFER_EOS,_),void(this.state=Fr)}t.loadLevel!==r&&t.manualLevel===-1&&this.log(`Adapting to level ${r} from level ${this.level}`),this.level=t.nextLoadLevel=r;let d=s.details;if(!d||this.state===Me||d.live&&this.levelLastLoaded!==s)return this.level=r,void(this.state=Me);let u=a.len,f=this.getMaxBufferLength(s.maxBitrate);if(u>=f)return;this.backtrackFragment&&this.backtrackFragment.start>a.end&&(this.backtrackFragment=null);let E=this.backtrackFragment?this.backtrackFragment.start:a.end,S=this.getNextFragment(E,d);if(this.couldBacktrack&&!this.fragPrevious&&S&&S.sn!=="initSegment"&&this.fragmentTracker.getState(S)!==Ie){var T;let _=((T=this.backtrackFragment)!=null?T:S).sn-d.startSN,D=d.fragments[_-1];D&&S.cc===D.cc&&(S=D,this.fragmentTracker.removeFragment(D))}else this.backtrackFragment&&a.len&&(this.backtrackFragment=null);if(S&&this.isLoopLoading(S,E)){if(!S.gap){let _=this.audioOnly&&!this.altAudio?gt:Rt,D=(_===Rt?this.videoBuffer:this.mediaBuffer)||this.media;D&&this.afterBufferFlushed(D,_,me)}S=this.getNextFragmentLoopLoading(S,d,a,me,f)}S&&(!S.initSegment||S.initSegment.data||this.bitrateTest||(S=S.initSegment),this.loadFragment(S,s,E))}loadFragment(t,e,i){let n=this.fragmentTracker.getState(t);this.fragCurrent=t,n===Ri||n===Hn?t.sn==="initSegment"?this._loadInitSegment(t,e):this.bitrateTest?(this.log(`Fragment ${t.sn} of level ${t.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(t,e)):(this.startFragRequested=!0,super.loadFragment(t,e,i)):this.clearTrackerIfNeeded(t)}getBufferedFrag(t){return this.fragmentTracker.getBufferedFrag(t,me)}followingBufferedFrag(t){return t?this.getBufferedFrag(t.end+0.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){let{levels:t,media:e}=this;if(e!=null&&e.readyState){let i,n=this.getAppendedFrag(e.currentTime);n&&n.start>1&&this.flushMainBuffer(0,n.start-1);let r=this.getLevelDetails();if(r!=null&&r.live){let a=this.getMainFwdBufferInfo();if(!a||a.len<2*r.targetduration)return}if(!e.paused&&t){let a=t[this.hls.nextLoadLevel],l=this.fragLastKbps;i=l&&this.fragCurrent?this.fragCurrent.duration*a.maxBitrate/(1000*l)+1:0}else i=0;let s=this.getBufferedFrag(e.currentTime+i);if(s){let a=this.followingBufferedFrag(s);if(a){this.abortCurrentFrag();let l=a.maxStartPTS?a.maxStartPTS:a.start,d=a.duration,u=Math.max(s.end,l+Math.min(Math.max(d-this.config.maxFragLookUpTolerance,d*(this.couldBacktrack?0.5:0.125)),d*(this.couldBacktrack?0.75:0.25)));this.flushMainBuffer(u,Number.POSITIVE_INFINITY)}}}}abortCurrentFrag(){let t=this.fragCurrent;switch(this.fragCurrent=null,this.backtrackFragment=null,t&&(t.abortRequests(),this.fragmentTracker.removeFragment(t)),this.state){case Xs:case ur:case hr:case hn:case Mr:this.state=be}this.nextLoadPosition=this.getLoadPosition()}flushMainBuffer(t,e){super.flushMainBuffer(t,e,this.altAudio?"video":null)}onMediaAttached(t,e){super.onMediaAttached(t,e);let i=e.media;this.onvplaying=this.onMediaPlaying.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),i.addEventListener("playing",this.onvplaying),i.addEventListener("seeked",this.onvseeked),this.gapController=new nc(this.config,i,this.fragmentTracker,this.hls)}onMediaDetaching(){let{media:t}=this;t&&this.onvplaying&&this.onvseeked&&(t.removeEventListener("playing",this.onvplaying),t.removeEventListener("seeked",this.onvseeked),this.onvplaying=this.onvseeked=null,this.videoBuffer=null),this.fragPlaying=null,this.gapController&&(this.gapController.destroy(),this.gapController=null),super.onMediaDetaching()}onMediaPlaying(){this.tick()}onMediaSeeked(){let t=this.media,e=t?t.currentTime:null;j(e)&&this.log("Media seeked to "+e.toFixed(3));let i=this.getMainFwdBufferInfo();i!==null&&i.len!==0?this.tick():this.warn(`Main forward buffer length on "seeked" event ${i?i.len:"empty"})`)}onManifestLoading(){this.log("Trigger BUFFER_RESET"),this.hls.trigger(A.BUFFER_RESET,void 0),this.fragmentTracker.removeAllFragments(),this.couldBacktrack=!1,this.startPosition=this.lastCurrentTime=this.fragLastKbps=0,this.levels=this.fragPlaying=this.backtrackFragment=this.levelLastLoaded=null,this.altAudio=this.audioOnly=this.startFragRequested=!1}onManifestParsed(t,e){let i=!1,n=!1;e.levels.forEach((r)=>{let s=r.audioCodec;s&&(i=i||s.indexOf("mp4a.40.2")!==-1,n=n||s.indexOf("mp4a.40.5")!==-1)}),this.audioCodecSwitch=i&&n&&!function(){var r;let s=ec();return typeof(s==null||(r=s.prototype)==null?void 0:r.changeType)=="function"}(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=e.levels,this.startFragRequested=!1}onLevelLoading(t,e){let{levels:i}=this;if(!i||this.state!==be)return;let n=i[e.level];(!n.details||n.details.live&&this.levelLastLoaded!==n||this.waitForCdnTuneIn(n.details))&&(this.state=Me)}onLevelLoaded(t,e){var i;let{levels:n}=this,r=e.level,s=e.details,a=s.totalduration;if(!n)return void this.warn("Levels were reset while loading level "+r);this.log(`Level ${r} loaded [${s.startSN},${s.endSN}]${s.lastPartSn?`[part-${s.lastPartSn}-${s.lastPartIndex}]`:""}, cc [${s.startCC}, ${s.endCC}] duration:${a}`);let l=n[r],d=this.fragCurrent;!d||this.state!==ur&&this.state!==hr||d.level!==e.level&&d.loader&&this.abortCurrentFrag();let u=0;if(s.live||(i=l.details)!=null&&i.live){var f;if(this.checkLiveUpdate(s),s.deltaUpdateFailed)return;u=this.alignPlaylists(s,l.details,(f=this.levelLastLoaded)==null?void 0:f.details)}if(l.details=s,this.levelLastLoaded=l,this.hls.trigger(A.LEVEL_UPDATED,{details:s,level:r}),this.state===Me){if(this.waitForCdnTuneIn(s))return;this.state=be}this.startFragRequested?s.live&&this.synchronizeToLiveEdge(s):this.setStartPosition(s,u),this.tick()}_handleFragmentLoadProgress(t){var e;let{frag:i,part:n,payload:r}=t,{levels:s}=this;if(!s)return void this.warn(`Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`);let a=s[i.level],l=a.details;if(!l)return this.warn(`Dropping fragment ${i.sn} of level ${i.level} after level details were reset`),void this.fragmentTracker.removeFragment(i);let d=a.videoCodec,u=l.PTSKnown||!l.live,f=(e=i.initSegment)==null?void 0:e.data,E=this._getAudioCodec(a),S=this.transmuxer=this.transmuxer||new Ro(this.hls,me,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)),T=n?n.index:-1,_=T!==-1,D=new dr(i.level,i.sn,i.stats.chunkCount,r.byteLength,T,_),w=this.initPTS[i.cc];S.push(r,f,E,d,i,n,l.totalduration,u,D,w)}onAudioTrackSwitching(t,e){let i=this.altAudio;if(!e.url){if(this.mediaBuffer!==this.media){this.log("Switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;let r=this.fragCurrent;r&&(this.log("Switching to main audio track, cancel main fragment load"),r.abortRequests(),this.fragmentTracker.removeFragment(r)),this.resetTransmuxer(),this.resetLoadingState()}else this.audioOnly&&this.resetTransmuxer();let n=this.hls;i&&(n.trigger(A.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null}),this.fragmentTracker.removeAllFragments()),n.trigger(A.AUDIO_TRACK_SWITCHED,e)}}onAudioTrackSwitched(t,e){let i=e.id,n=!!this.hls.audioTracks[i].url;if(n){let r=this.videoBuffer;r&&this.mediaBuffer!==r&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=r)}this.altAudio=n,this.tick()}onBufferCreated(t,e){let i=e.tracks,n,r,s=!1;for(let a in i){let l=i[a];if(l.id==="main"){if(r=a,n=l,a==="video"){let d=i[a];d&&(this.videoBuffer=d.buffer)}}else s=!0}s&&n?(this.log(`Alternate track found, use ${r}.buffered to schedule main fragment loading`),this.mediaBuffer=n.buffer):this.mediaBuffer=this.media}onFragBuffered(t,e){let{frag:i,part:n}=e;if(i&&i.type!==me)return;if(this.fragContextChanged(i))return this.warn(`Fragment ${i.sn}${n?" p: "+n.index:""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}`),void(this.state===Mr&&(this.state=be));let r=n?n.stats:i.stats;this.fragLastKbps=Math.round(8*r.total/(r.buffering.end-r.loading.first)),i.sn!=="initSegment"&&(this.fragPrevious=i),this.fragBufferedComplete(i,n)}onError(t,e){var i;if(e.fatal)this.state=mr;else switch(e.details){case H.FRAG_GAP:case H.FRAG_PARSING_ERROR:case H.FRAG_DECRYPT_ERROR:case H.FRAG_LOAD_ERROR:case H.FRAG_LOAD_TIMEOUT:case H.KEY_LOAD_ERROR:case H.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(me,e);break;case H.LEVEL_LOAD_ERROR:case H.LEVEL_LOAD_TIMEOUT:case H.LEVEL_PARSING_ERROR:e.levelRetry||this.state!==Me||((i=e.context)==null?void 0:i.type)!==Vi||(this.state=be);break;case H.BUFFER_APPEND_ERROR:case H.BUFFER_FULL_ERROR:if(!e.parent||e.parent!=="main")return;if(e.details===H.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(e)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case H.INTERNAL_EXCEPTION:this.recoverWorkerError(e)}}checkBuffer(){let{media:t,gapController:e}=this;if(t&&e&&t.readyState){if(this.loadedmetadata||!ye.getBuffered(t).length){let i=this.state!==be?this.fragCurrent:null;e.poll(this.lastCurrentTime,i)}this.lastCurrentTime=t.currentTime}}onFragLoadEmergencyAborted(){this.state=be,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.tickImmediate()}onBufferFlushed(t,{type:e}){if(e!==gt||this.audioOnly&&!this.altAudio){let i=(e===Rt?this.videoBuffer:this.mediaBuffer)||this.media;this.afterBufferFlushed(i,e,me),this.tick()}}onLevelsUpdated(t,e){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level),this.levels=e.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){let{media:t}=this;if(!t)return;let e=t.currentTime,i=this.startPosition;if(i>=0&&e<i){if(t.seeking)return void this.log(`could not seek to ${i}, already seeking at ${e}`);let n=ye.getBuffered(t),r=(n.length?n.start(0):0)-i;r>0&&(r<this.config.maxBufferHole||r<this.config.maxFragLookUpTolerance)&&(this.log(`adjusting start position by ${r} to match buffer start`),i+=r,this.startPosition=i),this.log(`seek to target start position ${i} from current time ${e}`),t.currentTime=i}}_getAudioCodec(t){let e=this.config.defaultAudioCodec||t.audioCodec;return this.audioCodecSwap&&e&&(this.log("Swapping audio codec"),e=e.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),e}_loadBitrateTestFrag(t,e){t.bitrateTest=!0,this._doFragLoad(t,e).then((i)=>{let{hls:n}=this;if(!i||this.fragContextChanged(t))return;e.fragmentError=0,this.state=be,this.startFragRequested=!1,this.bitrateTest=!1;let r=t.stats;r.parsing.start=r.parsing.end=r.buffering.start=r.buffering.end=self.performance.now(),n.trigger(A.FRAG_LOADED,i),t.bitrateTest=!1})}_handleTransmuxComplete(t){var e;let i="main",{hls:n}=this,{remuxResult:r,chunkMeta:s}=t,a=this.getCurrentContext(s);if(!a)return void this.resetWhenMissingContext(s);let{frag:l,part:d,level:u}=a,{video:f,text:E,id3:S,initSegment:T}=r,{details:_}=u,D=this.altAudio?void 0:r.audio;if(this.fragContextChanged(l))this.fragmentTracker.removeFragment(l);else{if(this.state=hn,T){if(T!=null&&T.tracks){let M=l.initSegment||l;this._bufferInitSegment(u,T.tracks,M,s),n.trigger(A.FRAG_PARSING_INIT_SEGMENT,{frag:M,id:"main",tracks:T.tracks})}let{initPTS:w,timescale:x}=T;j(w)&&(this.initPTS[l.cc]={baseTime:w,timescale:x},n.trigger(A.INIT_PTS_FOUND,{frag:l,id:"main",initPTS:w,timescale:x}))}if(f&&_&&l.sn!=="initSegment"){let w=_.fragments[l.sn-1-_.startSN],x=l.sn===_.startSN,M=!w||l.cc>w.cc;if(r.independent!==!1){let{startPTS:V,endPTS:X,startDTS:ot,endDTS:et}=f;if(d)d.elementaryStreams[f.type]={startPTS:V,endPTS:X,startDTS:ot,endDTS:et};else if(f.firstKeyFrame&&f.independent&&s.id===1&&!M&&(this.couldBacktrack=!0),f.dropped&&f.independent){let vt=this.getMainFwdBufferInfo(),St=(vt?vt.end:this.getLoadPosition())+this.config.maxBufferHole,nt=f.firstKeyFramePTS?f.firstKeyFramePTS:V;if(!x&&St<nt-this.config.maxBufferHole&&!M)return void this.backtrack(l);M&&(l.gap=!0),l.setElementaryStreamInfo(f.type,l.start,X,l.start,et,!0)}else x&&V>2&&(l.gap=!0);l.setElementaryStreamInfo(f.type,V,X,ot,et),this.backtrackFragment&&(this.backtrackFragment=l),this.bufferFragmentData(f,l,d,s,x||M)}else{if(!x&&!M)return void this.backtrack(l);l.gap=!0}}if(D){let{startPTS:w,endPTS:x,startDTS:M,endDTS:V}=D;d&&(d.elementaryStreams[gt]={startPTS:w,endPTS:x,startDTS:M,endDTS:V}),l.setElementaryStreamInfo(gt,w,x,M,V),this.bufferFragmentData(D,l,d,s)}if(_&&S!=null&&(e=S.samples)!=null&&e.length){let w={id:"main",frag:l,details:_,samples:S.samples};n.trigger(A.FRAG_PARSING_METADATA,w)}if(_&&E){let w={id:"main",frag:l,details:_,samples:E.samples};n.trigger(A.FRAG_PARSING_USERDATA,w)}}}_bufferInitSegment(t,e,i,n){if(this.state!==hn)return;this.audioOnly=!!e.audio&&!e.video,this.altAudio&&!this.audioOnly&&delete e.audio;let{audio:r,video:s,audiovideo:a}=e;if(r){let l=t.audioCodec,d=navigator.userAgent.toLowerCase();this.audioCodecSwitch&&(l&&(l=l.indexOf("mp4a.40.5")!==-1?"mp4a.40.2":"mp4a.40.5"),r.metadata.channelCount!==1&&d.indexOf("firefox")===-1&&(l="mp4a.40.5")),l&&l.indexOf("mp4a.40.5")!==-1&&d.indexOf("android")!==-1&&r.container!=="audio/mpeg"&&(l="mp4a.40.2",this.log("Android: force audio codec to "+l)),t.audioCodec&&t.audioCodec!==l&&this.log(`Swapping manifest audio codec "${t.audioCodec}" for "${l}"`),r.levelCodec=l,r.id="main",this.log(`Init audio buffer, container:${r.container}, codecs[selected/level/parsed]=[${l||""}/${t.audioCodec||""}/${r.codec}]`)}s&&(s.levelCodec=t.videoCodec,s.id="main",this.log(`Init video buffer, container:${s.container}, codecs[level/parsed]=[${t.videoCodec||""}/${s.codec}]`)),a&&this.log(`Init audiovideo buffer, container:${a.container}, codecs[level/parsed]=[${t.codecs}/${a.codec}]`),this.hls.trigger(A.BUFFER_CODECS,e),Object.keys(e).forEach((l)=>{let d=e[l].initSegment;d!=null&&d.byteLength&&this.hls.trigger(A.BUFFER_APPENDING,{type:l,data:d,frag:i,part:null,chunkMeta:n,parent:i.type})}),this.tickImmediate()}getMainFwdBufferInfo(){return this.getFwdBufferInfo(this.mediaBuffer?this.mediaBuffer:this.media,me)}backtrack(t){this.couldBacktrack=!0,this.backtrackFragment=t,this.resetTransmuxer(),this.flushBufferGap(t),this.fragmentTracker.removeFragment(t),this.fragPrevious=null,this.nextLoadPosition=t.start,this.state=be}checkFragmentChanged(){let t=this.media,e=null;if(t&&t.readyState>1&&t.seeking===!1){let i=t.currentTime;if(ye.isBuffered(t,i)?e=this.getAppendedFrag(i):ye.isBuffered(t,i+0.1)&&(e=this.getAppendedFrag(i+0.1)),e){this.backtrackFragment=null;let n=this.fragPlaying,r=e.level;n&&e.sn===n.sn&&n.level===r||(this.fragPlaying=e,this.hls.trigger(A.FRAG_CHANGED,{frag:e}),n&&n.level===r||this.hls.trigger(A.LEVEL_SWITCHED,{level:r}))}}}get nextLevel(){let t=this.nextBufferedFrag;return t?t.level:-1}get currentFrag(){let t=this.media;return t?this.fragPlaying||this.getAppendedFrag(t.currentTime):null}get currentProgramDateTime(){let t=this.media;if(t){let e=t.currentTime,i=this.currentFrag;if(i&&j(e)&&j(i.programDateTime)){let n=i.programDateTime+1000*(e-i.start);return new Date(n)}}return null}get currentLevel(){let t=this.currentFrag;return t?t.level:-1}get nextBufferedFrag(){let t=this.currentFrag;return t?this.followingBufferedFrag(t):null}get forceStartLoad(){return this._forceStartLoad}}class ni{static get version(){return"1.5.8"}static isMSESupported(){return ic()}static isSupported(){return function(){if(!ic())return!1;let t=Xi();return typeof(t==null?void 0:t.isTypeSupported)=="function"&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some((e)=>t.isTypeSupported(dn(e,"video")))||["mp4a.40.2","fLaC"].some((e)=>t.isTypeSupported(dn(e,"audio"))))}()}static getMediaSource(){return Xi()}static get Events(){return A}static get ErrorTypes(){return Ft}static get ErrorDetails(){return H}static get DefaultConfig(){return ni.defaultConfig?ni.defaultConfig:Jl}static set DefaultConfig(t){ni.defaultConfig=t}constructor(t={}){this.config=void 0,this.userConfig=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this.started=!1,this._emitter=new ko,this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this.url=null,this.triggeringException=void 0,function(nt,it){if(typeof console=="object"&&nt===!0||typeof nt=="object"){lt(nt,"debug","log","info","warn","error");try{Mt.log(`Debug logs enabled for "${it}" in hls.js version 1.5.8`)}catch(jt){Mt=Ct}}else Mt=Ct}(t.debug||!1,"Hls instance");let e=this.config=function(nt,it){if((it.liveSyncDurationCount||it.liveMaxLatencyDurationCount)&&(it.liveSyncDuration||it.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(it.liveMaxLatencyDurationCount!==void 0&&(it.liveSyncDurationCount===void 0||it.liveMaxLatencyDurationCount<=it.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(it.liveMaxLatencyDuration!==void 0&&(it.liveSyncDuration===void 0||it.liveMaxLatencyDuration<=it.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');let jt=zo(nt),At=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return["manifest","level","frag"].forEach((Kt)=>{let zt=(Kt==="level"?"playlist":Kt)+"LoadPolicy",Xt=it[zt]===void 0,ht=[];At.forEach((wt)=>{let Wt=`${Kt}Loading${wt}`,Yt=it[Wt];if(Yt!==void 0&&Xt){ht.push(Wt);let ae=jt[zt].default;switch(it[zt]={default:ae},wt){case"TimeOut":ae.maxLoadTimeMs=Yt,ae.maxTimeToFirstByteMs=Yt;break;case"MaxRetry":ae.errorRetry.maxNumRetry=Yt,ae.timeoutRetry.maxNumRetry=Yt;break;case"RetryDelay":ae.errorRetry.retryDelayMs=Yt,ae.timeoutRetry.retryDelayMs=Yt;break;case"MaxRetryTimeout":ae.errorRetry.maxRetryDelayMs=Yt,ae.timeoutRetry.maxRetryDelayMs=Yt}}}),ht.length&&C.warn(`hls.js config: "${ht.join('", "')}" setting(s) are deprecated, use "${zt}": ${JSON.stringify(it[zt])}`)}),L(L({},jt),it)}(ni.DefaultConfig,t);this.userConfig=t,e.progressive&&Nd(e);let{abrController:i,bufferController:n,capLevelController:r,errorController:s,fpsController:a}=e,l=new s(this),d=this.abrController=new i(this),u=this.bufferController=new n(this),f=this.capLevelController=new r(this),E=new a(this),S=new Rr(this),T=new F(this),_=e.contentSteeringController,D=_?new _(this):null,w=this.levelController=new Ql(this,D),x=new Ws(this),M=new tc(this.config),V=this.streamController=new rc(this,x,M);f.setStreamController(V),E.setStreamController(V);let X=[S,w,V];D&&X.splice(1,0,D),this.networkControllers=X;let ot=[d,u,f,E,T,x];this.audioTrackController=this.createController(e.audioTrackController,X);let et=e.audioStreamController;et&&X.push(new et(this,x,M)),this.subtitleTrackController=this.createController(e.subtitleTrackController,X);let vt=e.subtitleStreamController;vt&&X.push(new vt(this,x,M)),this.createController(e.timelineController,ot),M.emeController=this.emeController=this.createController(e.emeController,ot),this.cmcdController=this.createController(e.cmcdController,ot),this.latencyController=this.createController(ut,ot),this.coreComponents=ot,X.push(l);let St=l.onErrorOut;typeof St=="function"&&this.on(A.ERROR,St,l)}createController(t,e){if(t){let i=new t(this);return e&&e.push(i),i}return null}on(t,e,i=this){this._emitter.on(t,e,i)}once(t,e,i=this){this._emitter.once(t,e,i)}removeAllListeners(t){this._emitter.removeAllListeners(t)}off(t,e,i=this,n){this._emitter.off(t,e,i,n)}listeners(t){return this._emitter.listeners(t)}emit(t,e,i){return this._emitter.emit(t,e,i)}trigger(t,e){if(this.config.debug)return this.emit(t,t,e);try{return this.emit(t,t,e)}catch(i){if(C.error("An internal error happened while handling event "+t+'. Error message: "'+i.message+'". Here is a stacktrace:',i),!this.triggeringException){this.triggeringException=!0;let n=t===A.ERROR;this.trigger(A.ERROR,{type:Ft.OTHER_ERROR,details:H.INTERNAL_EXCEPTION,fatal:n,event:t,error:i}),this.triggeringException=!1}}return!1}listenerCount(t){return this._emitter.listenerCount(t)}destroy(){C.log("destroy"),this.trigger(A.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this.url=null,this.networkControllers.forEach((e)=>e.destroy()),this.networkControllers.length=0,this.coreComponents.forEach((e)=>e.destroy()),this.coreComponents.length=0;let t=this.config;t.xhrSetup=t.fetchSetup=void 0,this.userConfig=null}attachMedia(t){C.log("attachMedia"),this._media=t,this.trigger(A.MEDIA_ATTACHING,{media:t})}detachMedia(){C.log("detachMedia"),this.trigger(A.MEDIA_DETACHING,void 0),this._media=null}loadSource(t){this.stopLoad();let e=this.media,i=this.url,n=this.url=b.buildAbsoluteURL(self.location.href,t,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,C.log("loadSource:"+n),e&&i&&(i!==n||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(e)),this.trigger(A.MANIFEST_LOADING,{url:t})}startLoad(t=-1){C.log(`startLoad(${t})`),this.started=!0,this.networkControllers.forEach((e)=>{e.startLoad(t)})}stopLoad(){C.log("stopLoad"),this.started=!1,this.networkControllers.forEach((t)=>{t.stopLoad()})}resumeBuffering(){this.started&&this.networkControllers.forEach((t)=>{"fragmentLoader"in t&&t.startLoad(-1)})}pauseBuffering(){this.networkControllers.forEach((t)=>{"fragmentLoader"in t&&t.stopLoad()})}swapAudioCodec(){C.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){C.log("recoverMediaError");let t=this._media;this.detachMedia(),t&&this.attachMedia(t)}removeLevel(t){this.levelController.removeLevel(t)}get levels(){return this.levelController.levels||[]}get currentLevel(){return this.streamController.currentLevel}set currentLevel(t){C.log("set currentLevel:"+t),this.levelController.manualLevel=t,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(t){C.log("set nextLevel:"+t),this.levelController.manualLevel=t,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(t){C.log("set loadLevel:"+t),this.levelController.manualLevel=t}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(t){this.levelController.nextLoadLevel=t}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(t){C.log("set firstLevel:"+t),this.levelController.firstLevel=t}get startLevel(){let t=this.levelController.startLevel;return t===-1&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:t}set startLevel(t){C.log("set startLevel:"+t),t!==-1&&(t=Math.max(t,this.minAutoLevel)),this.levelController.startLevel=t}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(t){let e=!!t;e!==this.config.capLevelToPlayerSize&&(e?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=e)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){let{bwEstimator:t}=this.abrController;return t?t.getEstimate():NaN}set bandwidthEstimate(t){this.abrController.resetEstimator(t)}get ttfbEstimate(){let{bwEstimator:t}=this.abrController;return t?t.getEstimateTTFB():NaN}set autoLevelCapping(t){this._autoLevelCapping!==t&&(C.log("set autoLevelCapping:"+t),this._autoLevelCapping=t,this.levelController.checkMaxAutoUpdated())}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(t){(function(e){return ct.indexOf(e)>-1})(t)&&this._maxHdcpLevel!==t&&(this._maxHdcpLevel=t,this.levelController.checkMaxAutoUpdated())}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){let{levels:t,config:{minAutoBitrate:e}}=this;if(!t)return 0;let i=t.length;for(let n=0;n<i;n++)if(t[n].maxBitrate>=e)return n;return 0}get maxAutoLevel(){let{levels:t,autoLevelCapping:e,maxHdcpLevel:i}=this,n;if(n=e===-1&&t!=null&&t.length?t.length-1:e,i)for(let r=n;r--;){let s=t[r].attrs["HDCP-LEVEL"];if(s&&s<=i)return r}return n}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(t){this.abrController.nextAutoLevel=t}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}setAudioOption(t){var e;return(e=this.audioTrackController)==null?void 0:e.setAudioOption(t)}setSubtitleOption(t){var e;return(e=this.subtitleTrackController)==null||e.setSubtitleOption(t),null}get allAudioTracks(){let t=this.audioTrackController;return t?t.allAudioTracks:[]}get audioTracks(){let t=this.audioTrackController;return t?t.audioTracks:[]}get audioTrack(){let t=this.audioTrackController;return t?t.audioTrack:-1}set audioTrack(t){let e=this.audioTrackController;e&&(e.audioTrack=t)}get allSubtitleTracks(){let t=this.subtitleTrackController;return t?t.allSubtitleTracks:[]}get subtitleTracks(){let t=this.subtitleTrackController;return t?t.subtitleTracks:[]}get subtitleTrack(){let t=this.subtitleTrackController;return t?t.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(t){let e=this.subtitleTrackController;e&&(e.subtitleTrack=t)}get subtitleDisplay(){let t=this.subtitleTrackController;return!!t&&t.subtitleDisplay}set subtitleDisplay(t){let e=this.subtitleTrackController;e&&(e.subtitleDisplay=t)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(t){this.config.lowLatencyMode=t}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}}ni.defaultConfig=void 0;var Pd=Object.freeze({__proto__:null,ATTACHED:"hls:attached"});function Md(t){let e=function(){let i=typeof document!="undefined"&&typeof window!="undefined",n=i?navigator.userAgent:"",r=/iP(hone|od)/i.test(n)&&!/iPad/.test(n)&&!/IEMobile/i.test(n),s=/Android/.test(n)&&!/Firefox/.test(n),a=/^((?!chrome|android).)*safari/i.test(n),l=/chrome|crios/i.test(n)&&!/opr|opera|chromium|edg|ucbrowser|googlebot/i.test(n),d=/firefox|fxios/i.test(n)&&!/seamonkey/i.test(n),u=/edg/i.test(n),f=/opr|opera/i.test(n),E=/SamsungBrowser/.test(n),S=E&&/SMART-TV/.test(n);return{controls:!r,video:function(T){return i&&document.createElement("video").canPlayType(T)},lang:i&&window.navigator.language,android:s,iphone:r,safari:a,edge:u,opera:f,chrome:l,firefox:d,ios:i&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,samsung:E,samsung_tv:E&&S,touch:"ontouchstart"in window,tizen:"tizen"in window,webOS:"webos"in window}}();switch(t){case"com.widevine.alpha":return e.chrome||e.firefox||e.edge||e.opera;case"org.w3.clearkey":return e.chrome||e.firefox;case"com.apple.fps.1_0":return e.safari;case"com.microsoft.playready":return e.edge}}let sc="application/vnd.apple.mpegURL",Fd=[sc,"application/x-mpegurl"],Bd=document.createElement("video").canPlayType(sc);function Ud(t){let{pathname:e}=function(i){let n=document.createElement("a");return n.href=i,n}(t);return e.endsWith(".m3u8")}let ln=window&&window.Hls||ni;function $d(t,e){let i=t.seekable;if(typeof t.opts!="object"||i.length==0)return{head:0,tail:0};let n=function(s){var a;let l=s.seekable;return l.length?s.hasState("is-chromecast-playing")||!((a=s.hls)===null||a===void 0?void 0:a.liveSyncPosition)?l.end(l.length-1):s.hls.liveSyncPosition:0}(t),r=e||t.live_state.dvr_window;return{head:n,tail:typeof r!="number"||n-r<0?i.start(0):n-r}}let ge={Unknown:"00-00",MediaUnknown:"01-00",MediaUnavailable:"01-01",MediaUnsupportedVideoFormat:"01-02",MediaUnsupportedAudioFormat:"01-03",MediaBitrateExceeded:"01-04",MediaBufferOverread:"01-05",MediaIntegerOverflow:"01-06",MediaQuotaExceeded:"01-07",MediaInvalidCompositionDuration:"01-08",MediaInvalidCompositionSourceDuration:"01-09",MediaInvalidCompositionSourceStartTime:"01-10",MediaMalformedDepth:"01-11",PlaybackUnknown:"02-00",PlaybackVideoBufferUnderRun:"02-01",PlaybackAudioBufferUnderRun:"02-02",PlaybackVideoBufferingTimeout:"02-03",PlaybackAudioBufferingTimeout:"02-04",PlaybackManifestParseError:"02-05",PlaybackVideoDecodeError:"02-06",PlaybackAudioDecodeError:"02-07",PlaybackDroppedFramesExceeded:"02-08",PlaybackPlayheadExceedsDuration:"02-09",PlaybackUnsupportedDevice:"02-10",PlaybackManifestLoadError:"02-11",PlaybackManifestLoadTimeout:"02-12",PlaybackManifestParsingError:"02-13",PlaybackManifestIncompatibleCodecs:"02-14",PlaybackLevelEmptyError:"02-15",PlaybackLevelLoadError:"02-16",PlaybackLevelLoadTimeout:"02-17",PlaybackLevelSwitchError:"02-18",PlaybackAudioTrackLoadError:"02-19",PlaybackAudioTrackLoadTimeout:"02-20",PlaybackFragLoadError:"02-21",PlaybackFragLoadTimeout:"02-22",PlaybackFragDecryptError:"02-23",PlaybackFragParsingError:"02-24",PlaybackFragGap:"02-25",PlaybackRemuxAllocError:"02-26",PlaybackBufferAddCodecError:"02-27",PlaybackBufferIncompatibleCodecs:"02-28",PlaybackBufferAppendError:"02-29",PlaybackBufferStalledError:"02-30",PlaybackBufferFullError:"02-31",PlaybackBufferSeekOverHole:"02-32",PlaybackBufferNudgeOnStall:"02-33",PlaybackInternalException:"02-34",PlaybackInternalAborted:"02-35",PlaybackManifestLoaderFailure:"02-36",PlaybackSegmentBaseLoaderError:"02-37",PlaybackTimeSyncFailed:"02-38",PlaybackFragmentLoaderFailure:"02-39",PlaybackAppendError:"02-40",PlaybackRemoveError:"02-41",PlaybackDataUpdateFailed:"02-42",PlaybackManifestNoStreams:"02-43",PlaybackUnknownManifestType:"02-44",PlaybackDashInsufficientSegmentInfo:"02-45",PlaybackDashNoRepresentations:"02-46",PlaybackDashNoAdaptationSets:"02-47",PlaybackDashNoInitSegment:"02-48",PlaybackDashUnsupportedContainerFormat:"02-49",PlaybackDashKeySystemMismatch:"02-50",PlaybackMultipleKeyIDs:"02-51",PlaybackDashConflictingKeyIDs:"02-52",PlaybackRestrictedStreams:"02-53",PlaybackHlsMasterAndMediaTags:"02-54",PlaybackRepresentationIdConflict:"02-55",PlaybackHlsUnsupportedKeyFormats:"02-56",PlaybackManifestNoVariants:"02-57",PlaybackHlsUndeclaredVariables:"02-58",PlaybackAes128InvalidKeyLength:"02-59",PlaybackDashConflictingAes128Keys:"02-60",PlaybackDashUnsupportedAes128Encryption:"02-61",PlaybackManifestPatchMismatch:"02-62",PlaybackEmptyMediaPlaylist:"02-63",PlaybackNonContiguousCompositionTrack:"02-64",PlaybackDecoderNotFound:"02-65",PlaybackDecoderTemporarilyUnavailable:"02-66",PlaybackIncompatibleAsset:"02-67",PlaybackNoCompatibleExternalDisplay:"02-69",PlaybackOutOfMemory:"02-70",PlaybackToneMappingFailed:"02-71",PlaybackVideoCompositorFailed:"02-72",NetworkUnknown:"03-00",NetworkNoInternet:"03-01",NetworkRequestTimeout:"03-02",NetworkUnableToResolveHost:"03-03",NetworkResourceNotFound:"03-04",NetworkExpiredUrl:"03-05",NetworkUrlResolutionFailed:"03-06",NetworkDownloadErrorIdManifest:"03-07",NetworkDownloadErrorIdSidx:"03-08",NetworkDownloadErrorIdContent:"03-09",NetworkDownloadErrorIdInitialization:"03-10",NetworkDownloadErrorIdXlink:"03-11",NetworkHttpRequestFailed:"03-12",NetworkMaxRetriesExceeded:"03-13",NetworkSegmentMissing:"03-14",NetworkHttp400BadRequest:"03-400",NetworkHttp401Unauthorized:"03-401",NetworkHttp402PaymentRequired:"03-402",NetworkHttp403Forbidden:"03-403",NetworkHttp404NotFound:"03-404",NetworkHttp405MethodNotAllowed:"03-405",NetworkHttp406NotAcceptable:"03-406",NetworkHttp407ProxyAuthenticationRequired:"03-407",NetworkHttp408RequestTimeout:"03-408",NetworkHttp409Conflict:"03-409",NetworkHttp410Gone:"03-410",NetworkHttp411LengthRequired:"03-411",NetworkHttp412PreconditionFailed:"03-412",NetworkHttp413PayloadTooLarge:"03-413",NetworkHttp414URITooLong:"03-414",NetworkHttp415UnsupportedMediaType:"03-415",NetworkHttp416RangeNotSatisfiable:"03-416",NetworkHttp417ExpectationFailed:"03-417",NetworkHttp418ImATeapot:"03-418",NetworkHttp421MisdirectedRequest:"03-421",NetworkHttp422UnprocessableEntity:"03-422",NetworkHttp423Locked:"03-423",NetworkHttp424FailedDependency:"03-424",NetworkHttp425TooEarly:"03-425",NetworkHttp426UpgradeRequired:"03-426",NetworkHttp428PreconditionRequired:"03-428",NetworkHttp429TooManyRequests:"03-429",NetworkHttp431RequestHeaderFieldsTooLarge:"03-431",NetworkHttp451UnavailableForLegalReasons:"03-451",NetworkHttp500InternalServerError:"03-500",NetworkHttp501NotImplemented:"03-501",NetworkHttp502BadGateway:"03-502",NetworkHttp503ServiceUnavailable:"03-503",NetworkHttp504GatewayTimeout:"03-504",NetworkHttp505HTTPVersionNotSupported:"03-505",NetworkHttp506VariantAlsoNegotiates:"03-506",NetworkHttp507InsufficientStorage:"03-507",NetworkHttp508LoopDetected:"03-508",NetworkHttp510NotExtended:"03-510",NetworkHttp511NetworkAuthenticationRequired:"03-511",ContentProtectionUnknown:"04-00",ContentProtectionConcurrentStreamLimitExceeded:"04-01",ContentProtectionEntitlementRefused:"04-02",ContentProtectionLicenseExpired:"04-03",ContentProtectionBadLicenseRequest:"04-04",ContentProtectionLicenseServerTimeout:"04-05",ContentProtectionInsufficientHDCPSupport:"04-06",ContentProtectionGeoRestricted:"04-07",ContentProtectionParentalControlRestricted:"04-08",ContentProtectionCDNUnauthorized:"04-09",ContentProtectionInvalidAccessToken:"04-10",ContentProtectionKeySystemNoKeys:"04-11",ContentProtectionKeySystemNoAccess:"04-12",ContentProtectionKeySystemNoSession:"04-13",ContentProtectionKeySystemNoConfiguredLicense:"04-14",ContentProtectionKeySystemCertificateRequestFailed:"04-15",ContentProtectionKeySystemCertificateUpdateFailed:"04-16",ContentProtectionKeySystemSessionUpdateFailed:"04-17",ContentProtectionKeySystemStatusOutputRestricted:"04-18",ContentProtectionKeySystemStatusInternalError:"04-19",ContentProtectionKeyLoadError:"04-20",ContentProtectionKeyLoadTimeout:"04-21",ContentProtectionCapabilityMediaKeysError:"04-22",ContentProtectionManifestKeySystemUnknown:"04-23",ContentProtectionKeySystemUnavailable:"04-24",ContentProtectionCDMCreationFailed:"04-25",ContentProtectionCDMAttachFailed:"04-26",ContentProtectionCDMServerCertificateRejected:"04-27",ContentProtectionCDMSessionCreationFailed:"04-28",ContentProtectionCDMLicenseRequestFailed:"04-29",ContentProtectionCDMLicenseResponseRejected:"04-30",ContentProtectionManifestMissingDRMInfo:"04-31",ContentProtectionLicenseServerMissing:"04-32",ContentProtectionOfflineSessionRemoved:"04-33",ContentProtectionInitDataTransformationError:"04-34",ContentProtectionServerCertificateRequestFailed:"04-35",ContentProtectionInsufficientHDCPVersion:"04-36",ContentProtectionHDCPVersionCheckFailed:"04-37",AdsUnknown:"08-00",AdsVastParseError:"08-100",AdsInvalidVastSchema:"08-101",AdsVastVersionNotSupported:"08-102",AdsUnexpectedAdType:"08-200",AdsCreativeLinearityMismatch:"08-201",AdsCreativeDurationMismatch:"08-202",AdsCreativeSizeMismatch:"08-203",AdsWrapperVastError:"08-300",AdsVastResponseRedirectTimeout:"08-301",AdsWrapperLimitReached:"08-302",AdsVastResponseEmpty:"08-303",AdsLinearAdDisplayError:"08-400",AdsMediaFileNotFound:"08-401",AdsMediaFileUnavailable:"08-402",AdsUnsupportedMimeType:"08-403",AdsUnableToDisplayMediaFile:"08-405",AdsMezzanineFileMissing:"08-406",AdsMezzanineFileDownloaded:"08-407",AdsRejectedAd:"08-408",AdsInteractiveCreativeError:"08-409",AdsVerificationNodeExecutionError:"08-410",AdsNonLinearAdDisplayError:"08-500",AdsNonLinearAdSizeMismatch:"08-501",AdsNonLinearAdFetchError:"08-502",AdsNonLinearUnsupportedType:"08-503",AdsCompanionAdDisplayError:"08-600",AdsCompanionAdSizeMismatch:"08-601",AdsRequiredCompanionAdError:"08-602",AdsCompanionAdFetchError:"08-603",AdsUndefinedVastError:"08-900",AdsUnknownVpaidError:"08-901",AdsVastDocumentEmpty:"08-999"},Jo=Object.fromEntries(Object.entries(ge).map(([t,e])=>[e,t])),Gd=[1e7]+"-1000-4000-8000-100000000000",ac="on",Va="off";class oa extends Error{static getErrorKey(t){return t in Jo?Jo[t]:Jo["00-00"]}constructor(t,e,i={}){super(t),this.message=t,this.flowplayerErrorCode=e,this.config=i,this.id=typeof crypto=="undefined"?"":Gd.replace(/[018]/g,(n)=>(n^crypto.getRandomValues(new Uint8Array(1))[0]&15>>n/4).toString(16)),this.isFatal=!!i.isFatal,this.errorKey=oa.getErrorKey(this.flowplayerErrorCode)||"unknown"}toJSON(){return{message:this.message,flowplayer_error_code:this.flowplayerErrorCode,id:this.id,root_error_id:this.config.rootErrorId,resource:this.config.resource,is_fatal:this.isFatal,is_retry:!!this.config.isRetry}}}function Hd(t){switch(t){case H.KEY_SYSTEM_NO_KEYS:return ge.ContentProtectionKeySystemNoKeys;case H.KEY_SYSTEM_NO_ACCESS:return ge.ContentProtectionKeySystemNoAccess;case H.KEY_SYSTEM_NO_SESSION:return ge.ContentProtectionKeySystemNoSession;case H.KEY_SYSTEM_NO_CONFIGURED_LICENSE:return ge.ContentProtectionKeySystemNoConfiguredLicense;case H.KEY_SYSTEM_LICENSE_REQUEST_FAILED:return ge.ContentProtectionCDMLicenseRequestFailed;case H.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED:return ge.ContentProtectionServerCertificateRequestFailed;case H.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED:return ge.ContentProtectionKeySystemCertificateUpdateFailed;case H.KEY_SYSTEM_SESSION_UPDATE_FAILED:return ge.ContentProtectionKeySystemSessionUpdateFailed;case H.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:return ge.ContentProtectionKeySystemStatusOutputRestricted;case H.KEY_SYSTEM_STATUS_INTERNAL_ERROR:return ge.ContentProtectionKeySystemStatusInternalError;case H.MANIFEST_LOAD_ERROR:return ge.PlaybackManifestLoadError;case H.MANIFEST_LOAD_TIMEOUT:return ge.PlaybackManifestLoadTimeout;case H.MANIFEST_PARSING_ERROR:return ge.PlaybackManifestParsingError;case H.MANIFEST_INCOMPATIBLE_CODECS_ERROR:return ge.PlaybackManifestIncompatibleCodecs;case H.LEVEL_EMPTY_ERROR:return ge.PlaybackLevelEmptyError;case H.LEVEL_LOAD_ERROR:return ge.PlaybackLevelLoadError;case H.LEVEL_LOAD_TIMEOUT:return ge.PlaybackLevelLoadTimeout;case H.LEVEL_PARSING_ERROR:return ge.PlaybackManifestParsingError;case H.LEVEL_SWITCH_ERROR:return ge.PlaybackLevelSwitchError;case H.AUDIO_TRACK_LOAD_ERROR:return ge.PlaybackAudioTrackLoadError;case H.AUDIO_TRACK_LOAD_TIMEOUT:return ge.PlaybackAudioTrackLoadTimeout;case H.SUBTITLE_LOAD_ERROR:return ge.NetworkDownloadErrorIdContent;case H.SUBTITLE_TRACK_LOAD_TIMEOUT:return ge.NetworkRequestTimeout;case H.FRAG_LOAD_ERROR:return ge.PlaybackFragLoadError;case H.FRAG_LOAD_TIMEOUT:return ge.PlaybackFragLoadTimeout;case H.FRAG_DECRYPT_ERROR:return ge.PlaybackFragDecryptError;case H.FRAG_PARSING_ERROR:return ge.PlaybackFragParsingError;case H.FRAG_GAP:return ge.PlaybackFragGap;case H.REMUX_ALLOC_ERROR:return ge.PlaybackRemuxAllocError;case H.KEY_LOAD_ERROR:return ge.ContentProtectionKeyLoadError;case H.KEY_LOAD_TIMEOUT:return ge.ContentProtectionKeyLoadTimeout;case H.BUFFER_ADD_CODEC_ERROR:return ge.PlaybackBufferAddCodecError;case H.BUFFER_INCOMPATIBLE_CODECS_ERROR:return ge.PlaybackBufferIncompatibleCodecs;case H.BUFFER_APPEND_ERROR:return ge.PlaybackBufferAppendError;case H.BUFFER_APPENDING_ERROR:return ge.PlaybackAppendError;case H.BUFFER_STALLED_ERROR:return ge.PlaybackBufferStalledError;case H.BUFFER_FULL_ERROR:return ge.PlaybackBufferFullError;case H.BUFFER_SEEK_OVER_HOLE:return ge.PlaybackBufferSeekOverHole;case H.BUFFER_NUDGE_ON_STALL:return ge.PlaybackBufferNudgeOnStall;case H.INTERNAL_EXCEPTION:return ge.PlaybackInternalException;case H.INTERNAL_ABORTED:return ge.PlaybackInternalAborted;case H.UNKNOWN:default:return ge.Unknown}}function Kd(t,e,i){let n={},r={error_type:e.type,resource:e.url||t.original_src,isFatal:e.fatal};return e.fatal?(e.type===i.ErrorTypes.MEDIA_ERROR&&(r.showErrorUI=!1,n.retry=ac,n.retryTimeout=0),[i.ErrorTypes.KEY_SYSTEM_ERROR,i.ErrorTypes.MUX_ERROR,i.ErrorTypes.OTHER_ERROR].includes(e.type)&&(n.retry=Va),Object.assign(r,{retryOpts:n})):(n.retry=Va,Object.assign(r,{retryOpts:n}))}var la,ca;function oc(t,e){let i=function(){try{return localStorage.getItem("flowplayer/debug")}catch(r){return""}}(),n=(r,...s)=>{try{let a=(e==null?void 0:e.debug)||i;a&&t.match(a)&&console.log(`flowplayer/${t} -- ${r}`,...s)}catch(a){console.warn(a)}};return n.log=n,n}(function(t){t[t.LOW=1]="LOW",t[t.MEDIUM=2]="MEDIUM",t[t.HIGH=4]="HIGH"})(la||(la={})),function(t){t[t.FRAGMENT_ERRORS=0]="FRAGMENT_ERRORS",t[t.STALE_MANIFEST=1]="STALE_MANIFEST"}(ca||(ca={}));let Vd=oc("hls:failover");class lc{constructor(){this.playlistCounts={},this.fragmentFailures={},this.ttlMilliseconds=3000}setHls(t){this.hls=t}reset(){return this.playlistCounts={},this.fragmentFailures={},this}failover(t){var e,i;this.reset();let n=this.hls;if(!n)return;let{levelController:r,streamController:s}=n,a=r.steering;if(!r||!s||!a)return;let l=r.currentLevel;if(!l)return;let d=a.levels.filter((u)=>u.pathwayId!==l.pathwayId);d.length&&((e=n.media)===null||e===void 0||e.dispatchEvent(new CustomEvent("hls/failover",{detail:{reason:t,from:(i=l.details)===null||i===void 0?void 0:i.url}})),r._levels=s.levels=d)}currentLevel(){var t;return(t=this.hls)===null||t===void 0?void 0:t.levels[this.hls.currentLevel]}nextTTL(){var t;let e=Date.now()+this.ttlMilliseconds,i=this.currentLevel();if(!i)return e;let n=(t=i.details)===null||t===void 0?void 0:t.averagetargetduration;return n?Date.now()+500*n:e}ensurePlaylistUpdating(t,e){this.playlistCounts[t]||(this.playlistCounts[t]={checksum:e,count:0,ttl:this.nextTTL()});let i=this.playlistCounts[t];Date.now()<i.ttl||(i.count=i.checksum===e?i.count+1:0,i.ttl=this.nextTTL(),i.checksum=e,i.count<3||(Vd(`${t} / no change in ${i.count} tries`,this.playlistCounts),this.failover(ca.STALE_MANIFEST)))}trackFragmentError(t){let e=this.fragmentFailures[t]||0;this.fragmentFailures[t]=e+1,this.fragmentFailures[t]>2&&this.failover(ca.FRAGMENT_ERRORS)}createPlaylistLoader(t){let e=this;return class extends ni.DefaultConfig.loader{load(i,n,r){let s=r.onSuccess;r.onSuccess=({data:a,url:l},...d)=>{(i==null?void 0:i.type)==="manifest"&&(t.manifest=a),e.ensurePlaylistUpdating(l,a),s({data:a,url:l},...d)},super.load(i,n,r)}}}createFragmentLoader(){let t=this;return class extends ni.DefaultConfig.loader{load(e,i,n){let r=n.onError;n.onError=(s)=>{t.trackFragmentError(s.url),r(...arguments)},super.load(e,i,n)}}}}let Ss=oc("hls");function Wd(t,e){if(t.drm&&location.protocol!=="https:"&&location.hostname!=="localhost"&&location.hostname!=="127.0.0.1"){let i=new oa("drm is unavailable in http contexts",ge.ContentProtectionKeySystemUnavailable,{resource:t.src,isFatal:!0,retryOpts:{retry:Va}});return e.emit("flowplayer:error",{error:i}),!1}return!0}function jd(t,e,i,n){if(!t.reaper||!i.src)return;if(t.hls&&t.hls.destroy(),!Wd(i,t))return;(function(r,s,a,l,d){(function(u,f){u.on(ni.Events.AUDIO_TRACKS_UPDATED,function(S,T){f.emit("audio:tracks",T.audioTracks)}),u.on(ni.Events.AUDIO_TRACK_SWITCHING,function(S,T){f.emit("audio:update",T)}),u.on(ni.Events.MANIFEST_PARSED,function(S,T){T.audioTracks&&f.emit("audio:tracks",T.audioTracks)});let E=function(S){var T;let _=(T=S.data)===null||T===void 0?void 0:T.id;typeof _=="number"&&_!=u.audioTrack&&setTimeout(function(){u.audioTrack=_},0)};f.on("audio:set",E),f.on("src",function(){f.off("audio:set",E)})})(r,l),function(u,f){u.on(ni.Events.NON_NATIVE_TEXT_TRACKS_FOUND,(E,S)=>{u.subtitleTracks.length||f.emit("tracks:text:all",S)}),u.on(ni.Events.SUBTITLE_TRACKS_UPDATED,(E,S)=>{f.emit("tracks:text:all",{tracks:S.subtitleTracks.map((T)=>Object.assign({},{subtitleTrack:T}))})}),u.on(ni.Events.CUES_PARSED,(E,S)=>{f.emit("cues:parsed",S)})}(r,l),function(u,f,E){u.on("src",function(){u.hls&&(u.hls.destroy(),delete u.hls,f.manifest=void 0)}),u.on("reap",function(){E&&E.destroy()})}(l,a,r),function(u,f,E){let S={media_recovers:0,audio_swaps:0},T=0;u.on("error",(_)=>{var D,w,x;u.hls&&((D=u==null?void 0:u.error)===null||D===void 0?void 0:D.code)===MediaError.MEDIA_ERR_DECODE&&(_.preventDefault(),++T,u.emit("flowplayer:error",{error:new oa((x=(w=u==null?void 0:u.error)===null||w===void 0?void 0:w.message)!==null&&x!==void 0?x:"An error occurred while decoding the media.",ge.PlaybackVideoDecodeError,{isFatal:!0,showErrorUI:T>=5,retryOpts:{retry:T<5?ac:Va,retryTimeout:0}})}))}),u.on("canplay",()=>T=0),u.on("retry",(_)=>{var D,w,x;if(!u.hls)return;_.preventDefault();let M=_.detail.error,V=M.config;return M.flowplayerErrorCode===ge.PlaybackVideoDecodeError?(f.config.autoStartLoad=!0,f.recoverMediaError(),u.setState("is-waiting",!1)):V.error_type?V.error_type===ln.ErrorTypes.NETWORK_ERROR?(E.src&&f.loadSource(u.original_src),V.autoplay?u.togglePlay(!0):(u.setState("is-waiting",!1),u.emit("retry/done"))):V.error_type===ln.ErrorTypes.MEDIA_ERROR?(Ss("recovering from "+V.error_type),S.media_recovers+5000>Date.now()&&S.audio_swaps==0?((D=u.hls)===null||D===void 0||D.swapAudioCodec(),Ss(`calling swapAudioCodec() : {count=${S.audio_swaps}}`),S.audio_swaps++,S.media_recovers=Date.now(),(w=u.hls)===null||w===void 0||w.recoverMediaError(),u.setState("is-waiting",!1)):(S.media_recovers=Date.now(),S.audio_swaps=0,(x=u.hls)===null||x===void 0||x.recoverMediaError(),u.setState("is-waiting",!1))):void 0:void 0}),f.on(ln.Events.ERROR,function(_,D){var w;u.reaper!=0&&(function(x,M,V){x.emit("flowplayer:error",{error:new oa(M.error.message,Hd(M.details),Kd(x,M,V))})}(u,D,ln),D.fatal&&([ln.ErrorTypes.NETWORK_ERROR,ln.ErrorTypes.MEDIA_ERROR].includes(D.type)||(w=u.hls)===null||w===void 0||w.destroy()))})}(l,r,d),function(u,f){u.on("remotesession:started",()=>{u.hls&&(u.hls.stopLoad(),delete u.opts.start_time)}),u.on("remotesession:ended",(E)=>{if(!f)return;if(!u.opts.live)return da(u,E.detail.currentTime);E.preventDefault();let S=function(T){let _=T.currentTime,D=$d(T);return{progress:Math.min(100,Math.max(0,(_-D.tail)/(D.head-D.tail)*100)),is_live:_-D.head>=-10}}(u).progress;f.once(ln.Events.LEVEL_LOADED,()=>{if(u.hls!==f)return;let T=u.live_state.dvr_window||0,_=f.liveSyncPosition||u.seekable.end(0);if(u.hasState("no-timeline")||isNaN(S))return u.currentTime=_;u.currentTime=_-T*((100-S)/100)}),da(u)})}(l,r),function(u,f,E,S,T){let _;u.once(ni.Events.LEVEL_LOADING,function(){f.emit("content:loadstart")}),u.on(ln.Events.MANIFEST_PARSED,function(x,M){let V=cc(M.levels);f.emit("qualities",V),f.emit("parse:video:tracks",{url:T.src,manifest:S.manifest}),function(X,ot,et){var vt,St;if(!X.hls)return;Ss("Initializer::maybe_start_load_with_quality (start_quality, preload): (%d, %s)",ot.start_quality,ot.preload),ot.start_quality!==void 0&&et.length&&(la.HIGH&ot.start_quality&&(X.hls.startLevel=et[0].level),la.LOW&ot.start_quality&&(X.hls.startLevel=et[et.length-1].level),la.MEDIUM&ot.start_quality&&(X.hls.startLevel=et[Math.ceil(et.length/2)-1].level));let nt=((vt=ot.hls)===null||vt===void 0?void 0:vt.maxBufferSize)||1024,it=((St=ot.hls)===null||St===void 0?void 0:St.maxBufferLength)||30;Ss("Setting maxBufferSize to %d",nt),X.hls.config.maxBufferSize=nt,ot.preload==="metadata"&&Ss("preload === metadata, setting maxBufferLength to 1sec"),X.hls.config.maxBufferLength=ot.preload==="metadata"?1:it,X.once("playing",()=>{Ss("Playback started, set maxBufferLenght to %d",it),X.hls&&(X.hls.config.maxBufferLength=it)}),(ot.preload!=="none"||ot.autoplay&&X.hasState("is-in-viewport"))&&da(X,ot.start_time||-1)}(f,E,V.slice(0,-1))}),f.on(["beforeplay","viewenter"],(x)=>{if(f.hls&&!f.hasState("is-casting")&&!f.hasState("is-loaded")&&E.preload==="none"&&(x.type!=="viewenter"||E.autoplay))return f.hls.levels.length?da(f,E.start_time||-1):void f.hls.once(ln.Events.MANIFEST_PARSED,()=>{setTimeout(()=>{da(f,E.start_time||-1)},0)})}),u.on(ln.Events.LEVEL_SWITCHING,(x,M)=>{if(u.nextLoadLevel===_)return;_=u.nextLoadLevel;let V=u.levels[u.currentLevel],X=u.levels[M.level];f.emit("qualitychange",{before:V,after:X,plugin:"hls",automatic:u.autoLevelEnabled,downscale:X.bitrate<V.bitrate})});let D=function(x){var M;let V=(M=x.data)===null||M===void 0?void 0:M.level;typeof V=="number"&&(u.levels[V]||V===-1?u.nextLevel=V:console.error(new Error("skipping invalid quality: "+x.data)))};f.on("quality:set",D),f.on("src",function(){f.off("quality:set",D)}),f.on("tracks:video:select",function(x){var M,V;let X=x.detail.track,ot=(M=f.tracks)===null||M===void 0?void 0:M.find((St)=>St.selected&&St!==X),et=f.hls;if(!ot||!X||!et)return;ot.selected=!1;let vt=(V=X.data)===null||V===void 0?void 0:V.slice(0).map((St)=>(St.details=void 0,St));et.stopLoad(),et.levelController._levels=et.streamController.levels=vt,et.currentLevel=-1,f.emit("qualities",cc(vt)),f.hasState("is-starting")&&!f.hasState("is-loading")||et.startLoad()});let w=f.opt("start_time");w&&f.once("loadedmetadata",function(){f.currentTime=w})}(r,l,s,a,d),function(u,f){u.on(ni.Events.FRAG_PARSING_METADATA,function(E,S){f.emit("ssai:hls:metadata",S)})}(r,l),function(u,f){u.on(ni.Events.BUFFER_CREATED,(E,S)=>{let T=S.tracks.video||S.tracks.audiovideo;if(!T)return f.emit("audioonlysource");let _=T==null?void 0:T.metadata.height,D=T==null?void 0:T.metadata.width;!f.opt("ratio")&&_&&D&&f.setOpts({ratio:D+":"+_})})}(r,l),function(u,f,E){let S="live"in E==0;f.on(ln.Events.LEVEL_LOADED,function(T,_){var D,w;S&&u.setOpts({live:_.details.live});let x=(w=(D=f.levels[_.level])===null||D===void 0?void 0:D.details)===null||w===void 0?void 0:w.fragments;if(!x)return;let M=x[1].start||0,V=f.liveSyncPosition||x[x.length-1].end;u.emit("dvr/window",V-M)})}(l,r,s)})(function(r,s,a,l){var d,u,f,E,S,T,_,D;let w=new lc,x=function(V){return Object.assign(Object.assign({autoStartLoad:!1,levelLoadingMaxRetry:1},V.hls),{startPosition:V.start_time||-1})}(r);x.renderTextTracksNatively=!1,x.captionsTextTrack1Label=(u=(d=r==null?void 0:r.hls)===null||d===void 0?void 0:d.captionsTextTrack1Label)!==null&&u!==void 0?u:"CC1",x.captionsTextTrack2Label=(E=(f=r==null?void 0:r.hls)===null||f===void 0?void 0:f.captionsTextTrack2Label)!==null&&E!==void 0?E:"CC2",x.captionsTextTrack3Label=(T=(S=r==null?void 0:r.hls)===null||S===void 0?void 0:S.captionsTextTrack3Label)!==null&&T!==void 0?T:"CC3",x.captionsTextTrack4Label=(D=(_=r==null?void 0:r.hls)===null||_===void 0?void 0:_.captionsTextTrack4Label)!==null&&D!==void 0?D:"CC4",x.pLoader=w.createPlaylistLoader(s),x.fLoader=w.createFragmentLoader();let M=a.hls=new ln(x);return w.setHls(M),M.subtitleDisplay=!1,M.attachMedia(a),M.loadSource(l.src),setTimeout(()=>a.emit("hls:attached",{hls:a.hls})),M}(e,n,t,i),e,n,t,i)}function da(t,e){var i;!t.hasState("is-loaded")&&t.setState("is-loading",!0),(i=t.hls)===null||i===void 0||i.startLoad(e)}function cc(t){let e=t.map((i,n)=>Object.assign(i,{level:n})).sort((i,n)=>n.width-i.width);return t.length>1&&t.every((i)=>i.bitrate!==void 0)&&e.push({name:"AUTO",level:-1,width:0,height:0}),e}var ua;let qd=((ua=class t{init(){}onload(e,i,n,r){jd(n,e,r,this)}wants(e,i,n){return ni.isSupported()&&function({src:r="",type:s="",drm:a},l){let d=l==null?void 0:l.hls,u=Boolean(d==null?void 0:d.native);return(!Bd||!u)&&(!(a&&!Object.keys(a).find((f)=>Md(f)))&&(!(!s||!Fd.includes(s))||Ud(r)))}(i,n)}}).pluginName="hls",ua.events=Pd,ua.version=ni.version,ua.failover={Reasons:ca},ua);return function(t,e){if(typeof lo=="object"&&typeof co!="undefined")return e;if(document.currentScript===null)return e;"flowplayer"in t||(t.flowplayer={extensions:[]});let i=t.flowplayer;return typeof i=="function"?(i(e),e):(Array.isArray(i.extensions)||(i.extensions=[]),~i.extensions.indexOf(e)||i.extensions.push(e),e)}(window,qd)})});var Yc=gn((uo,ho)=>{(function(o,p){typeof uo=="object"&&typeof ho!="undefined"?ho.exports=p():typeof define=="function"&&define.amd?define(p):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.qsel=p())})(uo,function(){function o(ft,Ct,Mt){let lt=function(C){return Array.isArray(C)?C.slice(0):C.split(".")}(Ct);for(;lt.length;){if(ft==null)return Mt;let C=lt.shift();if(typeof C!="string")return Mt;ft=ft[C]}return ft==null?Mt:ft}let p=(ft,Ct)=>new(((Mt,lt)=>{let C=Mt.get(lt);if(!C)throw new Error(`no flowplayer component with the name ${lt} exists`);let W=window.customElements.get(lt);if(!W)throw new Error(`no default flowplayer component with the name ${lt} exists`);let G=window.customElements.get(C);return typeof G!="function"?W:G})(ft._customElements,Ct))(ft);class b extends HTMLElement{constructor(ft){super(),this.player=ft}}let k="fp-on",L="fp-invis";class P extends b{constructor(ft){super(ft),this.player=ft,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=z(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(Ct)=>{if(Ct.defaultPrevented)return;Ct.preventDefault();let Mt=this.menuContainer.open;Mt||(U(),document.active_menu=this.menuContainer),this.menuContainer.open=!Mt,ft.root.classList.toggle("has-menu-opened",!Mt),this.summaryEle.setAttribute("aria-expanded",Mt?"false":"true")}),this.addEventListener("focusin",(Ct)=>{let Mt=Ct.target;Mt instanceof HTMLLIElement&&Mt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(Ct)=>{let Mt=Ct.target;Mt instanceof HTMLLIElement&&Mt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(ft){if(this.className=ft.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=ft.id||z()),this.summaryEle.setAttribute("aria-label",ft.menuTitle||"Menu"),ft.summaryTitle&&(this.summaryEle.textContent=ft.summaryTitle),ft.summaryIcon){let Ct=p(this.player,ft.summaryIcon);Ct.setAttribute("tabindex",""),this.summaryEle.append(Ct)}ft.menuTitle&&(this.menuTitle.textContent=ft.menuTitle),this.menu.classList.toggle("fp-icons",!!ft.icons),this.addEventListener(ft.options_event,(Ct)=>{this.render(Ct.data)}),ft.item_selected_event&&this.addEventListener(ft.item_selected_event,(Ct)=>{Ct.data!==void 0&&this.select_item(Ct.data.selected_index)})}render(ft){this.olEle&&(this.olEle.innerHTML="",ft&&ft.forEach(this.menuOption,this),this.toggle_visibility(!(ft==null?void 0:ft.length)))}menuOption(ft,Ct){let Mt=document.createElement("li");Mt.setAttribute("role","menuitem"),Mt.setAttribute("aria-selected","false"),Mt.setAttribute("tabindex","0"),ft.icon&&Mt.append(ft.icon);let lt=document.createElement("span");lt.textContent=ft.text,Mt.append(lt),Mt.addEventListener("click",()=>{this.select_item(Ct),typeof ft.onclick=="function"&&ft.onclick()}),this.olEle.appendChild(Mt),ft.selected&&this.select_item(Ct)}select_item(ft){this.options.forEach((Ct,Mt)=>{Ct.classList.toggle(k,Mt===ft)})}unselect_item(){this.options.forEach((ft)=>{ft.classList.remove(k)})}toggle_visibility(ft){this.classList.toggle(L,ft),this.menu.style.setProperty("display",ft?"none":"flex")}}function U(){Array.from(document.querySelectorAll(".fp-engine")).forEach((ft)=>{var Ct;let Mt=ft.root.querySelector("details[open].fp-menu-container");Mt&&(Mt.open=!1,(Ct=Mt.querySelector("summary"))===null||Ct===void 0||Ct.removeAttribute("aria-expanded"),ft.root.classList.toggle("has-menu-opened",!1))})}function z(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function j(ft,Ct,Mt){let lt=function(C,W){let G=new CustomEvent(C,{detail:W,cancelable:!0});return W&&Object.defineProperty(G,"data",{get:()=>W}),G}(Ct,Mt);return ft.dispatchEvent(lt),ft}document.addEventListener("click",function(ft){this.active_menu&&!ft.composedPath().includes(this.active_menu)&&(U(),this.active_menu=void 0)}),function(){let ft=!1;try{let Ct=Object.defineProperty({},"passive",{get:function(){ft=!0}});window.addEventListener("testPassive",null,Ct),window.removeEventListener("testPassive",null,Ct)}catch(Ct){}}();var Nt,ne=Object.freeze({__proto__:null,SET_QUALITY:"quality:set",TRACKS:"quality:tracks",SWITCH:"quality:update",QUALITIES:"qualities"});let A=((Nt=class ft{constructor(Ct){((Mt,lt,C)=>{window.customElements.get(lt)||window.customElements.define(lt,C),Mt.customElements.get(lt)||Mt.customElements.set(lt,lt)})(Ct,"flowplayer-quality-menu",P)}init(Ct,Mt,lt){if(Ct.qsel===!1)return;let C=p(lt,"flowplayer-quality-menu");C instanceof P&&C.setMenuAttrs({summaryTitle:"HD",menuTitle:lt.i18n("qsel.menu_title"),class:"fp-qsel",options_event:Nt.events.TRACKS,item_selected_event:Nt.events.SWITCH}),lt.on("mount",function(){var W;(W=function(G,J){let st=G._customElements.get(J);return st&&G.root.querySelector(st)||void 0}(lt,lt.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||W===void 0||W.append(C)}),lt.on("qualities",(W)=>{if(!Array.isArray(W.detail))return;let G=W.detail,J=o(Ct,"qsel.labels",[]);j(C,Nt.events.TRACKS,G.flatMap((st,pt)=>typeof J[pt]!="boolean"||J[pt]?{text:H(st,J[pt]),onclick:Ft.bind(0,lt,st)}:[])),C instanceof P&&C.toggle_visibility(G.length<2)})}}).pluginName="qsel",Nt.events=ne,Nt);function Ft(ft,Ct){ft.emit("quality:set",Ct)}function H(ft,Ct){return Ct||(ft.height?`${ft.height}p${ft.height>719?" HD":""}`:ft.width?`${ft.width}p${ft.height>1279?" HD":""}`:("name"in ft)&&ft.name?ft.name:"0p")}return function(ft,Ct){if(typeof uo=="object"&&typeof ho!="undefined")return Ct;if(document.currentScript===null)return Ct;"flowplayer"in ft||(ft.flowplayer={extensions:[]});let Mt=ft.flowplayer;return typeof Mt=="function"?(Mt(Ct),Ct):(Array.isArray(Mt.extensions)||(Mt.extensions=[]),~Mt.extensions.indexOf(Ct)||Mt.extensions.push(Ct),Ct)}(window,A)})});var zc=gn((fo,mo)=>{(function(o,p){typeof fo=="object"&&typeof mo!="undefined"?mo.exports=p():typeof define=="function"&&define.amd?define(p):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.share=p())})(fo,function(){let o={name:"fp-facebook"},p={name:"fp-link"},b={name:"fp-share"},k={name:"fp-embed"},L={name:"fp-twitter"};function P(dt,mt,Dt){let te=function(re){return Array.isArray(re)?re.slice(0):re.split(".")}(mt);for(;te.length;){if(dt==null)return Dt;let re=te.shift();if(typeof re!="string")return Dt;dt=dt[re]}return dt==null?Dt:dt}function U(){try{return(document.querySelector("meta[name='description']")||{content:""}).content}catch(dt){return""}}function z(dt){if(typeof dt.link=="string")return dt.link;let mt=document.querySelector("link[rel=canonical]");return mt?mt.href:window.location.toString()}class j extends HTMLElement{constructor(dt){super(),this.player=dt}}class Nt extends j{constructor(dt,mt){super(dt),this.classList.add("fp-icon",mt.name),mt.title&&this.setAttribute("title",mt.title),mt.title&&this.setAttribute("aria-label",mt.title),mt.translation_key&&this.setAttribute("aria-label",dt.i18n(mt.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}let ne=(dt,mt)=>new(((Dt,te)=>{let re=Dt.get(te);if(!re)throw new Error(`no flowplayer component with the name ${te} exists`);let we=window.customElements.get(te);if(!we)throw new Error(`no default flowplayer component with the name ${te} exists`);let se=window.customElements.get(re);return typeof se!="function"?we:se})(dt._customElements,mt))(dt),A=(dt,mt,Dt)=>{window.customElements.get(mt)||window.customElements.define(mt,Dt),dt.customElements.get(mt)||dt.customElements.set(mt,mt)},Ft="fp-on",H="fp-invis";class ft extends j{constructor(dt){super(dt),this.player=dt,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=Mt(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(mt)=>{if(mt.defaultPrevented)return;mt.preventDefault();let Dt=this.menuContainer.open;Dt||(Ct(),document.active_menu=this.menuContainer),this.menuContainer.open=!Dt,dt.root.classList.toggle("has-menu-opened",!Dt),this.summaryEle.setAttribute("aria-expanded",Dt?"false":"true")}),this.addEventListener("focusin",(mt)=>{let Dt=mt.target;Dt instanceof HTMLLIElement&&Dt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(mt)=>{let Dt=mt.target;Dt instanceof HTMLLIElement&&Dt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(dt){if(this.className=dt.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=dt.id||Mt()),this.summaryEle.setAttribute("aria-label",dt.menuTitle||"Menu"),dt.summaryTitle&&(this.summaryEle.textContent=dt.summaryTitle),dt.summaryIcon){let mt=ne(this.player,dt.summaryIcon);mt.setAttribute("tabindex",""),this.summaryEle.append(mt)}dt.menuTitle&&(this.menuTitle.textContent=dt.menuTitle),this.menu.classList.toggle("fp-icons",!!dt.icons),this.addEventListener(dt.options_event,(mt)=>{this.render(mt.data)}),dt.item_selected_event&&this.addEventListener(dt.item_selected_event,(mt)=>{mt.data!==void 0&&this.select_item(mt.data.selected_index)})}render(dt){this.olEle&&(this.olEle.innerHTML="",dt&&dt.forEach(this.menuOption,this),this.toggle_visibility(!(dt==null?void 0:dt.length)))}menuOption(dt,mt){let Dt=document.createElement("li");Dt.setAttribute("role","menuitem"),Dt.setAttribute("aria-selected","false"),Dt.setAttribute("tabindex","0"),dt.icon&&Dt.append(dt.icon);let te=document.createElement("span");te.textContent=dt.text,Dt.append(te),Dt.addEventListener("click",()=>{this.select_item(mt),typeof dt.onclick=="function"&&dt.onclick()}),this.olEle.appendChild(Dt),dt.selected&&this.select_item(mt)}select_item(dt){this.options.forEach((mt,Dt)=>{mt.classList.toggle(Ft,Dt===dt)})}unselect_item(){this.options.forEach((dt)=>{dt.classList.remove(Ft)})}toggle_visibility(dt){this.classList.toggle(H,dt),this.menu.style.setProperty("display",dt?"none":"flex")}}function Ct(){Array.from(document.querySelectorAll(".fp-engine")).forEach((dt)=>{var mt;let Dt=dt.root.querySelector("details[open].fp-menu-container");Dt&&(Dt.open=!1,(mt=Dt.querySelector("summary"))===null||mt===void 0||mt.removeAttribute("aria-expanded"),dt.root.classList.toggle("has-menu-opened",!1))})}function Mt(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function lt(dt,mt,Dt){let te=function(re,we){let se=new CustomEvent(re,{detail:we,cancelable:!0});return we&&Object.defineProperty(se,"data",{get:()=>we}),se}(mt,Dt);return dt.dispatchEvent(te),dt}function C(dt,mt){let Dt=dt._customElements.get(mt);return Dt&&dt.root.querySelector(Dt)||void 0}document.addEventListener("click",function(dt){this.active_menu&&!dt.composedPath().includes(this.active_menu)&&(Ct(),this.active_menu=void 0)}),function(){let dt=!1;try{let mt=Object.defineProperty({},"passive",{get:function(){dt=!0}});window.addEventListener("testPassive",null,mt),window.removeEventListener("testPassive",null,mt)}catch(mt){}}();let W="flowplayer-share-menu";var G;let J=((G=class dt{constructor(mt){this.umd=mt,this.share_options=[],A(mt,W,ft),A(this.umd,"flowplayer-facebook-icon",class extends Nt{constructor(Dt){super(Dt,o)}}),A(this.umd,"flowplayer-twitter-icon",class extends Nt{constructor(Dt){super(Dt,L)}}),A(this.umd,"flowplayer-link-icon",class extends Nt{constructor(Dt){super(Dt,p)}}),A(this.umd,"flowplayer-embed-icon",class extends Nt{constructor(Dt){super(Dt,k)}}),A(this.umd,"flowplayer-share-icon",class extends Nt{constructor(Dt){super(Dt,b)}})}init(mt,Dt,te){let re=ne(te,W);re instanceof ft&&re.setMenuAttrs({menuTitle:te.i18n("share.menu_title"),class:"fp-share-menu fp-togglable",summaryIcon:"flowplayer-share-icon",icons:!0,options_event:G.events.OPTIONS});let we={prev_config:0,webshare_listener:0};te.on("mount",function(){var se;(se=C(te,"flowplayer-header-left-zone"))===null||se===void 0||se.append(re),re instanceof ft&&re.menuContainer.addEventListener("toggle",function(){Dt.classList.toggle("is-share-menu",this.open);let q=C(te,"flowplayer-control");this.open&&(Dt.classList.contains("is-small")?te.pause():q&&function(tt,Lt){if(!Lt)return;tt.menu.style.maxHeight=Lt.getBoundingClientRect().top+parseFloat(window.getComputedStyle(Lt).getPropertyValue("padding"))-tt.menuContainer.getBoundingClientRect().bottom+"px"}(re,q))})}),te.on("config",(se)=>{let q=P(se,"data.share",{});if(q===!1)return re instanceof ft&&void re.classList.remove("webshare-enabled");if(we.prev_config===q)return;if(we.prev_config=q,re instanceof ft&&function(){try{return window.location.protocol==="https:"&&typeof navigator.share=="function"}catch(Lt){return!1}}()&&P(q,"web_share",!0))return function(Lt){Lt.classList.add("webshare-enabled")}(re),we.webshare_listener||function(Lt,_t,Gt){Gt.webshare_listener=!0,_t.addEventListener("click",function(){if(!_t.classList.contains("webshare-enabled"))return;_t.menuContainer.open=!1,navigator.share({title:P(Lt,"share.title",document.title),text:P(Lt,"share.text",U()),url:z(P(Lt,"share",{}))}).catch(function(){})})}(mt,re,we);this.share_options=[];let tt=typeof q.link=="string"?q.link:window.location.toString();if(q.iframe){let Lt=typeof q.iframe=="string"?q.iframe:tt;this.share_options.push(st(te,re,"share.embed",gt.bind(null,Lt,te),ne(te,"flowplayer-embed-icon")))}q.link&&this.share_options.push(st(te,re,"share.link",Rt.bind(null,tt),ne(te,"flowplayer-link-icon"))),q.facebook&&this.share_options.push(st(te,re,"Facebook",Jt.bind(null,tt),ne(te,"flowplayer-facebook-icon"))),q.twitter&&this.share_options.push(st(te,re,"Twitter",xt.bind(null,tt),ne(te,"flowplayer-twitter-icon"))),lt(re,G.events.OPTIONS,this.share_options)})}add_options(mt,...Dt){let te=mt.root.querySelector(W);te&&Dt.forEach((re)=>{let we=st(mt,te,re.text,re.onclick,re.icon);te.menuOption(we,te.options.length)})}}).pluginName="share",G.events={OPTIONS:"share:options"},G);function st(dt,mt,Dt,te,re){return{text:pt(dt,Dt),icon:re,onclick:at.bind(null,dt,mt,te)}}function pt(dt,mt){return mt.indexOf("share.")===0?dt.i18n(mt):mt}function at(dt,mt,Dt){mt instanceof ft&&mt.unselect_item();let te=Dt();te.success&&te.message&&dt.message&&dt.emit(dt.message.events.SHOW_MESSAGE,{message:te.message})}function gt(dt,mt){let Dt=mt.videoHeight/mt.videoWidth;return Rt('<div style="position:relative;width:100%;display:inline-block;"><iframe src="__IFRAME_SRC__" allowfullscreen style="border:none;position:absolute;top:0;left:0;width:100%;height:100%;"></iframe><div style="padding-top: __RATIO__%;"></div></div>'.replace("__IFRAME_SRC__",encodeURI(dt)).replace("__RATIO__",""+100*Dt))}function Rt(dt){let mt=document.createElement("textarea");mt.setAttribute("style","position:absolute;opacity:0"),mt.value=dt;let Dt=document.body;Dt.append(mt),mt.select();let te=document.execCommand("copy");return Dt.removeChild(mt),{success:te,message:te?"<trans share.clipboard_success trans>":"<trans share.clipboard_failure trans>"}}function Jt(dt){return ce("https://www.facebook.com/sharer.php?u="+encodeURIComponent(dt)),{success:!0}}function xt(dt){return ce("https://twitter.com/intent/tweet?url="+encodeURIComponent(dt)),{success:!0}}function ce(dt){let mt,Dt=screen.height,te=screen.width,re=Math.round(te/2-275);mt=0,Dt>420&&(mt=Math.round(Dt/2-210)),window.open(dt,"sharer","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,left="+re+",top="+mt)}return function(dt,mt){if(typeof fo=="object"&&typeof mo!="undefined")return mt;if(document.currentScript===null)return mt;"flowplayer"in dt||(dt.flowplayer={extensions:[]});let Dt=dt.flowplayer;return typeof Dt=="function"?(Dt(mt),mt):(Array.isArray(Dt.extensions)||(Dt.extensions=[]),~Dt.extensions.indexOf(mt)||Dt.extensions.push(mt),mt)}(window,J)})});var Xc=gn((go,po)=>{(function(o,p){typeof go=="object"&&typeof po!="undefined"?po.exports=p():typeof define=="function"&&define.amd?define(p):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.subtitles=p())})(go,function(){function o(q,tt,Lt){let _t=function(Gt){return Array.isArray(Gt)?Gt.slice(0):Gt.split(".")}(tt);for(;_t.length;){if(q==null)return Lt;let Gt=_t.shift();if(typeof Gt!="string")return Lt;q=q[Gt]}return q==null?Lt:q}function p(q,tt){q.innerHTML="",tt.forEach(function(Lt){let _t=document.createElement("pre");_t.classList.add("fp-cue"),function(Gt,Oe){let Re=Gt.style,ai=Oe.size;Re.setProperty("--caption-size",ai.toString());let Qe=Oe.position;Qe&&Qe!=="auto"&&Oe?Re.setProperty("--caption-position",Qe.toString()):Re.removeProperty("--caption-position");let Ge="captions-align-"+Oe.align;Array.from(Gt.classList).forEach(function(Se){Se!=Ge&&(Se=="captions-vertical"&&Oe.vertical||Se.startsWith("captions")&&Gt.classList.remove(Se))}),Gt.classList.add(Ge),Gt.classList.toggle("captions-vertical",!!Oe.vertical)}(q,Lt),_t.appendChild(Lt.getCueAsHTML()),q.appendChild(_t)})}function b(){}let k="is-source-processing",L=(q,tt)=>new(((Lt,_t)=>{let Gt=Lt.get(_t);if(!Gt)throw new Error(`no flowplayer component with the name ${_t} exists`);let Oe=window.customElements.get(_t);if(!Oe)throw new Error(`no default flowplayer component with the name ${_t} exists`);let Re=window.customElements.get(Gt);return typeof Re!="function"?Oe:Re})(q._customElements,tt))(q),P=(q,tt,Lt)=>{window.customElements.get(tt)||window.customElements.define(tt,Lt),q.customElements.get(tt)||q.customElements.set(tt,tt)};function U(q,tt,Lt){let _t=function(Gt,Oe){let Re=new CustomEvent(Gt,{detail:Oe,cancelable:!0});return Oe&&Object.defineProperty(Re,"data",{get:()=>Oe}),Re}(tt,Lt);return q.dispatchEvent(_t),q}function z(q,tt){let Lt=q._customElements.get(tt);return Lt&&q.root.querySelector(Lt)||void 0}(function(){let q=!1;try{let tt=Object.defineProperty({},"passive",{get:function(){q=!0}});window.addEventListener("testPassive",null,tt),window.removeEventListener("testPassive",null,tt)}catch(tt){}})();class j extends HTMLElement{constructor(q){super(),this.player=q}}let Nt="fp-on",ne="fp-invis";class A extends j{constructor(q){super(q),this.player=q,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=H(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(tt)=>{if(tt.defaultPrevented)return;tt.preventDefault();let Lt=this.menuContainer.open;Lt||(Ft(),document.active_menu=this.menuContainer),this.menuContainer.open=!Lt,q.root.classList.toggle("has-menu-opened",!Lt),this.summaryEle.setAttribute("aria-expanded",Lt?"false":"true")}),this.addEventListener("focusin",(tt)=>{let Lt=tt.target;Lt instanceof HTMLLIElement&&Lt.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(tt)=>{let Lt=tt.target;Lt instanceof HTMLLIElement&&Lt.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(q){if(this.className=q.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=q.id||H()),this.summaryEle.setAttribute("aria-label",q.menuTitle||"Menu"),q.summaryTitle&&(this.summaryEle.textContent=q.summaryTitle),q.summaryIcon){let tt=L(this.player,q.summaryIcon);tt.setAttribute("tabindex",""),this.summaryEle.append(tt)}q.menuTitle&&(this.menuTitle.textContent=q.menuTitle),this.menu.classList.toggle("fp-icons",!!q.icons),this.addEventListener(q.options_event,(tt)=>{this.render(tt.data)}),q.item_selected_event&&this.addEventListener(q.item_selected_event,(tt)=>{tt.data!==void 0&&this.select_item(tt.data.selected_index)})}render(q){this.olEle&&(this.olEle.innerHTML="",q&&q.forEach(this.menuOption,this),this.toggle_visibility(!(q==null?void 0:q.length)))}menuOption(q,tt){let Lt=document.createElement("li");Lt.setAttribute("role","menuitem"),Lt.setAttribute("aria-selected","false"),Lt.setAttribute("tabindex","0"),q.icon&&Lt.append(q.icon);let _t=document.createElement("span");_t.textContent=q.text,Lt.append(_t),Lt.addEventListener("click",()=>{this.select_item(tt),typeof q.onclick=="function"&&q.onclick()}),this.olEle.appendChild(Lt),q.selected&&this.select_item(tt)}select_item(q){this.options.forEach((tt,Lt)=>{tt.classList.toggle(Nt,Lt===q)})}unselect_item(){this.options.forEach((q)=>{q.classList.remove(Nt)})}toggle_visibility(q){this.classList.toggle(ne,q),this.menu.style.setProperty("display",q?"none":"flex")}}function Ft(){Array.from(document.querySelectorAll(".fp-engine")).forEach((q)=>{var tt;let Lt=q.root.querySelector("details[open].fp-menu-container");Lt&&(Lt.open=!1,(tt=Lt.querySelector("summary"))===null||tt===void 0||tt.removeAttribute("aria-expanded"),q.root.classList.toggle("has-menu-opened",!1))})}function H(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener("click",function(q){this.active_menu&&!q.composedPath().includes(this.active_menu)&&(Ft(),this.active_menu=void 0)});let ft=["255, 255, 255","255, 255, 0","0, 255, 0","0, 255, 255","0, 0, 255","255, 0, 255","255, 0, 0","0, 0, 0"],Ct=[0.25,0.5,0.75,1,1.25,1.5,1.75,2,3,4],Mt=["White","Yellow","Green","Cyan","Blue","Magenta","Red","Black"],lt=["Monospaced Serif","Proportional Serif","Monospaced Sans-Serif","Proportional Sans-Serif","Casual","Cursive"],C=["Courier New, monospace","serif","Andale Mono, Lucida Console, monospace","sans-serif","Comic Sans MS, Impact, fantasy","Monotype Corsiva, cursive"],W=["None","Drop shadow","Raised","Depressed","Outline"],G=["","rgb(34, 34, 34) 2px 2px 3px, rgb(34, 34, 34) 2px 2px 4px, rgb(34, 34, 34) 2px 2px 5px","rgb(34, 34, 34) 1px 1px, rgb(34, 34, 34) 2px 2px, rgb(34, 34, 34) 3px 3px","rgb(204, 204, 204) 1px 1px, rgb(204, 204, 204) 0px 1px, rgb(34, 34, 34) -1px -1px, rgb(34, 34, 34) 0px -1px","rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px, rgb(34, 34, 34) 0px 0px 1px"];class J{constructor(q,tt,Lt,_t,Gt){this.player=q,this.labels=tt,this.values=Lt,this.css_variable=_t,this.default_value=Gt,this.selected=q._storage.getItem(_t)||Gt}set selected(q){document.documentElement.style.setProperty(this.css_variable,q),this.player._storage.setItem(this.css_variable,q)}get selected(){return document.documentElement.style.getPropertyValue(this.css_variable)}}var st;(function(q){q[q.main=0]="main",q[q.tracks=1]="tracks",q[q.style=2]="style",q[q.styleOpt=3]="styleOpt"})(st||(st={}));class pt extends A{constructor(q){if(super(q),this.state=st.main,this.selectedTrackIdx=-1,this.isTV=!1,this.styleOpts=function(_t){return{[_t.i18n("cc.properties.fontSize","Font size")]:new J(_t,Ct.map((Gt)=>100*Gt+"%"),Ct.map((Gt)=>100*Gt+"%"),"--fp-sub-font-size","100%"),[_t.i18n("cc.properties.fontFamily","Font family")]:new J(_t,lt.map((Gt)=>_t.i18n("cc.fontFamily."+Gt,Gt)),C,"--fp-sub-font-family","sans-serif"),[_t.i18n("cc.properties.fontColor","Font color")]:new J(_t,Mt.map((Gt)=>_t.i18n("cc.colors."+Gt,Gt)),ft,"--fp-sub-font-color",ft[0]),[_t.i18n("cc.properties.fontOpacity","Font opacity")]:new J(_t,Ct.flatMap((Gt)=>Gt>1?[]:100*Gt+"%"),Ct.flatMap((Gt)=>Gt>1?[]:Gt+""),"--fp-sub-font-opacity","1"),[_t.i18n("cc.properties.backgroundColor","Background color")]:new J(_t,Mt.map((Gt)=>_t.i18n("cc.colors."+Gt,Gt)),ft,"--fp-sub-background-color",ft[7]),[_t.i18n("cc.properties.backgroundOpacity","Background opacity")]:new J(_t,Ct.flatMap((Gt)=>Gt>1?[]:100*Gt+"%"),Ct.flatMap((Gt)=>Gt>1?[]:Gt+""),"--fp-sub-background-opacity","0.5"),[_t.i18n("cc.properties.characterEdgeStyle","Character edge style")]:new J(_t,W.map((Gt)=>_t.i18n("cc.edgeStyle."+Gt,Gt)),G,"--fp-sub-edge-style","")}}(q),q.on("mount",()=>{setTimeout(()=>this.isTV=q.hasState("is-tv"),0),this.classList.toggle("subs-native",!!q.opt("subtitles.native"))}),q.on(se.events.TRACK_UPDATED,(_t)=>this.summaryEle.classList.toggle("fp-color-text",!!_t.detail)),q.opt("subtitles.native"))return;let tt=L(this.player,"flowplayer-menu-back");tt.setAttribute("aria-label","Back to previous menu"),this.menuHeader.prepend(tt),tt.addEventListener("click",()=>this.navigateBack());let Lt=L(this.player,"flowplayer-subs-menu-icon");Lt.setAttribute("aria-label","Open style menu"),Lt.addEventListener("click",()=>this.createMenu(st.style)),this.menuHeader.insertBefore(Lt,this.menuTitle),this.summaryEle.addEventListener("click",()=>{this.menuContainer.open||this.createMenu(st.main)}),this.menu.addEventListener("click",(_t)=>{(_t.target===Lt||_t.target===tt||this.state!==st.main&&_t.target!==this.closeEle)&&_t.preventDefault()}),this.addEventListener(se.events.TRACKS,(_t)=>{var Gt;this.tracks=_t.detail,this.selectedTrackIdx=-1,this.toggle_visibility(!((Gt=this==null?void 0:this.tracks)===null||Gt===void 0?void 0:Gt.length)),this.state===(this.isTV?st.tracks:st.main)&&this.createMenu(this.isTV?st.tracks:st.main)}),this.addEventListener(se.events.SWITCH,(_t)=>{this.selectedTrackIdx=_t.detail.selected_index,this.state===(this.isTV?st.tracks:st.main)&&this.select_item(this.selectedTrackIdx)}),this.player.addEventListener("tv-menu:will-open",()=>{var _t;((_t=this.tracks)===null||_t===void 0?void 0:_t.length)&&this.createMenu(st.main)}),this.player.on(["tv-menu:will-close","keyboard:close:menus"],(_t)=>{var Gt;this.state!==st.main&&((Gt=document.activeElement)===null||Gt===void 0?void 0:Gt.closest(".fp-menu"))===this.menu&&(this.navigateBack(),_t.preventDefault())})}navigateBack(){switch(this.state){case st.style:case st.tracks:return this.createMenu(st.main);case st.styleOpt:return this.createMenu(st.style)}}getMenuTitle(){switch(this.state){case st.main:return this.player.i18n("cc.menu_title","Subtitles");case st.tracks:return this.player.i18n("cc.tracks","Tracks");case st.style:return this.player.i18n("cc.options","Options");default:return""}}createMenuOpts(q){switch(this.state){case st.main:return this.isTV?this.createTvMainMenuOpts():this.createTracksMenuOpts();case st.tracks:return this.createTracksMenuOpts();case st.style:return this.createStyleMenuOpts();case st.styleOpt:return q?this.createStylePropertyMenuOpts(this.styleOpts[q]):[]}}createMenu(q,tt){var Lt;this.state=q,this.menu.classList.toggle("fp-submenu",q>0),this.menuTitle.textContent=tt||this.getMenuTitle(),this.render(this.createMenuOpts(tt)),(Lt=this.menu.querySelector("li"))===null||Lt===void 0||Lt.focus()}createTvMainMenuOpts(){return[{text:this.player.i18n("cc.tracks","Tracks"),onclick:this.createMenu.bind(this,st.tracks)},{text:this.player.i18n("cc.options","Options"),onclick:this.createMenu.bind(this,st.style)}]}createTracksMenuOpts(){return Array.isArray(this==null?void 0:this.tracks)?this.tracks.map((q,tt)=>({text:q.text,onclick:()=>{q.onclick(),this.selectedTrackIdx=this.selectedTrackIdx===tt?-1:tt},selected:this.selectedTrackIdx===tt})):[]}createStyleMenuOpts(){let q=Object.keys(this.styleOpts).map((tt)=>({text:tt,onclick:this.createMenu.bind(this,st.styleOpt,tt)}));return q.push({text:this.player.i18n("cc.reset","Reset"),onclick:()=>Object.values(this.styleOpts).forEach((tt)=>tt.selected=tt.default_value)}),q}createStylePropertyMenuOpts(q){return q.labels.map((tt,Lt)=>({text:tt,onclick:()=>{q.selected=q.values[Lt]},selected:Lt===q.values.indexOf(q.selected)}))}select_item(q){if(this.state!==st.style)return this.state===st.styleOpt?super.select_item(q):void this.options.forEach((tt,Lt)=>{tt.classList.toggle(Nt,Lt===q&&!tt.classList.contains(Nt))})}}class at extends j{constructor(q,tt){super(q),this.classList.add("fp-icon",tt.name),tt.title&&this.setAttribute("title",tt.title),tt.title&&this.setAttribute("aria-label",tt.title),tt.translation_key&&this.setAttribute("aria-label",q.i18n(tt.translation_key)),this.setAttribute("tabindex","0"),this.setAttribute("focusable","true")}}function gt(q){return!document.fullscreenEnabled&&typeof q.webkitEnterFullScreen=="function"&&typeof q.webkitExitFullScreen=="function"}let Rt="subs:tracks",Jt="subs:change";var xt,ce=Object.freeze({__proto__:null,TRACK_UPDATED:"tracks:text:updated",TRACKS:Rt,SWITCH:Jt,CUES_PARSED:"cues:parsed",TEXT_TRACKS:"tracks:text:all"});function dt(q,tt){if(function(Lt){return Object.values(xt).includes(Lt)}(tt=tt||xt.Anonymous))return q instanceof HTMLVideoElement&&(q.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in q?q.crossOrigin=tt:q.setAttribute("crossorigin",tt),q}function mt(q){let tt=document.createElement("a");return tt.href=q,tt.origin}function Dt(q,tt){let Lt=document.createElement("track");Lt.className="fp-track renderable",Lt.kind=tt.kind||"captions",Lt.label=tt.label||tt.lang||"",Lt.lang=tt.lang||"",Lt.id=["fp",tt.lang].join("-");let _t=Lt.track;return _t.removeCue=b,typeof tt.crossorigin!="string"&&function(Gt,Oe){try{return Gt.src.startsWith("blob:"),mt(Gt.src)!==mt(Oe)}catch(Re){return console.error(Re),!0}}(q,tt.src)&&(dt(q),tt.crossorigin=q.getAttribute("crossorigin")),"crossorigin"in tt&&dt(q,tt.crossorigin),Object.keys(tt).forEach((Gt)=>{Gt!=="default"&&(Lt[Gt]=tt[Gt])}),_t.mode=tt.default?"hidden":"disabled",q.appendChild(Lt),Lt}(function(q){q.Anonymous="anonymous",q.UseCredentials="use-credentials",q.Empty=""})(xt||(xt={}));let te={translation_key:"cc.menu_title",name:"fp-subtitles-menu"},re={name:"fp-menu-back"};var we;let se=((we=class q{constructor(tt){P(tt,"flowplayer-subtitles-menu",pt),P(tt,"flowplayer-subs-menu-icon",class extends at{constructor(Lt){super(Lt,te)}}),P(tt,"flowplayer-menu-back",class extends at{constructor(Lt){super(Lt,re)}})}init(tt,Lt,_t){var Gt,Oe;let Re=L(_t,"flowplayer-subtitles-menu");Re instanceof pt&&Re.setMenuAttrs({class:"fp-cc",summaryTitle:_t.i18n("cc.button","CC"),menuTitle:_t.i18n("cc.menu_title","Subtitles"),options_event:((Gt=tt.subtitles)===null||Gt===void 0?void 0:Gt.native)?Rt:void 0,item_selected_event:((Oe=tt.subtitles)===null||Oe===void 0?void 0:Oe.native)?Jt:void 0});let ai=function(Qt){let qt=document.createElement("div");return qt.classList.add("fp-captions"),qt.ontouchend=($t)=>Qt.emit($t.type),qt.onclick=($t)=>Qt.emit($t.type),qt}(_t),Qe,Ge=[],Se=[];function si(){return Array.from(_t.textTracks).filter((Qt)=>~["captions","subtitles","descriptions"].indexOf(Qt.kind)&&!Qt.removed&&Qt.label)}function Xe(){return si().find((Qt)=>Qt.is_active)}function Ii(Qt){Array.from(Qt.querySelectorAll("track")).forEach((qt)=>{["captions","subtitles","descriptions"].includes(qt.kind)&&Qt.removeChild(qt)})}function Ze(Qt,qt,$t){U(qt,Rt,$t.map(function(de){return{text:de.label,onclick:Je.bind(0,Qt,de)}}));let he=Xe();return he?si().find((de)=>de===he)?void U(qt,Jt,{selected_index:$t.indexOf(he)}):oi():Qt.emit("tracks:text:updated")}function Je(Qt,qt){var $t,he;if(qt==Xe())return oi();oi(),qt.is_hls_embedded&&typeof qt.track_id=="number"&&Qt.hls&&(Qt.hls.subtitleTrack=qt.track_id),qt.mode=(($t=Qt.opts.subtitles)===null||$t===void 0?void 0:$t.native)?"showing":"hidden",qt.is_active=!0,Qt.emit("tracks:text:updated",qt),((he=Qt.opts.subtitles)===null||he===void 0?void 0:he.native)||Qt.emit("cuechange",{track:qt})}function oi(){let Qt=Xe();Qt&&(_t.emit("tracks:text:updated"),Qt.mode="disabled",Qt.is_active=!1,p(ai,[]))}(function(Qt){if(!gt(Qt))return;Qt.on("webkitbeginfullscreen",()=>{let qt=Xe();qt&&(qt.mode="showing")}),Qt.on("webkitendfullscreen",()=>{var qt;let $t=si().find((he)=>he.mode==="showing");$t&&!((qt=Qt.opts.subtitles)===null||qt===void 0?void 0:qt.native)&&($t.mode="hidden"),$t!==Xe()&&($t?Je(Qt,$t):oi(),U(Re,Jt,{selected_index:$t?Se.indexOf($t):-1}))})})(_t),_t.on("mount",function(){var Qt,qt;let $t=z(_t,"flowplayer-control");if(!$t)return(Qt=z(_t,"flowplayer-ui"))===null||Qt===void 0?void 0:Qt.appendChild(ai);$t.insertAdjacentElement("beforebegin",ai),(qt=_t.hasState("is-tv")?z(_t,"flowplayer-tv-menu"):$t)===null||qt===void 0||qt.append(Re)}),_t.on("config",function(Qt){var qt,$t;let he=($t=(qt=Qt.data)===null||qt===void 0?void 0:qt.subtitles)===null||$t===void 0?void 0:$t.tracks;he&&Ge!==he&&(Ge=he,Ii(_t),Se=si(),Ze(_t,Re,Se),Ge.forEach((de)=>Dt(_t,de)))}),_t.on("tracks:text:all",(Qt)=>{let qt=Qt.detail.tracks;qt!==Qe&&(Qe=qt,Se=Se.flatMap(($t)=>$t.is_hls_embedded?($t.removed=!0,[]):$t),Ze(_t,Re,Se),qt.filter(($t)=>{var he,de;return~["subtitles","captions"].indexOf(($t==null?void 0:$t.kind)||((de=(he=$t==null?void 0:$t.subtitleTrack)===null||he===void 0?void 0:he.type)===null||de===void 0?void 0:de.toLocaleLowerCase())||"")}).forEach(($t)=>{var he,de,Oi,en,Ai,We,cn;let gi=_t.addTextTrack($t.kind==="captions"?"captions":"subtitles",((he=$t.subtitleTrack)===null||he===void 0?void 0:he.name)||$t.label,(de=$t.subtitleTrack)===null||de===void 0?void 0:de.lang);gi.is_hls_embedded=!0,gi.default=((Oi=$t.subtitleTrack)===null||Oi===void 0?void 0:Oi.default)!==void 0?(en=$t.subtitleTrack)===null||en===void 0?void 0:en.default:$t.default,gi.track_id=(We=(Ai=$t.subtitleTrack)===null||Ai===void 0?void 0:Ai.id)!==null&&We!==void 0?We:$t._id,gi.mode=gi.default?"hidden":"disabled",gi.removeCue=b,gi.attr=(cn=$t.subtitleTrack)===null||cn===void 0?void 0:cn.attrs}))}),_t.on("cues:parsed",(Qt)=>{let qt=Qt.detail,$t=Se.find((he)=>he.is_hls_embedded&&!he.removed&&(he.default&&qt.track==="default"||he.track_id===qt.track||"subtitles"+he.track_id===qt.track||"captions"+he.track_id===qt.track));$t&&qt.cues.forEach((he)=>$t.addCue(he))}),_t.textTracks.addEventListener("addtrack",()=>{let Qt=si();if(Se.length===Qt.length&&Se.every(($t,he)=>$t===Qt[he]))return;let qt=Xe();if(Qt.map(function($t){return~["showing","hidden"].indexOf($t.mode)&&(qt=$t,$t.mode="disabled",$t.is_active=!1),$t.oncuechange=function(he){var de;if(!($t===Xe()||gt(_t)&&_t.hasState("is-fullscreen")))return $t.mode="disabled";((de=tt.subtitles)===null||de===void 0?void 0:de.native)||_t.emit(he.type,{track:he.target})},$t}),U(Re,Rt,Qt.map(function($t){return{text:$t.label,onclick:Je.bind(0,_t,$t)}})),Se=Qt,!qt)return oi();Je(_t,qt),U(Re,Jt,{selected_index:Se.indexOf(qt)})}),_t.on("cuechange",function(Qt){var qt;let $t=(qt=Qt.data)===null||qt===void 0?void 0:qt.track;if(!$t||!["captions","subtitles","descriptions"].includes($t.kind))return;let he=Array.from(o($t,"activeCues",[])).filter((de,Oi,en)=>Oi===en.findIndex((Ai)=>de.id===Ai.id)).sort((de,Oi)=>typeof de.line!="number"||typeof Oi.line!="number"?0:de.line-Oi.line);p(ai,he)}),_t.on(["playlist/advance","src"],(Qt)=>{_t.currentSrc&&(Qt.type==="src"&&["is-playlist",k].some((qt)=>_t.root.classList.contains(qt))||(delete _t.opts.subtitles,Ii(_t),Ge=[],oi(),Se=[],Qe=[],si().forEach((qt)=>qt.removed=!0),U(Re,Rt,[])))})}}).pluginName="subtitles",we.events=ce,we);return function(q,tt){if(typeof go=="object"&&typeof po!="undefined")return tt;if(document.currentScript===null)return tt;"flowplayer"in q||(q.flowplayer={extensions:[]});let Lt=q.flowplayer;return typeof Lt=="function"?(Lt(tt),tt):(Array.isArray(Lt.extensions)||(Lt.extensions=[]),~Lt.extensions.indexOf(tt)||Lt.extensions.push(tt),tt)}(window,se)})});var Jc=gn((vo,yo)=>{(function(o,p){typeof vo=="object"&&typeof yo!="undefined"?yo.exports=p():typeof define=="function"&&define.amd?define(p):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.thumbnails=p())})(vo,function(){var o;function p(W,G){if(function(J){return Object.values(o).includes(J)}(G=G||o.Anonymous))return W instanceof HTMLVideoElement&&(W.poster="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),"crossOrigin"in W?W.crossOrigin=G:W.setAttribute("crossorigin",G),W}function b(W){let G=document.createElement("a");return G.href=W,G.origin}(function(W){W.Anonymous="anonymous",W.UseCredentials="use-credentials",W.Empty=""})(o||(o={}));function k(W,G){return W.querySelector("track[id='"+G+"']")}function L(W,G){let J=document.createElement("track");return J.src=G,function(st,pt){try{return st.src.startsWith("blob:"),b(st.src)!==b(pt)}catch(at){return console.error(at),!0}}(W,G)&&(p(W),p(J)),J}var P=Object.freeze({__proto__:null,THUMBNAILS_RENDER:"thumbnails:render",THUMBNAILS_HIDE:"thumbnails:hide"});function U(W,G){let J=W._customElements.get(G);return J&&W.root.querySelector(J)||void 0}let z=(W,G)=>new(((J,st)=>{let pt=J.get(st);if(!pt)throw new Error(`no flowplayer component with the name ${st} exists`);let at=window.customElements.get(st);if(!at)throw new Error(`no default flowplayer component with the name ${st} exists`);let gt=window.customElements.get(pt);return typeof gt!="function"?at:gt})(W._customElements,G))(W);class j extends HTMLElement{constructor(W){super(),this.player=W}}class Nt extends j{constructor(W){super(W),this.className="fp-thumbnail-carousel",this.carousel=this.makeCarousel(),this.addEventListener("thumbnails:render",this.renderCarousel.bind(this,W)),this.addEventListener("thumbnails:hide",()=>W.root.classList.remove("with-thumbnails"))}renderCarousel(W,G){let{previous:J,current:st,next:pt}=G.detail;W.root.classList.add("with-thumbnails"),J&&this.renderCarouselItem(this.carousel.previous,J),st&&this.renderCarouselItem(this.carousel.current,st),pt&&this.renderCarouselItem(this.carousel.next,pt)}makeCarousel(){return{previous:this.makeCarouselItem("previous"),current:this.makeCarouselItem("current"),next:this.makeCarouselItem("next")}}makeCarouselItem(W){let G=document.createElement("div");return G.classList.add("thumbnail",W),this.append(G),G}renderCarouselItem(W,G){let J=W.style;J.backgroundImage=`url("${G.url}")`,J.backgroundPositionX="-"+G.x+"px ",J.backgroundPositionY="-"+G.y+"px",J.height=G.h+"px",J.width=G.w+"px"}}function ne(W){let G=document.createElement("a");return G.href=W,G}let A=/#xywh=(\d+),(\d+),(\d+),(\d+)$/,Ft=/^(https:|https:|\/)/;function H(W,G){let J=ne(W.src),st=ne(G),[pt,at,gt,Rt,Jt]=(st.hash.match(A)||[]).map((xt)=>parseInt(xt,10));return{x:at,y:gt,w:Rt,h:Jt,url:ft(G,J)}}function ft(W,G){if(W.match(Ft))return W;try{return new URL(W,G.href).toString()}catch(J){return""}}let Ct="is-source-processing";function Mt(W,G,J){let st=function(pt,at){let gt=new CustomEvent(pt,{detail:at,cancelable:!0});return at&&Object.defineProperty(gt,"data",{get:()=>at}),gt}(G,J);return W.dispatchEvent(st),W}var lt;(function(){let W=!1;try{let G=Object.defineProperty({},"passive",{get:function(){W=!0}});window.addEventListener("testPassive",null,G),window.removeEventListener("testPassive",null,G)}catch(G){}})();let C=((lt=class W{static activeThumbnails(G,J){var st,pt;let at=k(G,"thumbnails");if(!at)return;let gt=Array.from(at.track.cues||{length:0}),Rt=gt.find((xt)=>xt.startTime<=J&&J<=xt.endTime);if(!Rt)return{};let Jt=gt.indexOf(Rt);return{previous:H(at,((st=gt[Jt-1])===null||st===void 0?void 0:st.text)||""),current:H(at,(Rt==null?void 0:Rt.text)||""),next:H(at,((pt=gt[Jt+1])===null||pt===void 0?void 0:pt.text)||"")}}constructor(G){((J,st,pt)=>{window.customElements.get(st)||window.customElements.define(st,pt),J.customElements.get(st)||J.customElements.set(st,st)})(G,"flowplayer-thumbnails-carousel",Nt)}init(G,J,st){let pt=U(st,"flowplayer-ui"),at=z(st,"flowplayer-thumbnails-carousel"),gt=U(st,"flowplayer-control");st.reaper&&pt&>&&(pt.insertBefore(at,gt),st.once("mount",()=>{this.attachTimelineListeners(st,at)}),st.textTracks.addEventListener("addtrack",function(Rt){let Jt=Rt.track;(Jt==null?void 0:Jt.id)==="thumbnails"&&(Jt.mode="hidden")}),st.on("config",function(){var Rt;let Jt=(Rt=G==null?void 0:G.thumbnails)===null||Rt===void 0?void 0:Rt.src;if(typeof Jt=="string")return function(xt,ce){if(function(mt,Dt){return mt.querySelector("track[src='"+Dt+"']")}(xt,ce))return;let dt=L(xt,ce);return dt.kind="metadata",dt.id="thumbnails",dt.src=ce,xt.append(dt),dt}(st,Jt)}),st.on(["playlist/advance","src"],(Rt)=>{st.currentSrc&&(Rt.type==="src"&&["is-playlist",Ct].some((Jt)=>st.root.classList.contains(Jt))||(delete G.thumbnails,function(Jt){let xt=k(Jt,"thumbnails");xt&&xt.remove()}(st)))}))}attachTimelineListeners(G,J){G.on("timeline/gesture/move",({data:st})=>{let pt=st==null?void 0:st.percent;if(typeof pt!="number")return;if(!Number.isFinite(G.duration))return;let at=Math.max(0,Math.min(G.duration,G.duration*(pt/100))),gt=lt.activeThumbnails(G,at);gt&&requestAnimationFrame(()=>Mt(J,"thumbnails:render",Object.assign(Object.assign({},gt),{timestamp:at})))}),G.on("timeline/gesture/end",()=>{G.root.classList.contains("with-thumbnails")&&Mt(J,"thumbnails:hide")})}}).pluginName="thumbnails",lt.events=P,lt);return function(W,G){if(typeof vo=="object"&&typeof yo!="undefined")return G;if(document.currentScript===null)return G;"flowplayer"in W||(W.flowplayer={extensions:[]});let J=W.flowplayer;return typeof J=="function"?(J(G),G):(Array.isArray(J.extensions)||(J.extensions=[]),~J.extensions.indexOf(G)||J.extensions.push(G),G)}(window,C)})});var Qc=gn((Eo,So)=>{(function(o,p){typeof Eo=="object"&&typeof So!="undefined"?So.exports=p():typeof define=="function"&&define.amd?define(p):((o=typeof globalThis!="undefined"?globalThis:o||self).flowplayer=o.flowplayer||{},o.flowplayer.vtsel=p())})(Eo,function(){let o=(lt,C)=>new(((W,G)=>{let J=W.get(G);if(!J)throw new Error(`no flowplayer component with the name ${G} exists`);let st=window.customElements.get(G);if(!st)throw new Error(`no default flowplayer component with the name ${G} exists`);let pt=window.customElements.get(J);return typeof pt!="function"?st:pt})(lt._customElements,C))(lt);class p extends HTMLElement{constructor(lt){super(),this.player=lt}}let b="fp-on",k="fp-invis";class L extends p{constructor(lt){super(lt),this.player=lt,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.olEle.id=U(),this.menu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.menu.classList.add("fp-menu"),this.menu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.menu),this.menuContainer.addEventListener("click",(C)=>{if(C.defaultPrevented)return;C.preventDefault();let W=this.menuContainer.open;W||(P(),document.active_menu=this.menuContainer),this.menuContainer.open=!W,lt.root.classList.toggle("has-menu-opened",!W),this.summaryEle.setAttribute("aria-expanded",W?"false":"true")}),this.addEventListener("focusin",(C)=>{let W=C.target;W instanceof HTMLLIElement&&W.setAttribute("aria-selected","true")}),this.addEventListener("focusout",(C)=>{let W=C.target;W instanceof HTMLLIElement&&W.setAttribute("aria-selected","false")}),this.append(this.menuContainer),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button")}get options(){return this.olEle.querySelectorAll("li")}setMenuAttrs(lt){if(this.className=lt.class,this.toggle_visibility(!0),this.summaryEle.id||(this.summaryEle.id=lt.id||U()),this.summaryEle.setAttribute("aria-label",lt.menuTitle||"Menu"),lt.summaryTitle&&(this.summaryEle.textContent=lt.summaryTitle),lt.summaryIcon){let C=o(this.player,lt.summaryIcon);C.setAttribute("tabindex",""),this.summaryEle.append(C)}lt.menuTitle&&(this.menuTitle.textContent=lt.menuTitle),this.menu.classList.toggle("fp-icons",!!lt.icons),this.addEventListener(lt.options_event,(C)=>{this.render(C.data)}),lt.item_selected_event&&this.addEventListener(lt.item_selected_event,(C)=>{C.data!==void 0&&this.select_item(C.data.selected_index)})}render(lt){this.olEle&&(this.olEle.innerHTML="",lt&<.forEach(this.menuOption,this),this.toggle_visibility(!(lt==null?void 0:lt.length)))}menuOption(lt,C){let W=document.createElement("li");W.setAttribute("role","menuitem"),W.setAttribute("aria-selected","false"),W.setAttribute("tabindex","0"),lt.icon&&W.append(lt.icon);let G=document.createElement("span");G.textContent=lt.text,W.append(G),W.addEventListener("click",()=>{this.select_item(C),typeof lt.onclick=="function"&<.onclick()}),this.olEle.appendChild(W),lt.selected&&this.select_item(C)}select_item(lt){this.options.forEach((C,W)=>{C.classList.toggle(b,W===lt)})}unselect_item(){this.options.forEach((lt)=>{lt.classList.remove(b)})}toggle_visibility(lt){this.classList.toggle(k,lt),this.menu.style.setProperty("display",lt?"none":"flex")}}function P(){Array.from(document.querySelectorAll(".fp-engine")).forEach((lt)=>{var C;let W=lt.root.querySelector("details[open].fp-menu-container");W&&(W.open=!1,(C=W.querySelector("summary"))===null||C===void 0||C.removeAttribute("aria-expanded"),lt.root.classList.toggle("has-menu-opened",!1))})}function U(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}document.addEventListener("click",function(lt){this.active_menu&&!lt.composedPath().includes(this.active_menu)&&(P(),this.active_menu=void 0)});function z(lt,C,W){let G=function(J,st){let pt=new CustomEvent(J,{detail:st,cancelable:!0});return st&&Object.defineProperty(pt,"data",{get:()=>st}),pt}(C,W);return lt.dispatchEvent(G),lt}var j;(function(){let lt=!1;try{let C=Object.defineProperty({},"passive",{get:function(){lt=!0}});window.addEventListener("testPassive",null,C),window.removeEventListener("testPassive",null,C)}catch(C){}})(),function(lt){lt[lt.Idle=0]="Idle",lt[lt.Receiving=1]="Receiving",lt[lt.Starting=2]="Starting"}(j||(j={}));var Nt=function(lt){var C={exports:{}};return lt(C,C.exports),C.exports}(function(lt,C){var W,G,J,st,pt;W=/^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/,G=/^(?=([^\/?#]*))\1([^]*)$/,J=/(?:\/|^)\.(?=\/)/g,st=/(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g,pt={buildAbsoluteURL:function(at,gt,Rt){if(Rt=Rt||{},at=at.trim(),!(gt=gt.trim())){if(!Rt.alwaysNormalize)return at;var Jt=pt.parseURL(at);if(!Jt)throw new Error("Error trying to parse base URL.");return Jt.path=pt.normalizePath(Jt.path),pt.buildURLFromParts(Jt)}var xt=pt.parseURL(gt);if(!xt)throw new Error("Error trying to parse relative URL.");if(xt.scheme)return Rt.alwaysNormalize?(xt.path=pt.normalizePath(xt.path),pt.buildURLFromParts(xt)):gt;var ce=pt.parseURL(at);if(!ce)throw new Error("Error trying to parse base URL.");if(!ce.netLoc&&ce.path&&ce.path[0]!=="/"){var dt=G.exec(ce.path);ce.netLoc=dt[1],ce.path=dt[2]}ce.netLoc&&!ce.path&&(ce.path="/");var mt={scheme:ce.scheme,netLoc:xt.netLoc,path:null,params:xt.params,query:xt.query,fragment:xt.fragment};if(!xt.netLoc&&(mt.netLoc=ce.netLoc,xt.path[0]!=="/"))if(xt.path){var Dt=ce.path,te=Dt.substring(0,Dt.lastIndexOf("/")+1)+xt.path;mt.path=pt.normalizePath(te)}else mt.path=ce.path,xt.params||(mt.params=ce.params,xt.query||(mt.query=ce.query));return mt.path===null&&(mt.path=Rt.alwaysNormalize?pt.normalizePath(xt.path):xt.path),pt.buildURLFromParts(mt)},parseURL:function(at){var gt=W.exec(at);return gt?{scheme:gt[1]||"",netLoc:gt[2]||"",path:gt[3]||"",params:gt[4]||"",query:gt[5]||"",fragment:gt[6]||""}:null},normalizePath:function(at){for(at=at.split("").reverse().join("").replace(J,"");at.length!==(at=at.replace(st,"")).length;);return at.split("").reverse().join("")},buildURLFromParts:function(at){return at.scheme+at.netLoc+at.path+at.params+at.query+at.fragment}},lt.exports=pt});let ne=/#EXT-X-MEDIA:(.*)/g,A=/(.+?)=(".*?"|.*?)(?:,|$)/g;function Ft(lt,C,W,G){let J=W,st={label:lt,default:W,data:G||[]};return Object.defineProperty(st,"selected",{get:()=>J,set(pt){var at;typeof pt=="boolean"&&J!==pt&&(J&&((at=C.tracks)===null||at===void 0?void 0:at.filter((gt)=>gt.selected).length)===1||(J=pt,pt&&C.emit("tracks:video:select",{track:st})))}})}class H{constructor(lt){typeof lt=="string"&&(lt=H.parseAttrList(lt)),Object.keys(lt).forEach((C)=>{lt.hasOwnProperty(C)&&(C.substring(0,2)==="X-"&&(this.clientAttrs=this.clientAttrs||[],this.clientAttrs.push(C)),this[C]=lt[C])})}bool(lt){return this[lt]==="YES"}static parseAttrList(lt){let C,W={};for(A.lastIndex=0;(C=A.exec(lt))!==null;){let G=C[2];G.indexOf('"')===0&&G.lastIndexOf('"')===G.length-1&&(G=G.slice(1,-1)),W[C[1].trim()]=G}return W}}var ft,Ct=Object.freeze({__proto__:null,PARSE_TRACKS:"parse:video:tracks",VIDEO_TRACK_SELECT:"tracks:video:select",VIDEO_TRACKS:"videoTracks",TRACKS:"video:tracks",SWITCH:"video:update"});let Mt=((ft=class lt{constructor(C){((W,G,J)=>{window.customElements.get(G)||window.customElements.define(G,J),W.customElements.get(G)||W.customElements.set(G,G)})(C,"flowplayer-video-menu",L)}init(C,W,G){var J;let st=o(G,"flowplayer-video-menu");st instanceof L&&st.setMenuAttrs({summaryTitle:G.i18n("vtsel.button_txt","Video"),menuTitle:G.i18n("vtsel.menu_title","Video Track"),class:"fp-vsel",options_event:ft.events.TRACKS,item_selected_event:ft.events.SWITCH}),G.on("mount",function(){var pt;(pt=function(at,gt){let Rt=at._customElements.get(gt);return Rt&&at.root.querySelector(Rt)||void 0}(G,G.hasState("is-tv")?"flowplayer-tv-menu":"flowplayer-control"))===null||pt===void 0||pt.append(st)}),G.on("src",()=>{G.tracks=[],z(st,ft.events.TRACKS,[])}),G.on("parse:video:tracks",(pt)=>{let at=pt.detail;at&&function(gt,Rt,Jt){var xt,ce,dt,mt,Dt,te,re;let we,se=0;for(ne.lastIndex=0;(we=ne.exec(Rt))!==null;){let q=new H(we[1]);if(q.TYPE==="VIDEO"){let tt=(xt=gt.tracks)===null||xt===void 0?void 0:xt.find((_t)=>_t.label===(q.NAME||q.LANGUAGE||"Track "+se));if(tt||(tt=Ft(q.NAME||q.LANGUAGE||se+++"",gt,q.bool("DEFAULT")),q.bool("DEFAULT")&&(tt.data=(ce=gt.hls)===null||ce===void 0?void 0:ce.levels.slice(0)),(dt=gt.tracks)===null||dt===void 0||dt.push(tt)),q.bool("DEFAULT"))continue;let Lt={details:void 0,audioGroupIds:(mt=gt.hls)===null||mt===void 0?void 0:mt.levels[0].audioGroupIds,attrs:{},urlId:0,url:[q.URI?Nt.buildAbsoluteURL(Jt,q.URI,{alwaysNormalize:!0}):""],uri:q.URI?Nt.buildAbsoluteURL(Jt,q.URI,{alwaysNormalize:!0}):"",level:(Dt=tt.data)===null||Dt===void 0?void 0:Dt.length,name:"level "+((te=tt.data)===null||te===void 0?void 0:te.length)};(re=tt.data)===null||re===void 0||re.push(Lt)}}}(G,at.manifest,at.url)}),(J=G.videoTracks)===null||J===void 0||J.addEventListener("addtrack",()=>{C.is_native&&(G.tracks=Array.from(G.videoTracks||[]).map((pt,at)=>Ft(pt.label?pt.label:"track "+at,G,pt.selected)),G.emit("videoTracks",G.tracks))}),G.on("loadeddata",()=>{var pt;if(!C.is_native||!G.videoTracks){if((pt=G.tracks)===null||pt===void 0?void 0:pt.length)return G.emit("videoTracks",G.tracks);G.tracks=[Ft("default",G,!0)],G.emit("videoTracks",G.tracks)}}),G.on("videoTracks",()=>{let pt=G.tracks;pt&&Array.isArray(pt)&&(z(st,ft.events.TRACKS,pt.map((at)=>({text:at.label,onclick:()=>at.selected=!0}))),z(st,ft.events.SWITCH,{selected_index:pt.findIndex((at)=>at.default)}),st instanceof L&&st.toggle_visibility((pt==null?void 0:pt.length)<2))}),G.on("tracks:video:select",(pt)=>{let at=pt.detail.track,gt=G.tracks;if(!at||!gt||!Array.isArray(gt))return;if(z(st,ft.events.SWITCH,{selected_index:gt.indexOf(at)}),!G.opts.is_native||!G.videoTracks)return;G.videoTracks[gt.indexOf(at)].selected=!0;let Rt=gt.find((Jt)=>Jt.selected&&Jt!==at);Rt&&(Rt.selected=!1,G.videoTracks[gt.indexOf(Rt)].selected=!1)}),G.on("rts/status",(pt)=>{var at;let gt=pt.detail.status,Rt=pt.detail.data;if(gt===j.Idle)return z(st,ft.events.TRACKS,[]),G.tracks=[];gt===j.Receiving&&((at=G==null?void 0:G.tracks)===null||at===void 0||at.push(Ft((Rt==null?void 0:Rt.sourceId)||"Main",G,!(Rt==null?void 0:Rt.sourceId),Rt)))})}}).pluginName="vtsel",ft.events=Ct,ft);return function(lt,C){if(typeof Eo=="object"&&typeof So!="undefined")return C;if(document.currentScript===null)return C;"flowplayer"in lt||(lt.flowplayer={extensions:[]});let W=lt.flowplayer;return typeof W=="function"?(W(C),C):(Array.isArray(W.extensions)||(W.extensions=[]),~W.extensions.indexOf(C)||W.extensions.push(C),C)}(window,Mt)})});var hc=document.createElement("style");hc.textContent=`@import "../../node_modules/@flowplayer/player/flowplayer.css";
|
|
51
|
+
|
|
52
|
+
.fp-spins-container {
|
|
53
|
+
container-type: inline-size;
|
|
54
|
+
container-name: spins-container;
|
|
55
|
+
display: flex;
|
|
56
|
+
position: relative;
|
|
57
|
+
flex-direction: column;
|
|
58
|
+
overflow-y: auto;
|
|
59
|
+
scroll-snap-type: y mandatory;
|
|
60
|
+
-webkit-overflow-scrolling: touch;
|
|
61
|
+
scrollbar-width: none;
|
|
62
|
+
-ms-overflow-style: none;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.fp-spins-container > *:not(:last-child) {
|
|
66
|
+
margin-bottom: 10px !important;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
@container spins-container (min-width: 600px) {
|
|
70
|
+
.fp-spins-container .fp-spin {
|
|
71
|
+
min-height: 95%;
|
|
72
|
+
margin: 0 auto;
|
|
73
|
+
aspect-ratio: 9 / 16;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.fp-spins-container .flowplayer.is-spins {
|
|
77
|
+
margin: 0 auto;
|
|
78
|
+
aspect-ratio: 9 / 16;
|
|
79
|
+
width: unset;
|
|
80
|
+
height: 95%;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.fp-spins-container .flowplayer.is-spins .fp-controls {
|
|
84
|
+
transform: unset !important;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.fp-spins-container .flowplayer.is-spins .fp-footer {
|
|
88
|
+
bottom: 3.8em;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.fp-spin {
|
|
93
|
+
min-height: 100%;
|
|
94
|
+
scroll-snap-align: start;
|
|
95
|
+
scroll-snap-stop: always;
|
|
96
|
+
max-width: 100%;
|
|
97
|
+
background: #333 no-repeat center;
|
|
98
|
+
background-size: cover;
|
|
99
|
+
position: relative;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.fp-spins-container::-webkit-scrollbar {
|
|
103
|
+
display: none;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.is-spins {
|
|
107
|
+
position: absolute !important;
|
|
108
|
+
left: 0;
|
|
109
|
+
right: 0;
|
|
110
|
+
z-index: 1;
|
|
111
|
+
height: 100%;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.is-spins.is-paused .fp-footer {
|
|
115
|
+
bottom: 5.8em;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.is-spins .fp-footer {
|
|
119
|
+
display: block;
|
|
120
|
+
left: 0.7em;
|
|
121
|
+
bottom: 3.8em;
|
|
122
|
+
font-size: 85%;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.is-spins .fp-thumbnail-carousel {
|
|
126
|
+
z-index: 1;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.is-spins .fp-captions {
|
|
130
|
+
bottom: unset;
|
|
131
|
+
top: 10%;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.is-spins .fp-chapter-info,
|
|
135
|
+
.is-spins .fp-timestamp,
|
|
136
|
+
.is-spins .fp-chapter,
|
|
137
|
+
.is-spins .fp-middle .fp-rewind,
|
|
138
|
+
.is-spins .fp-middle .fp-fast-forward,
|
|
139
|
+
.is-spins .fp-small-switch,
|
|
140
|
+
.is-spins .fp-right.fp-togglable,
|
|
141
|
+
.is-spins .fp-live-status,
|
|
142
|
+
.is-spins .fp-elapsed,
|
|
143
|
+
.is-spins .fp-controls .fp-duration {
|
|
144
|
+
display: none !important;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.is-spins .fp-menu-dialog {
|
|
148
|
+
margin-left: auto;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.is-spins .fp-menu-dialog summary {
|
|
152
|
+
list-style: none;
|
|
153
|
+
width: 1.2em;
|
|
154
|
+
height: 1.2em;
|
|
155
|
+
filter: drop-shadow(0 0 2px rgba(0, 0, 0, 0.4));
|
|
156
|
+
background-repeat: no-repeat;
|
|
157
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 512 512'%3E%3Cpath d='M256 0c17 0 33.6 1.7 49.8 4.8c7.9 1.5 21.8 6.1 29.4 20.1c2 3.7 3.6 7.6 4.6 11.8l9.3 38.5C350.5 81 360.3 86.7 366 85l38-11.2c4-1.2 8.1-1.8 12.2-1.9c16.1-.5 27 9.4 32.3 15.4c22.1 25.1 39.1 54.6 49.9 86.3c2.6 7.6 5.6 21.8-2.7 35.4c-2.2 3.6-4.9 7-8 10L459 246.3c-4.2 4-4.2 15.5 0 19.5l28.7 27.3c3.1 3 5.8 6.4 8 10c8.2 13.6 5.2 27.8 2.7 35.4c-10.8 31.7-27.8 61.1-49.9 86.3c-5.3 6-16.3 15.9-32.3 15.4c-4.1-.1-8.2-.8-12.2-1.9L366 427c-5.7-1.7-15.5 4-16.9 9.8l-9.3 38.5c-1 4.2-2.6 8.2-4.6 11.8c-7.7 14-21.6 18.5-29.4 20.1C289.6 510.3 273 512 256 512s-33.6-1.7-49.8-4.8c-7.9-1.5-21.8-6.1-29.4-20.1c-2-3.7-3.6-7.6-4.6-11.8l-9.3-38.5c-1.4-5.8-11.2-11.5-16.9-9.8l-38 11.2c-4 1.2-8.1 1.8-12.2 1.9c-16.1 .5-27-9.4-32.3-15.4c-22-25.1-39.1-54.6-49.9-86.3c-2.6-7.6-5.6-21.8 2.7-35.4c2.2-3.6 4.9-7 8-10L53 265.7c4.2-4 4.2-15.5 0-19.5L24.2 218.9c-3.1-3-5.8-6.4-8-10C8 195.3 11 181.1 13.6 173.6c10.8-31.7 27.8-61.1 49.9-86.3c5.3-6 16.3-15.9 32.3-15.4c4.1 .1 8.2 .8 12.2 1.9L146 85c5.7 1.7 15.5-4 16.9-9.8l9.3-38.5c1-4.2 2.6-8.2 4.6-11.8c7.7-14 21.6-18.5 29.4-20.1C222.4 1.7 239 0 256 0zM218.1 51.4l-8.5 35.1c-7.8 32.3-45.3 53.9-77.2 44.6L97.9 120.9c-16.5 19.3-29.5 41.7-38 65.7l26.2 24.9c24 22.8 24 66.2 0 89L59.9 325.4c8.5 24 21.5 46.4 38 65.7l34.6-10.2c31.8-9.4 69.4 12.3 77.2 44.6l8.5 35.1c24.6 4.5 51.3 4.5 75.9 0l8.5-35.1c7.8-32.3 45.3-53.9 77.2-44.6l34.6 10.2c16.5-19.3 29.5-41.7 38-65.7l-26.2-24.9c-24-22.8-24-66.2 0-89l26.2-24.9c-8.5-24-21.5-46.4-38-65.7l-34.6 10.2c-31.8 9.4-69.4-12.3-77.2-44.6l-8.5-35.1c-24.6-4.5-51.3-4.5-75.9 0zM208 256a48 48 0 1 0 96 0 48 48 0 1 0 -96 0zm48 96a96 96 0 1 1 0-192 96 96 0 1 1 0 192z'/%3E%3C/svg%3E");
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.is-spins .fp-menu-dialog .fp-back-button {
|
|
161
|
+
display: block !important;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.is-spins .fp-menu-dialog .fp-menu.fp-submenu .fp-back-button {
|
|
165
|
+
display: none !important;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.is-spins .fp-menu-dialog .fp-menu-header {
|
|
169
|
+
padding: 0.9em 5.7em;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.is-spins .fp-menu-dialog .fp-subtitles-menu {
|
|
173
|
+
left: 1.5em;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.is-spins .fp-menu-dialog .fp-menu.is-close {
|
|
177
|
+
display: none !important;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.is-spins .fp-controls {
|
|
181
|
+
padding: 0;
|
|
182
|
+
height: unset;
|
|
183
|
+
flex-direction: column;
|
|
184
|
+
align-items: unset;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.is-spins .fp-controls .fp-spin-controls-bar {
|
|
188
|
+
display: flex;
|
|
189
|
+
margin-left: 0;
|
|
190
|
+
margin-right: 0;
|
|
191
|
+
align-items: center;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.is-spins .fp-controls .fp-spin-controls-bar .fp-menu-dialog,
|
|
195
|
+
.is-spins .fp-controls .fp-spin-controls-bar .fp-volume-control {
|
|
196
|
+
padding: 0.7em;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.is-spins .fp-controls .fp-timeline {
|
|
200
|
+
height: 0.4em;
|
|
201
|
+
flex: unset;
|
|
202
|
+
margin: 0;
|
|
203
|
+
cursor: pointer;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.is-spins.is-paused:not(.has-menu-opened) .fp-controls {
|
|
207
|
+
transform: translateY(-2em);
|
|
208
|
+
}
|
|
209
|
+
`;document.head.prepend(hc);var fc={};el(fc,{SPIN_IN_VIEWPORT:()=>ma,SPIN_CREATED:()=>il});var il="spin:created",ma="spin:viewport";function nl(...o){let p=[].join.call(o,"/");if(p[0]!=="/")p="/"+p;return"https://ljsp.lwcdn.com/web/public/native/config"+p}function rl(o){return~o.indexOf("/")?o:"/media/"+o}var tu=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,eu=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/,iu=/^[A-Za-z0-9]{8}$/,nu=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/[A-Za-z0-9]{8}$/;function ru(o,p){if(tu.test(o)||eu.test(o))return p.type="video/ovp",!0;return!1}function su(o,p){if(iu.test(o)||nu.test(o)){if(p)p.type="video/ovp";return!0}return!1}function au(o){return typeof o==="object"&&o.type==="ovp/base64"}function mc(o,p){return ru(o,p)||su(o,p)||au(p)}var bt={};el(bt,{void:()=>Vu,util:()=>Le,unknown:()=>Hu,union:()=>Yu,undefined:()=>Uu,tuple:()=>Ju,transformer:()=>oh,symbol:()=>Bu,string:()=>Ac,strictObject:()=>qu,setErrorMap:()=>cu,set:()=>th,record:()=>Qu,quotelessJson:()=>ou,promise:()=>ah,preprocess:()=>dh,pipeline:()=>uh,ostring:()=>hh,optional:()=>lh,onumber:()=>fh,oboolean:()=>mh,objectUtil:()=>sl,object:()=>ju,number:()=>_c,nullable:()=>ch,null:()=>$u,never:()=>Ku,nativeEnum:()=>sh,nan:()=>Pu,map:()=>Zu,makeIssue:()=>ga,literal:()=>nh,lazy:()=>ih,late:()=>xu,isValid:()=>vr,isDirty:()=>qa,isAsync:()=>Ts,isAborted:()=>ja,intersection:()=>Xu,instanceof:()=>Nu,getParsedType:()=>_n,getErrorMap:()=>bs,function:()=>eh,enum:()=>rh,effect:()=>oh,discriminatedUnion:()=>zu,defaultErrorMap:()=>qn,datetimeRegex:()=>Sc,date:()=>Fu,custom:()=>Tc,coerce:()=>gh,boolean:()=>Lc,bigint:()=>Mu,array:()=>Wu,any:()=>Gu,addIssueToContext:()=>Ht,ZodVoid:()=>va,ZodUnknown:()=>yr,ZodUnion:()=>Rs,ZodUndefined:()=>ws,ZodType:()=>Ae,ZodTuple:()=>wn,ZodTransformer:()=>Sn,ZodSymbol:()=>pa,ZodString:()=>pn,ZodSet:()=>qr,ZodSchema:()=>Ae,ZodRecord:()=>ya,ZodReadonly:()=>Ps,ZodPromise:()=>Yr,ZodPipeline:()=>ba,ZodParsedType:()=>Ut,ZodOptional:()=>yn,ZodObject:()=>je,ZodNumber:()=>Er,ZodNullable:()=>zn,ZodNull:()=>ks,ZodNever:()=>Ln,ZodNativeEnum:()=>Os,ZodNaN:()=>Sa,ZodMap:()=>Ea,ZodLiteral:()=>Is,ZodLazy:()=>Cs,ZodIssueCode:()=>kt,ZodIntersection:()=>Ds,ZodFunction:()=>_s,ZodFirstPartyTypeKind:()=>ue,ZodError:()=>ji,ZodEnum:()=>br,ZodEffects:()=>Sn,ZodDiscriminatedUnion:()=>Ya,ZodDefault:()=>xs,ZodDate:()=>Wr,ZodCatch:()=>Ns,ZodBranded:()=>za,ZodBoolean:()=>Ls,ZodBigInt:()=>Sr,ZodArray:()=>vn,ZodAny:()=>jr,Schema:()=>Ae,ParseStatus:()=>Ti,OK:()=>Ci,NEVER:()=>ph,INVALID:()=>le,EMPTY_PATH:()=>du,DIRTY:()=>Vr,BRAND:()=>Ou});var Le;(function(o){o.assertEqual=(L)=>{};function p(L){}o.assertIs=p;function b(L){throw new Error}o.assertNever=b,o.arrayToEnum=(L)=>{let P={};for(let U of L)P[U]=U;return P},o.getValidEnumValues=(L)=>{let P=o.objectKeys(L).filter((z)=>typeof L[L[z]]!=="number"),U={};for(let z of P)U[z]=L[z];return o.objectValues(U)},o.objectValues=(L)=>{return o.objectKeys(L).map(function(P){return L[P]})},o.objectKeys=typeof Object.keys==="function"?(L)=>Object.keys(L):(L)=>{let P=[];for(let U in L)if(Object.prototype.hasOwnProperty.call(L,U))P.push(U);return P},o.find=(L,P)=>{for(let U of L)if(P(U))return U;return},o.isInteger=typeof Number.isInteger==="function"?(L)=>Number.isInteger(L):(L)=>typeof L==="number"&&Number.isFinite(L)&&Math.floor(L)===L;function k(L,P=" | "){return L.map((U)=>typeof U==="string"?`'${U}'`:U).join(P)}o.joinValues=k,o.jsonStringifyReplacer=(L,P)=>{if(typeof P==="bigint")return P.toString();return P}})(Le||(Le={}));var sl;(function(o){o.mergeShapes=(p,b)=>{return{...p,...b}}})(sl||(sl={}));var Ut=Le.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),_n=(o)=>{switch(typeof o){case"undefined":return Ut.undefined;case"string":return Ut.string;case"number":return Number.isNaN(o)?Ut.nan:Ut.number;case"boolean":return Ut.boolean;case"function":return Ut.function;case"bigint":return Ut.bigint;case"symbol":return Ut.symbol;case"object":if(Array.isArray(o))return Ut.array;if(o===null)return Ut.null;if(o.then&&typeof o.then==="function"&&o.catch&&typeof o.catch==="function")return Ut.promise;if(typeof Map!=="undefined"&&o instanceof Map)return Ut.map;if(typeof Set!=="undefined"&&o instanceof Set)return Ut.set;if(typeof Date!=="undefined"&&o instanceof Date)return Ut.date;return Ut.object;default:return Ut.unknown}};var kt=Le.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),ou=(o)=>{return JSON.stringify(o,null,2).replace(/"([^"]+)":/g,"$1:")};class ji extends Error{get errors(){return this.issues}constructor(o){super();this.issues=[],this.addIssue=(b)=>{this.issues=[...this.issues,b]},this.addIssues=(b=[])=>{this.issues=[...this.issues,...b]};let p=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,p);else this.__proto__=p;this.name="ZodError",this.issues=o}format(o){let p=o||function(L){return L.message},b={_errors:[]},k=(L)=>{for(let P of L.issues)if(P.code==="invalid_union")P.unionErrors.map(k);else if(P.code==="invalid_return_type")k(P.returnTypeError);else if(P.code==="invalid_arguments")k(P.argumentsError);else if(P.path.length===0)b._errors.push(p(P));else{let U=b,z=0;while(z<P.path.length){let j=P.path[z];if(z!==P.path.length-1)U[j]=U[j]||{_errors:[]};else U[j]=U[j]||{_errors:[]},U[j]._errors.push(p(P));U=U[j],z++}}};return k(this),b}static assert(o){if(!(o instanceof ji))throw new Error(`Not a ZodError: ${o}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,Le.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(o=(p)=>p.message){let p={},b=[];for(let k of this.issues)if(k.path.length>0){let L=k.path[0];p[L]=p[L]||[],p[L].push(o(k))}else b.push(o(k));return{formErrors:b,fieldErrors:p}}get formErrors(){return this.flatten()}}ji.create=(o)=>{return new ji(o)};var lu=(o,p)=>{let b;switch(o.code){case kt.invalid_type:if(o.received===Ut.undefined)b="Required";else b=`Expected ${o.expected}, received ${o.received}`;break;case kt.invalid_literal:b=`Invalid literal value, expected ${JSON.stringify(o.expected,Le.jsonStringifyReplacer)}`;break;case kt.unrecognized_keys:b=`Unrecognized key(s) in object: ${Le.joinValues(o.keys,", ")}`;break;case kt.invalid_union:b="Invalid input";break;case kt.invalid_union_discriminator:b=`Invalid discriminator value. Expected ${Le.joinValues(o.options)}`;break;case kt.invalid_enum_value:b=`Invalid enum value. Expected ${Le.joinValues(o.options)}, received '${o.received}'`;break;case kt.invalid_arguments:b="Invalid function arguments";break;case kt.invalid_return_type:b="Invalid function return type";break;case kt.invalid_date:b="Invalid date";break;case kt.invalid_string:if(typeof o.validation==="object")if("includes"in o.validation){if(b=`Invalid input: must include "${o.validation.includes}"`,typeof o.validation.position==="number")b=`${b} at one or more positions greater than or equal to ${o.validation.position}`}else if("startsWith"in o.validation)b=`Invalid input: must start with "${o.validation.startsWith}"`;else if("endsWith"in o.validation)b=`Invalid input: must end with "${o.validation.endsWith}"`;else Le.assertNever(o.validation);else if(o.validation!=="regex")b=`Invalid ${o.validation}`;else b="Invalid";break;case kt.too_small:if(o.type==="array")b=`Array must contain ${o.exact?"exactly":o.inclusive?"at least":"more than"} ${o.minimum} element(s)`;else if(o.type==="string")b=`String must contain ${o.exact?"exactly":o.inclusive?"at least":"over"} ${o.minimum} character(s)`;else if(o.type==="number")b=`Number must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${o.minimum}`;else if(o.type==="bigint")b=`Number must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${o.minimum}`;else if(o.type==="date")b=`Date must be ${o.exact?"exactly equal to ":o.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(o.minimum))}`;else b="Invalid input";break;case kt.too_big:if(o.type==="array")b=`Array must contain ${o.exact?"exactly":o.inclusive?"at most":"less than"} ${o.maximum} element(s)`;else if(o.type==="string")b=`String must contain ${o.exact?"exactly":o.inclusive?"at most":"under"} ${o.maximum} character(s)`;else if(o.type==="number")b=`Number must be ${o.exact?"exactly":o.inclusive?"less than or equal to":"less than"} ${o.maximum}`;else if(o.type==="bigint")b=`BigInt must be ${o.exact?"exactly":o.inclusive?"less than or equal to":"less than"} ${o.maximum}`;else if(o.type==="date")b=`Date must be ${o.exact?"exactly":o.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(o.maximum))}`;else b="Invalid input";break;case kt.custom:b="Invalid input";break;case kt.invalid_intersection_types:b="Intersection results could not be merged";break;case kt.not_multiple_of:b=`Number must be a multiple of ${o.multipleOf}`;break;case kt.not_finite:b="Number must be finite";break;default:b=p.defaultError,Le.assertNever(o)}return{message:b}},qn=lu;var gc=qn;function cu(o){gc=o}function bs(){return gc}var ga=(o)=>{let{data:p,path:b,errorMaps:k,issueData:L}=o,P=[...b,...L.path||[]],U={...L,path:P};if(L.message!==void 0)return{...L,path:P,message:L.message};let z="",j=k.filter((Nt)=>!!Nt).slice().reverse();for(let Nt of j)z=Nt(U,{data:p,defaultError:z}).message;return{...L,path:P,message:z}},du=[];function Ht(o,p){let b=bs(),k=ga({issueData:p,data:o.data,path:o.path,errorMaps:[o.common.contextualErrorMap,o.schemaErrorMap,b,b===qn?void 0:qn].filter((L)=>!!L)});o.common.issues.push(k)}class Ti{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(o,p){let b=[];for(let k of p){if(k.status==="aborted")return le;if(k.status==="dirty")o.dirty();b.push(k.value)}return{status:o.value,value:b}}static async mergeObjectAsync(o,p){let b=[];for(let k of p){let L=await k.key,P=await k.value;b.push({key:L,value:P})}return Ti.mergeObjectSync(o,b)}static mergeObjectSync(o,p){let b={};for(let k of p){let{key:L,value:P}=k;if(L.status==="aborted")return le;if(P.status==="aborted")return le;if(L.status==="dirty")o.dirty();if(P.status==="dirty")o.dirty();if(L.value!=="__proto__"&&(typeof P.value!=="undefined"||k.alwaysSet))b[L.value]=P.value}return{status:o.value,value:b}}}var le=Object.freeze({status:"aborted"}),Vr=(o)=>({status:"dirty",value:o}),Ci=(o)=>({status:"valid",value:o}),ja=(o)=>o.status==="aborted",qa=(o)=>o.status==="dirty",vr=(o)=>o.status==="valid",Ts=(o)=>typeof Promise!=="undefined"&&o instanceof Promise;var ee;(function(o){o.errToObj=(p)=>typeof p==="string"?{message:p}:p||{},o.toString=(p)=>typeof p==="string"?p:p?.message})(ee||(ee={}));class En{constructor(o,p,b,k){this._cachedPath=[],this.parent=o,this.data=p,this._path=b,this._key=k}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var pc=(o,p)=>{if(vr(p))return{success:!0,data:p.value};else{if(!o.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let b=new ji(o.common.issues);return this._error=b,this._error}}}};function Ee(o){if(!o)return{};let{errorMap:p,invalid_type_error:b,required_error:k,description:L}=o;if(p&&(b||k))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(p)return{errorMap:p,description:L};return{errorMap:(U,z)=>{let{message:j}=o;if(U.code==="invalid_enum_value")return{message:j??z.defaultError};if(typeof z.data==="undefined")return{message:j??k??z.defaultError};if(U.code!=="invalid_type")return{message:z.defaultError};return{message:j??b??z.defaultError}},description:L}}class Ae{get description(){return this._def.description}_getType(o){return _n(o.data)}_getOrReturnCtx(o,p){return p||{common:o.parent.common,data:o.data,parsedType:_n(o.data),schemaErrorMap:this._def.errorMap,path:o.path,parent:o.parent}}_processInputParams(o){return{status:new Ti,ctx:{common:o.parent.common,data:o.data,parsedType:_n(o.data),schemaErrorMap:this._def.errorMap,path:o.path,parent:o.parent}}}_parseSync(o){let p=this._parse(o);if(Ts(p))throw new Error("Synchronous parse encountered promise.");return p}_parseAsync(o){let p=this._parse(o);return Promise.resolve(p)}parse(o,p){let b=this.safeParse(o,p);if(b.success)return b.data;throw b.error}safeParse(o,p){let b={common:{issues:[],async:p?.async??!1,contextualErrorMap:p?.errorMap},path:p?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:_n(o)},k=this._parseSync({data:o,path:b.path,parent:b});return pc(b,k)}"~validate"(o){let p={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:_n(o)};if(!this["~standard"].async)try{let b=this._parseSync({data:o,path:[],parent:p});return vr(b)?{value:b.value}:{issues:p.common.issues}}catch(b){if(b?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;p.common={issues:[],async:!0}}return this._parseAsync({data:o,path:[],parent:p}).then((b)=>vr(b)?{value:b.value}:{issues:p.common.issues})}async parseAsync(o,p){let b=await this.safeParseAsync(o,p);if(b.success)return b.data;throw b.error}async safeParseAsync(o,p){let b={common:{issues:[],contextualErrorMap:p?.errorMap,async:!0},path:p?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:o,parsedType:_n(o)},k=this._parse({data:o,path:b.path,parent:b}),L=await(Ts(k)?k:Promise.resolve(k));return pc(b,L)}refine(o,p){let b=(k)=>{if(typeof p==="string"||typeof p==="undefined")return{message:p};else if(typeof p==="function")return p(k);else return p};return this._refinement((k,L)=>{let P=o(k),U=()=>L.addIssue({code:kt.custom,...b(k)});if(typeof Promise!=="undefined"&&P instanceof Promise)return P.then((z)=>{if(!z)return U(),!1;else return!0});if(!P)return U(),!1;else return!0})}refinement(o,p){return this._refinement((b,k)=>{if(!o(b))return k.addIssue(typeof p==="function"?p(b,k):p),!1;else return!0})}_refinement(o){return new Sn({schema:this,typeName:ue.ZodEffects,effect:{type:"refinement",refinement:o}})}superRefine(o){return this._refinement(o)}constructor(o){this.spa=this.safeParseAsync,this._def=o,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(p)=>this["~validate"](p)}}optional(){return yn.create(this,this._def)}nullable(){return zn.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return vn.create(this)}promise(){return Yr.create(this,this._def)}or(o){return Rs.create([this,o],this._def)}and(o){return Ds.create(this,o,this._def)}transform(o){return new Sn({...Ee(this._def),schema:this,typeName:ue.ZodEffects,effect:{type:"transform",transform:o}})}default(o){let p=typeof o==="function"?o:()=>o;return new xs({...Ee(this._def),innerType:this,defaultValue:p,typeName:ue.ZodDefault})}brand(){return new za({typeName:ue.ZodBranded,type:this,...Ee(this._def)})}catch(o){let p=typeof o==="function"?o:()=>o;return new Ns({...Ee(this._def),innerType:this,catchValue:p,typeName:ue.ZodCatch})}describe(o){return new this.constructor({...this._def,description:o})}pipe(o){return ba.create(this,o)}readonly(){return Ps.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var uu=/^c[^\s-]{8,}$/i,hu=/^[0-9a-z]+$/,fu=/^[0-9A-HJKMNP-TV-Z]{26}$/i,mu=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,gu=/^[a-z0-9_-]{21}$/i,pu=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,vu=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,yu=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Eu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",al,Su=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,bu=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Tu=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Au=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,_u=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Lu=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,yc="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",wu=new RegExp(`^${yc}$`);function Ec(o){let p="[0-5]\\d";if(o.precision)p=`${p}\\.\\d{${o.precision}}`;else if(o.precision==null)p=`${p}(\\.\\d+)?`;let b=o.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${p})${b}`}function ku(o){return new RegExp(`^${Ec(o)}$`)}function Sc(o){let p=`${yc}T${Ec(o)}`,b=[];if(b.push(o.local?"Z?":"Z"),o.offset)b.push("([+-]\\d{2}:?\\d{2})");return p=`${p}(${b.join("|")})`,new RegExp(`^${p}$`)}function Ru(o,p){if((p==="v4"||!p)&&Su.test(o))return!0;if((p==="v6"||!p)&&Tu.test(o))return!0;return!1}function Du(o,p){if(!pu.test(o))return!1;try{let[b]=o.split(".");if(!b)return!1;let k=b.replace(/-/g,"+").replace(/_/g,"/").padEnd(b.length+(4-b.length%4)%4,"="),L=JSON.parse(atob(k));if(typeof L!=="object"||L===null)return!1;if("typ"in L&&L?.typ!=="JWT")return!1;if(!L.alg)return!1;if(p&&L.alg!==p)return!1;return!0}catch{return!1}}function Cu(o,p){if((p==="v4"||!p)&&bu.test(o))return!0;if((p==="v6"||!p)&&Au.test(o))return!0;return!1}class pn extends Ae{_parse(o){if(this._def.coerce)o.data=String(o.data);if(this._getType(o)!==Ut.string){let L=this._getOrReturnCtx(o);return Ht(L,{code:kt.invalid_type,expected:Ut.string,received:L.parsedType}),le}let b=new Ti,k=void 0;for(let L of this._def.checks)if(L.kind==="min"){if(o.data.length<L.value)k=this._getOrReturnCtx(o,k),Ht(k,{code:kt.too_small,minimum:L.value,type:"string",inclusive:!0,exact:!1,message:L.message}),b.dirty()}else if(L.kind==="max"){if(o.data.length>L.value)k=this._getOrReturnCtx(o,k),Ht(k,{code:kt.too_big,maximum:L.value,type:"string",inclusive:!0,exact:!1,message:L.message}),b.dirty()}else if(L.kind==="length"){let P=o.data.length>L.value,U=o.data.length<L.value;if(P||U){if(k=this._getOrReturnCtx(o,k),P)Ht(k,{code:kt.too_big,maximum:L.value,type:"string",inclusive:!0,exact:!0,message:L.message});else if(U)Ht(k,{code:kt.too_small,minimum:L.value,type:"string",inclusive:!0,exact:!0,message:L.message});b.dirty()}}else if(L.kind==="email"){if(!yu.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"email",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="emoji"){if(!al)al=new RegExp(Eu,"u");if(!al.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"emoji",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="uuid"){if(!mu.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"uuid",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="nanoid"){if(!gu.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"nanoid",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="cuid"){if(!uu.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"cuid",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="cuid2"){if(!hu.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"cuid2",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="ulid"){if(!fu.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"ulid",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="url")try{new URL(o.data)}catch{k=this._getOrReturnCtx(o,k),Ht(k,{validation:"url",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="regex"){if(L.regex.lastIndex=0,!L.regex.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"regex",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="trim")o.data=o.data.trim();else if(L.kind==="includes"){if(!o.data.includes(L.value,L.position))k=this._getOrReturnCtx(o,k),Ht(k,{code:kt.invalid_string,validation:{includes:L.value,position:L.position},message:L.message}),b.dirty()}else if(L.kind==="toLowerCase")o.data=o.data.toLowerCase();else if(L.kind==="toUpperCase")o.data=o.data.toUpperCase();else if(L.kind==="startsWith"){if(!o.data.startsWith(L.value))k=this._getOrReturnCtx(o,k),Ht(k,{code:kt.invalid_string,validation:{startsWith:L.value},message:L.message}),b.dirty()}else if(L.kind==="endsWith"){if(!o.data.endsWith(L.value))k=this._getOrReturnCtx(o,k),Ht(k,{code:kt.invalid_string,validation:{endsWith:L.value},message:L.message}),b.dirty()}else if(L.kind==="datetime"){if(!Sc(L).test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{code:kt.invalid_string,validation:"datetime",message:L.message}),b.dirty()}else if(L.kind==="date"){if(!wu.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{code:kt.invalid_string,validation:"date",message:L.message}),b.dirty()}else if(L.kind==="time"){if(!ku(L).test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{code:kt.invalid_string,validation:"time",message:L.message}),b.dirty()}else if(L.kind==="duration"){if(!vu.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"duration",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="ip"){if(!Ru(o.data,L.version))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"ip",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="jwt"){if(!Du(o.data,L.alg))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"jwt",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="cidr"){if(!Cu(o.data,L.version))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"cidr",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="base64"){if(!_u.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"base64",code:kt.invalid_string,message:L.message}),b.dirty()}else if(L.kind==="base64url"){if(!Lu.test(o.data))k=this._getOrReturnCtx(o,k),Ht(k,{validation:"base64url",code:kt.invalid_string,message:L.message}),b.dirty()}else Le.assertNever(L);return{status:b.value,value:o.data}}_regex(o,p,b){return this.refinement((k)=>o.test(k),{validation:p,code:kt.invalid_string,...ee.errToObj(b)})}_addCheck(o){return new pn({...this._def,checks:[...this._def.checks,o]})}email(o){return this._addCheck({kind:"email",...ee.errToObj(o)})}url(o){return this._addCheck({kind:"url",...ee.errToObj(o)})}emoji(o){return this._addCheck({kind:"emoji",...ee.errToObj(o)})}uuid(o){return this._addCheck({kind:"uuid",...ee.errToObj(o)})}nanoid(o){return this._addCheck({kind:"nanoid",...ee.errToObj(o)})}cuid(o){return this._addCheck({kind:"cuid",...ee.errToObj(o)})}cuid2(o){return this._addCheck({kind:"cuid2",...ee.errToObj(o)})}ulid(o){return this._addCheck({kind:"ulid",...ee.errToObj(o)})}base64(o){return this._addCheck({kind:"base64",...ee.errToObj(o)})}base64url(o){return this._addCheck({kind:"base64url",...ee.errToObj(o)})}jwt(o){return this._addCheck({kind:"jwt",...ee.errToObj(o)})}ip(o){return this._addCheck({kind:"ip",...ee.errToObj(o)})}cidr(o){return this._addCheck({kind:"cidr",...ee.errToObj(o)})}datetime(o){if(typeof o==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:o});return this._addCheck({kind:"datetime",precision:typeof o?.precision==="undefined"?null:o?.precision,offset:o?.offset??!1,local:o?.local??!1,...ee.errToObj(o?.message)})}date(o){return this._addCheck({kind:"date",message:o})}time(o){if(typeof o==="string")return this._addCheck({kind:"time",precision:null,message:o});return this._addCheck({kind:"time",precision:typeof o?.precision==="undefined"?null:o?.precision,...ee.errToObj(o?.message)})}duration(o){return this._addCheck({kind:"duration",...ee.errToObj(o)})}regex(o,p){return this._addCheck({kind:"regex",regex:o,...ee.errToObj(p)})}includes(o,p){return this._addCheck({kind:"includes",value:o,position:p?.position,...ee.errToObj(p?.message)})}startsWith(o,p){return this._addCheck({kind:"startsWith",value:o,...ee.errToObj(p)})}endsWith(o,p){return this._addCheck({kind:"endsWith",value:o,...ee.errToObj(p)})}min(o,p){return this._addCheck({kind:"min",value:o,...ee.errToObj(p)})}max(o,p){return this._addCheck({kind:"max",value:o,...ee.errToObj(p)})}length(o,p){return this._addCheck({kind:"length",value:o,...ee.errToObj(p)})}nonempty(o){return this.min(1,ee.errToObj(o))}trim(){return new pn({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new pn({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new pn({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((o)=>o.kind==="datetime")}get isDate(){return!!this._def.checks.find((o)=>o.kind==="date")}get isTime(){return!!this._def.checks.find((o)=>o.kind==="time")}get isDuration(){return!!this._def.checks.find((o)=>o.kind==="duration")}get isEmail(){return!!this._def.checks.find((o)=>o.kind==="email")}get isURL(){return!!this._def.checks.find((o)=>o.kind==="url")}get isEmoji(){return!!this._def.checks.find((o)=>o.kind==="emoji")}get isUUID(){return!!this._def.checks.find((o)=>o.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((o)=>o.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((o)=>o.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((o)=>o.kind==="cuid2")}get isULID(){return!!this._def.checks.find((o)=>o.kind==="ulid")}get isIP(){return!!this._def.checks.find((o)=>o.kind==="ip")}get isCIDR(){return!!this._def.checks.find((o)=>o.kind==="cidr")}get isBase64(){return!!this._def.checks.find((o)=>o.kind==="base64")}get isBase64url(){return!!this._def.checks.find((o)=>o.kind==="base64url")}get minLength(){let o=null;for(let p of this._def.checks)if(p.kind==="min"){if(o===null||p.value>o)o=p.value}return o}get maxLength(){let o=null;for(let p of this._def.checks)if(p.kind==="max"){if(o===null||p.value<o)o=p.value}return o}}pn.create=(o)=>{return new pn({checks:[],typeName:ue.ZodString,coerce:o?.coerce??!1,...Ee(o)})};function Iu(o,p){let b=(o.toString().split(".")[1]||"").length,k=(p.toString().split(".")[1]||"").length,L=b>k?b:k,P=Number.parseInt(o.toFixed(L).replace(".","")),U=Number.parseInt(p.toFixed(L).replace(".",""));return P%U/10**L}class Er extends Ae{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(o){if(this._def.coerce)o.data=Number(o.data);if(this._getType(o)!==Ut.number){let L=this._getOrReturnCtx(o);return Ht(L,{code:kt.invalid_type,expected:Ut.number,received:L.parsedType}),le}let b=void 0,k=new Ti;for(let L of this._def.checks)if(L.kind==="int"){if(!Le.isInteger(o.data))b=this._getOrReturnCtx(o,b),Ht(b,{code:kt.invalid_type,expected:"integer",received:"float",message:L.message}),k.dirty()}else if(L.kind==="min"){if(L.inclusive?o.data<L.value:o.data<=L.value)b=this._getOrReturnCtx(o,b),Ht(b,{code:kt.too_small,minimum:L.value,type:"number",inclusive:L.inclusive,exact:!1,message:L.message}),k.dirty()}else if(L.kind==="max"){if(L.inclusive?o.data>L.value:o.data>=L.value)b=this._getOrReturnCtx(o,b),Ht(b,{code:kt.too_big,maximum:L.value,type:"number",inclusive:L.inclusive,exact:!1,message:L.message}),k.dirty()}else if(L.kind==="multipleOf"){if(Iu(o.data,L.value)!==0)b=this._getOrReturnCtx(o,b),Ht(b,{code:kt.not_multiple_of,multipleOf:L.value,message:L.message}),k.dirty()}else if(L.kind==="finite"){if(!Number.isFinite(o.data))b=this._getOrReturnCtx(o,b),Ht(b,{code:kt.not_finite,message:L.message}),k.dirty()}else Le.assertNever(L);return{status:k.value,value:o.data}}gte(o,p){return this.setLimit("min",o,!0,ee.toString(p))}gt(o,p){return this.setLimit("min",o,!1,ee.toString(p))}lte(o,p){return this.setLimit("max",o,!0,ee.toString(p))}lt(o,p){return this.setLimit("max",o,!1,ee.toString(p))}setLimit(o,p,b,k){return new Er({...this._def,checks:[...this._def.checks,{kind:o,value:p,inclusive:b,message:ee.toString(k)}]})}_addCheck(o){return new Er({...this._def,checks:[...this._def.checks,o]})}int(o){return this._addCheck({kind:"int",message:ee.toString(o)})}positive(o){return this._addCheck({kind:"min",value:0,inclusive:!1,message:ee.toString(o)})}negative(o){return this._addCheck({kind:"max",value:0,inclusive:!1,message:ee.toString(o)})}nonpositive(o){return this._addCheck({kind:"max",value:0,inclusive:!0,message:ee.toString(o)})}nonnegative(o){return this._addCheck({kind:"min",value:0,inclusive:!0,message:ee.toString(o)})}multipleOf(o,p){return this._addCheck({kind:"multipleOf",value:o,message:ee.toString(p)})}finite(o){return this._addCheck({kind:"finite",message:ee.toString(o)})}safe(o){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:ee.toString(o)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:ee.toString(o)})}get minValue(){let o=null;for(let p of this._def.checks)if(p.kind==="min"){if(o===null||p.value>o)o=p.value}return o}get maxValue(){let o=null;for(let p of this._def.checks)if(p.kind==="max"){if(o===null||p.value<o)o=p.value}return o}get isInt(){return!!this._def.checks.find((o)=>o.kind==="int"||o.kind==="multipleOf"&&Le.isInteger(o.value))}get isFinite(){let o=null,p=null;for(let b of this._def.checks)if(b.kind==="finite"||b.kind==="int"||b.kind==="multipleOf")return!0;else if(b.kind==="min"){if(p===null||b.value>p)p=b.value}else if(b.kind==="max"){if(o===null||b.value<o)o=b.value}return Number.isFinite(p)&&Number.isFinite(o)}}Er.create=(o)=>{return new Er({checks:[],typeName:ue.ZodNumber,coerce:o?.coerce||!1,...Ee(o)})};class Sr extends Ae{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(o){if(this._def.coerce)try{o.data=BigInt(o.data)}catch{return this._getInvalidInput(o)}if(this._getType(o)!==Ut.bigint)return this._getInvalidInput(o);let b=void 0,k=new Ti;for(let L of this._def.checks)if(L.kind==="min"){if(L.inclusive?o.data<L.value:o.data<=L.value)b=this._getOrReturnCtx(o,b),Ht(b,{code:kt.too_small,type:"bigint",minimum:L.value,inclusive:L.inclusive,message:L.message}),k.dirty()}else if(L.kind==="max"){if(L.inclusive?o.data>L.value:o.data>=L.value)b=this._getOrReturnCtx(o,b),Ht(b,{code:kt.too_big,type:"bigint",maximum:L.value,inclusive:L.inclusive,message:L.message}),k.dirty()}else if(L.kind==="multipleOf"){if(o.data%L.value!==BigInt(0))b=this._getOrReturnCtx(o,b),Ht(b,{code:kt.not_multiple_of,multipleOf:L.value,message:L.message}),k.dirty()}else Le.assertNever(L);return{status:k.value,value:o.data}}_getInvalidInput(o){let p=this._getOrReturnCtx(o);return Ht(p,{code:kt.invalid_type,expected:Ut.bigint,received:p.parsedType}),le}gte(o,p){return this.setLimit("min",o,!0,ee.toString(p))}gt(o,p){return this.setLimit("min",o,!1,ee.toString(p))}lte(o,p){return this.setLimit("max",o,!0,ee.toString(p))}lt(o,p){return this.setLimit("max",o,!1,ee.toString(p))}setLimit(o,p,b,k){return new Sr({...this._def,checks:[...this._def.checks,{kind:o,value:p,inclusive:b,message:ee.toString(k)}]})}_addCheck(o){return new Sr({...this._def,checks:[...this._def.checks,o]})}positive(o){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:ee.toString(o)})}negative(o){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:ee.toString(o)})}nonpositive(o){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:ee.toString(o)})}nonnegative(o){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:ee.toString(o)})}multipleOf(o,p){return this._addCheck({kind:"multipleOf",value:o,message:ee.toString(p)})}get minValue(){let o=null;for(let p of this._def.checks)if(p.kind==="min"){if(o===null||p.value>o)o=p.value}return o}get maxValue(){let o=null;for(let p of this._def.checks)if(p.kind==="max"){if(o===null||p.value<o)o=p.value}return o}}Sr.create=(o)=>{return new Sr({checks:[],typeName:ue.ZodBigInt,coerce:o?.coerce??!1,...Ee(o)})};class Ls extends Ae{_parse(o){if(this._def.coerce)o.data=Boolean(o.data);if(this._getType(o)!==Ut.boolean){let b=this._getOrReturnCtx(o);return Ht(b,{code:kt.invalid_type,expected:Ut.boolean,received:b.parsedType}),le}return Ci(o.data)}}Ls.create=(o)=>{return new Ls({typeName:ue.ZodBoolean,coerce:o?.coerce||!1,...Ee(o)})};class Wr extends Ae{_parse(o){if(this._def.coerce)o.data=new Date(o.data);if(this._getType(o)!==Ut.date){let L=this._getOrReturnCtx(o);return Ht(L,{code:kt.invalid_type,expected:Ut.date,received:L.parsedType}),le}if(Number.isNaN(o.data.getTime())){let L=this._getOrReturnCtx(o);return Ht(L,{code:kt.invalid_date}),le}let b=new Ti,k=void 0;for(let L of this._def.checks)if(L.kind==="min"){if(o.data.getTime()<L.value)k=this._getOrReturnCtx(o,k),Ht(k,{code:kt.too_small,message:L.message,inclusive:!0,exact:!1,minimum:L.value,type:"date"}),b.dirty()}else if(L.kind==="max"){if(o.data.getTime()>L.value)k=this._getOrReturnCtx(o,k),Ht(k,{code:kt.too_big,message:L.message,inclusive:!0,exact:!1,maximum:L.value,type:"date"}),b.dirty()}else Le.assertNever(L);return{status:b.value,value:new Date(o.data.getTime())}}_addCheck(o){return new Wr({...this._def,checks:[...this._def.checks,o]})}min(o,p){return this._addCheck({kind:"min",value:o.getTime(),message:ee.toString(p)})}max(o,p){return this._addCheck({kind:"max",value:o.getTime(),message:ee.toString(p)})}get minDate(){let o=null;for(let p of this._def.checks)if(p.kind==="min"){if(o===null||p.value>o)o=p.value}return o!=null?new Date(o):null}get maxDate(){let o=null;for(let p of this._def.checks)if(p.kind==="max"){if(o===null||p.value<o)o=p.value}return o!=null?new Date(o):null}}Wr.create=(o)=>{return new Wr({checks:[],coerce:o?.coerce||!1,typeName:ue.ZodDate,...Ee(o)})};class pa extends Ae{_parse(o){if(this._getType(o)!==Ut.symbol){let b=this._getOrReturnCtx(o);return Ht(b,{code:kt.invalid_type,expected:Ut.symbol,received:b.parsedType}),le}return Ci(o.data)}}pa.create=(o)=>{return new pa({typeName:ue.ZodSymbol,...Ee(o)})};class ws extends Ae{_parse(o){if(this._getType(o)!==Ut.undefined){let b=this._getOrReturnCtx(o);return Ht(b,{code:kt.invalid_type,expected:Ut.undefined,received:b.parsedType}),le}return Ci(o.data)}}ws.create=(o)=>{return new ws({typeName:ue.ZodUndefined,...Ee(o)})};class ks extends Ae{_parse(o){if(this._getType(o)!==Ut.null){let b=this._getOrReturnCtx(o);return Ht(b,{code:kt.invalid_type,expected:Ut.null,received:b.parsedType}),le}return Ci(o.data)}}ks.create=(o)=>{return new ks({typeName:ue.ZodNull,...Ee(o)})};class jr extends Ae{constructor(){super(...arguments);this._any=!0}_parse(o){return Ci(o.data)}}jr.create=(o)=>{return new jr({typeName:ue.ZodAny,...Ee(o)})};class yr extends Ae{constructor(){super(...arguments);this._unknown=!0}_parse(o){return Ci(o.data)}}yr.create=(o)=>{return new yr({typeName:ue.ZodUnknown,...Ee(o)})};class Ln extends Ae{_parse(o){let p=this._getOrReturnCtx(o);return Ht(p,{code:kt.invalid_type,expected:Ut.never,received:p.parsedType}),le}}Ln.create=(o)=>{return new Ln({typeName:ue.ZodNever,...Ee(o)})};class va extends Ae{_parse(o){if(this._getType(o)!==Ut.undefined){let b=this._getOrReturnCtx(o);return Ht(b,{code:kt.invalid_type,expected:Ut.void,received:b.parsedType}),le}return Ci(o.data)}}va.create=(o)=>{return new va({typeName:ue.ZodVoid,...Ee(o)})};class vn extends Ae{_parse(o){let{ctx:p,status:b}=this._processInputParams(o),k=this._def;if(p.parsedType!==Ut.array)return Ht(p,{code:kt.invalid_type,expected:Ut.array,received:p.parsedType}),le;if(k.exactLength!==null){let P=p.data.length>k.exactLength.value,U=p.data.length<k.exactLength.value;if(P||U)Ht(p,{code:P?kt.too_big:kt.too_small,minimum:U?k.exactLength.value:void 0,maximum:P?k.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:k.exactLength.message}),b.dirty()}if(k.minLength!==null){if(p.data.length<k.minLength.value)Ht(p,{code:kt.too_small,minimum:k.minLength.value,type:"array",inclusive:!0,exact:!1,message:k.minLength.message}),b.dirty()}if(k.maxLength!==null){if(p.data.length>k.maxLength.value)Ht(p,{code:kt.too_big,maximum:k.maxLength.value,type:"array",inclusive:!0,exact:!1,message:k.maxLength.message}),b.dirty()}if(p.common.async)return Promise.all([...p.data].map((P,U)=>{return k.type._parseAsync(new En(p,P,p.path,U))})).then((P)=>{return Ti.mergeArray(b,P)});let L=[...p.data].map((P,U)=>{return k.type._parseSync(new En(p,P,p.path,U))});return Ti.mergeArray(b,L)}get element(){return this._def.type}min(o,p){return new vn({...this._def,minLength:{value:o,message:ee.toString(p)}})}max(o,p){return new vn({...this._def,maxLength:{value:o,message:ee.toString(p)}})}length(o,p){return new vn({...this._def,exactLength:{value:o,message:ee.toString(p)}})}nonempty(o){return this.min(1,o)}}vn.create=(o,p)=>{return new vn({type:o,minLength:null,maxLength:null,exactLength:null,typeName:ue.ZodArray,...Ee(p)})};function As(o){if(o instanceof je){let p={};for(let b in o.shape){let k=o.shape[b];p[b]=yn.create(As(k))}return new je({...o._def,shape:()=>p})}else if(o instanceof vn)return new vn({...o._def,type:As(o.element)});else if(o instanceof yn)return yn.create(As(o.unwrap()));else if(o instanceof zn)return zn.create(As(o.unwrap()));else if(o instanceof wn)return wn.create(o.items.map((p)=>As(p)));else return o}class je extends Ae{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let o=this._def.shape(),p=Le.objectKeys(o);return this._cached={shape:o,keys:p},this._cached}_parse(o){if(this._getType(o)!==Ut.object){let j=this._getOrReturnCtx(o);return Ht(j,{code:kt.invalid_type,expected:Ut.object,received:j.parsedType}),le}let{status:b,ctx:k}=this._processInputParams(o),{shape:L,keys:P}=this._getCached(),U=[];if(!(this._def.catchall instanceof Ln&&this._def.unknownKeys==="strip")){for(let j in k.data)if(!P.includes(j))U.push(j)}let z=[];for(let j of P){let Nt=L[j],ne=k.data[j];z.push({key:{status:"valid",value:j},value:Nt._parse(new En(k,ne,k.path,j)),alwaysSet:j in k.data})}if(this._def.catchall instanceof Ln){let j=this._def.unknownKeys;if(j==="passthrough")for(let Nt of U)z.push({key:{status:"valid",value:Nt},value:{status:"valid",value:k.data[Nt]}});else if(j==="strict"){if(U.length>0)Ht(k,{code:kt.unrecognized_keys,keys:U}),b.dirty()}else if(j==="strip");else throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let j=this._def.catchall;for(let Nt of U){let ne=k.data[Nt];z.push({key:{status:"valid",value:Nt},value:j._parse(new En(k,ne,k.path,Nt)),alwaysSet:Nt in k.data})}}if(k.common.async)return Promise.resolve().then(async()=>{let j=[];for(let Nt of z){let ne=await Nt.key,A=await Nt.value;j.push({key:ne,value:A,alwaysSet:Nt.alwaysSet})}return j}).then((j)=>{return Ti.mergeObjectSync(b,j)});else return Ti.mergeObjectSync(b,z)}get shape(){return this._def.shape()}strict(o){return ee.errToObj,new je({...this._def,unknownKeys:"strict",...o!==void 0?{errorMap:(p,b)=>{let k=this._def.errorMap?.(p,b).message??b.defaultError;if(p.code==="unrecognized_keys")return{message:ee.errToObj(o).message??k};return{message:k}}}:{}})}strip(){return new je({...this._def,unknownKeys:"strip"})}passthrough(){return new je({...this._def,unknownKeys:"passthrough"})}extend(o){return new je({...this._def,shape:()=>({...this._def.shape(),...o})})}merge(o){return new je({unknownKeys:o._def.unknownKeys,catchall:o._def.catchall,shape:()=>({...this._def.shape(),...o._def.shape()}),typeName:ue.ZodObject})}setKey(o,p){return this.augment({[o]:p})}catchall(o){return new je({...this._def,catchall:o})}pick(o){let p={};for(let b of Le.objectKeys(o))if(o[b]&&this.shape[b])p[b]=this.shape[b];return new je({...this._def,shape:()=>p})}omit(o){let p={};for(let b of Le.objectKeys(this.shape))if(!o[b])p[b]=this.shape[b];return new je({...this._def,shape:()=>p})}deepPartial(){return As(this)}partial(o){let p={};for(let b of Le.objectKeys(this.shape)){let k=this.shape[b];if(o&&!o[b])p[b]=k;else p[b]=k.optional()}return new je({...this._def,shape:()=>p})}required(o){let p={};for(let b of Le.objectKeys(this.shape))if(o&&!o[b])p[b]=this.shape[b];else{let L=this.shape[b];while(L instanceof yn)L=L._def.innerType;p[b]=L}return new je({...this._def,shape:()=>p})}keyof(){return bc(Le.objectKeys(this.shape))}}je.create=(o,p)=>{return new je({shape:()=>o,unknownKeys:"strip",catchall:Ln.create(),typeName:ue.ZodObject,...Ee(p)})};je.strictCreate=(o,p)=>{return new je({shape:()=>o,unknownKeys:"strict",catchall:Ln.create(),typeName:ue.ZodObject,...Ee(p)})};je.lazycreate=(o,p)=>{return new je({shape:o,unknownKeys:"strip",catchall:Ln.create(),typeName:ue.ZodObject,...Ee(p)})};class Rs extends Ae{_parse(o){let{ctx:p}=this._processInputParams(o),b=this._def.options;function k(L){for(let U of L)if(U.result.status==="valid")return U.result;for(let U of L)if(U.result.status==="dirty")return p.common.issues.push(...U.ctx.common.issues),U.result;let P=L.map((U)=>new ji(U.ctx.common.issues));return Ht(p,{code:kt.invalid_union,unionErrors:P}),le}if(p.common.async)return Promise.all(b.map(async(L)=>{let P={...p,common:{...p.common,issues:[]},parent:null};return{result:await L._parseAsync({data:p.data,path:p.path,parent:P}),ctx:P}})).then(k);else{let L=void 0,P=[];for(let z of b){let j={...p,common:{...p.common,issues:[]},parent:null},Nt=z._parseSync({data:p.data,path:p.path,parent:j});if(Nt.status==="valid")return Nt;else if(Nt.status==="dirty"&&!L)L={result:Nt,ctx:j};if(j.common.issues.length)P.push(j.common.issues)}if(L)return p.common.issues.push(...L.ctx.common.issues),L.result;let U=P.map((z)=>new ji(z));return Ht(p,{code:kt.invalid_union,unionErrors:U}),le}}get options(){return this._def.options}}Rs.create=(o,p)=>{return new Rs({options:o,typeName:ue.ZodUnion,...Ee(p)})};var Yn=(o)=>{if(o instanceof Cs)return Yn(o.schema);else if(o instanceof Sn)return Yn(o.innerType());else if(o instanceof Is)return[o.value];else if(o instanceof br)return o.options;else if(o instanceof Os)return Le.objectValues(o.enum);else if(o instanceof xs)return Yn(o._def.innerType);else if(o instanceof ws)return[void 0];else if(o instanceof ks)return[null];else if(o instanceof yn)return[void 0,...Yn(o.unwrap())];else if(o instanceof zn)return[null,...Yn(o.unwrap())];else if(o instanceof za)return Yn(o.unwrap());else if(o instanceof Ps)return Yn(o.unwrap());else if(o instanceof Ns)return Yn(o._def.innerType);else return[]};class Ya extends Ae{_parse(o){let{ctx:p}=this._processInputParams(o);if(p.parsedType!==Ut.object)return Ht(p,{code:kt.invalid_type,expected:Ut.object,received:p.parsedType}),le;let b=this.discriminator,k=p.data[b],L=this.optionsMap.get(k);if(!L)return Ht(p,{code:kt.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[b]}),le;if(p.common.async)return L._parseAsync({data:p.data,path:p.path,parent:p});else return L._parseSync({data:p.data,path:p.path,parent:p})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(o,p,b){let k=new Map;for(let L of p){let P=Yn(L.shape[o]);if(!P.length)throw new Error(`A discriminator value for key \`${o}\` could not be extracted from all schema options`);for(let U of P){if(k.has(U))throw new Error(`Discriminator property ${String(o)} has duplicate value ${String(U)}`);k.set(U,L)}}return new Ya({typeName:ue.ZodDiscriminatedUnion,discriminator:o,options:p,optionsMap:k,...Ee(b)})}}function ol(o,p){let b=_n(o),k=_n(p);if(o===p)return{valid:!0,data:o};else if(b===Ut.object&&k===Ut.object){let L=Le.objectKeys(p),P=Le.objectKeys(o).filter((z)=>L.indexOf(z)!==-1),U={...o,...p};for(let z of P){let j=ol(o[z],p[z]);if(!j.valid)return{valid:!1};U[z]=j.data}return{valid:!0,data:U}}else if(b===Ut.array&&k===Ut.array){if(o.length!==p.length)return{valid:!1};let L=[];for(let P=0;P<o.length;P++){let U=o[P],z=p[P],j=ol(U,z);if(!j.valid)return{valid:!1};L.push(j.data)}return{valid:!0,data:L}}else if(b===Ut.date&&k===Ut.date&&+o===+p)return{valid:!0,data:o};else return{valid:!1}}class Ds extends Ae{_parse(o){let{status:p,ctx:b}=this._processInputParams(o),k=(L,P)=>{if(ja(L)||ja(P))return le;let U=ol(L.value,P.value);if(!U.valid)return Ht(b,{code:kt.invalid_intersection_types}),le;if(qa(L)||qa(P))p.dirty();return{status:p.value,value:U.data}};if(b.common.async)return Promise.all([this._def.left._parseAsync({data:b.data,path:b.path,parent:b}),this._def.right._parseAsync({data:b.data,path:b.path,parent:b})]).then(([L,P])=>k(L,P));else return k(this._def.left._parseSync({data:b.data,path:b.path,parent:b}),this._def.right._parseSync({data:b.data,path:b.path,parent:b}))}}Ds.create=(o,p,b)=>{return new Ds({left:o,right:p,typeName:ue.ZodIntersection,...Ee(b)})};class wn extends Ae{_parse(o){let{status:p,ctx:b}=this._processInputParams(o);if(b.parsedType!==Ut.array)return Ht(b,{code:kt.invalid_type,expected:Ut.array,received:b.parsedType}),le;if(b.data.length<this._def.items.length)return Ht(b,{code:kt.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),le;if(!this._def.rest&&b.data.length>this._def.items.length)Ht(b,{code:kt.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),p.dirty();let L=[...b.data].map((P,U)=>{let z=this._def.items[U]||this._def.rest;if(!z)return null;return z._parse(new En(b,P,b.path,U))}).filter((P)=>!!P);if(b.common.async)return Promise.all(L).then((P)=>{return Ti.mergeArray(p,P)});else return Ti.mergeArray(p,L)}get items(){return this._def.items}rest(o){return new wn({...this._def,rest:o})}}wn.create=(o,p)=>{if(!Array.isArray(o))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new wn({items:o,typeName:ue.ZodTuple,rest:null,...Ee(p)})};class ya extends Ae{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(o){let{status:p,ctx:b}=this._processInputParams(o);if(b.parsedType!==Ut.object)return Ht(b,{code:kt.invalid_type,expected:Ut.object,received:b.parsedType}),le;let k=[],L=this._def.keyType,P=this._def.valueType;for(let U in b.data)k.push({key:L._parse(new En(b,U,b.path,U)),value:P._parse(new En(b,b.data[U],b.path,U)),alwaysSet:U in b.data});if(b.common.async)return Ti.mergeObjectAsync(p,k);else return Ti.mergeObjectSync(p,k)}get element(){return this._def.valueType}static create(o,p,b){if(p instanceof Ae)return new ya({keyType:o,valueType:p,typeName:ue.ZodRecord,...Ee(b)});return new ya({keyType:pn.create(),valueType:o,typeName:ue.ZodRecord,...Ee(p)})}}class Ea extends Ae{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(o){let{status:p,ctx:b}=this._processInputParams(o);if(b.parsedType!==Ut.map)return Ht(b,{code:kt.invalid_type,expected:Ut.map,received:b.parsedType}),le;let k=this._def.keyType,L=this._def.valueType,P=[...b.data.entries()].map(([U,z],j)=>{return{key:k._parse(new En(b,U,b.path,[j,"key"])),value:L._parse(new En(b,z,b.path,[j,"value"]))}});if(b.common.async){let U=new Map;return Promise.resolve().then(async()=>{for(let z of P){let j=await z.key,Nt=await z.value;if(j.status==="aborted"||Nt.status==="aborted")return le;if(j.status==="dirty"||Nt.status==="dirty")p.dirty();U.set(j.value,Nt.value)}return{status:p.value,value:U}})}else{let U=new Map;for(let z of P){let{key:j,value:Nt}=z;if(j.status==="aborted"||Nt.status==="aborted")return le;if(j.status==="dirty"||Nt.status==="dirty")p.dirty();U.set(j.value,Nt.value)}return{status:p.value,value:U}}}}Ea.create=(o,p,b)=>{return new Ea({valueType:p,keyType:o,typeName:ue.ZodMap,...Ee(b)})};class qr extends Ae{_parse(o){let{status:p,ctx:b}=this._processInputParams(o);if(b.parsedType!==Ut.set)return Ht(b,{code:kt.invalid_type,expected:Ut.set,received:b.parsedType}),le;let k=this._def;if(k.minSize!==null){if(b.data.size<k.minSize.value)Ht(b,{code:kt.too_small,minimum:k.minSize.value,type:"set",inclusive:!0,exact:!1,message:k.minSize.message}),p.dirty()}if(k.maxSize!==null){if(b.data.size>k.maxSize.value)Ht(b,{code:kt.too_big,maximum:k.maxSize.value,type:"set",inclusive:!0,exact:!1,message:k.maxSize.message}),p.dirty()}let L=this._def.valueType;function P(z){let j=new Set;for(let Nt of z){if(Nt.status==="aborted")return le;if(Nt.status==="dirty")p.dirty();j.add(Nt.value)}return{status:p.value,value:j}}let U=[...b.data.values()].map((z,j)=>L._parse(new En(b,z,b.path,j)));if(b.common.async)return Promise.all(U).then((z)=>P(z));else return P(U)}min(o,p){return new qr({...this._def,minSize:{value:o,message:ee.toString(p)}})}max(o,p){return new qr({...this._def,maxSize:{value:o,message:ee.toString(p)}})}size(o,p){return this.min(o,p).max(o,p)}nonempty(o){return this.min(1,o)}}qr.create=(o,p)=>{return new qr({valueType:o,minSize:null,maxSize:null,typeName:ue.ZodSet,...Ee(p)})};class _s extends Ae{constructor(){super(...arguments);this.validate=this.implement}_parse(o){let{ctx:p}=this._processInputParams(o);if(p.parsedType!==Ut.function)return Ht(p,{code:kt.invalid_type,expected:Ut.function,received:p.parsedType}),le;function b(U,z){return ga({data:U,path:p.path,errorMaps:[p.common.contextualErrorMap,p.schemaErrorMap,bs(),qn].filter((j)=>!!j),issueData:{code:kt.invalid_arguments,argumentsError:z}})}function k(U,z){return ga({data:U,path:p.path,errorMaps:[p.common.contextualErrorMap,p.schemaErrorMap,bs(),qn].filter((j)=>!!j),issueData:{code:kt.invalid_return_type,returnTypeError:z}})}let L={errorMap:p.common.contextualErrorMap},P=p.data;if(this._def.returns instanceof Yr){let U=this;return Ci(async function(...z){let j=new ji([]),Nt=await U._def.args.parseAsync(z,L).catch((Ft)=>{throw j.addIssue(b(z,Ft)),j}),ne=await Reflect.apply(P,this,Nt);return await U._def.returns._def.type.parseAsync(ne,L).catch((Ft)=>{throw j.addIssue(k(ne,Ft)),j})})}else{let U=this;return Ci(function(...z){let j=U._def.args.safeParse(z,L);if(!j.success)throw new ji([b(z,j.error)]);let Nt=Reflect.apply(P,this,j.data),ne=U._def.returns.safeParse(Nt,L);if(!ne.success)throw new ji([k(Nt,ne.error)]);return ne.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...o){return new _s({...this._def,args:wn.create(o).rest(yr.create())})}returns(o){return new _s({...this._def,returns:o})}implement(o){return this.parse(o)}strictImplement(o){return this.parse(o)}static create(o,p,b){return new _s({args:o?o:wn.create([]).rest(yr.create()),returns:p||yr.create(),typeName:ue.ZodFunction,...Ee(b)})}}class Cs extends Ae{get schema(){return this._def.getter()}_parse(o){let{ctx:p}=this._processInputParams(o);return this._def.getter()._parse({data:p.data,path:p.path,parent:p})}}Cs.create=(o,p)=>{return new Cs({getter:o,typeName:ue.ZodLazy,...Ee(p)})};class Is extends Ae{_parse(o){if(o.data!==this._def.value){let p=this._getOrReturnCtx(o);return Ht(p,{received:p.data,code:kt.invalid_literal,expected:this._def.value}),le}return{status:"valid",value:o.data}}get value(){return this._def.value}}Is.create=(o,p)=>{return new Is({value:o,typeName:ue.ZodLiteral,...Ee(p)})};function bc(o,p){return new br({values:o,typeName:ue.ZodEnum,...Ee(p)})}class br extends Ae{_parse(o){if(typeof o.data!=="string"){let p=this._getOrReturnCtx(o),b=this._def.values;return Ht(p,{expected:Le.joinValues(b),received:p.parsedType,code:kt.invalid_type}),le}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(o.data)){let p=this._getOrReturnCtx(o),b=this._def.values;return Ht(p,{received:p.data,code:kt.invalid_enum_value,options:b}),le}return Ci(o.data)}get options(){return this._def.values}get enum(){let o={};for(let p of this._def.values)o[p]=p;return o}get Values(){let o={};for(let p of this._def.values)o[p]=p;return o}get Enum(){let o={};for(let p of this._def.values)o[p]=p;return o}extract(o,p=this._def){return br.create(o,{...this._def,...p})}exclude(o,p=this._def){return br.create(this.options.filter((b)=>!o.includes(b)),{...this._def,...p})}}br.create=bc;class Os extends Ae{_parse(o){let p=Le.getValidEnumValues(this._def.values),b=this._getOrReturnCtx(o);if(b.parsedType!==Ut.string&&b.parsedType!==Ut.number){let k=Le.objectValues(p);return Ht(b,{expected:Le.joinValues(k),received:b.parsedType,code:kt.invalid_type}),le}if(!this._cache)this._cache=new Set(Le.getValidEnumValues(this._def.values));if(!this._cache.has(o.data)){let k=Le.objectValues(p);return Ht(b,{received:b.data,code:kt.invalid_enum_value,options:k}),le}return Ci(o.data)}get enum(){return this._def.values}}Os.create=(o,p)=>{return new Os({values:o,typeName:ue.ZodNativeEnum,...Ee(p)})};class Yr extends Ae{unwrap(){return this._def.type}_parse(o){let{ctx:p}=this._processInputParams(o);if(p.parsedType!==Ut.promise&&p.common.async===!1)return Ht(p,{code:kt.invalid_type,expected:Ut.promise,received:p.parsedType}),le;let b=p.parsedType===Ut.promise?p.data:Promise.resolve(p.data);return Ci(b.then((k)=>{return this._def.type.parseAsync(k,{path:p.path,errorMap:p.common.contextualErrorMap})}))}}Yr.create=(o,p)=>{return new Yr({type:o,typeName:ue.ZodPromise,...Ee(p)})};class Sn extends Ae{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===ue.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(o){let{status:p,ctx:b}=this._processInputParams(o),k=this._def.effect||null,L={addIssue:(P)=>{if(Ht(b,P),P.fatal)p.abort();else p.dirty()},get path(){return b.path}};if(L.addIssue=L.addIssue.bind(L),k.type==="preprocess"){let P=k.transform(b.data,L);if(b.common.async)return Promise.resolve(P).then(async(U)=>{if(p.value==="aborted")return le;let z=await this._def.schema._parseAsync({data:U,path:b.path,parent:b});if(z.status==="aborted")return le;if(z.status==="dirty")return Vr(z.value);if(p.value==="dirty")return Vr(z.value);return z});else{if(p.value==="aborted")return le;let U=this._def.schema._parseSync({data:P,path:b.path,parent:b});if(U.status==="aborted")return le;if(U.status==="dirty")return Vr(U.value);if(p.value==="dirty")return Vr(U.value);return U}}if(k.type==="refinement"){let P=(U)=>{let z=k.refinement(U,L);if(b.common.async)return Promise.resolve(z);if(z instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return U};if(b.common.async===!1){let U=this._def.schema._parseSync({data:b.data,path:b.path,parent:b});if(U.status==="aborted")return le;if(U.status==="dirty")p.dirty();return P(U.value),{status:p.value,value:U.value}}else return this._def.schema._parseAsync({data:b.data,path:b.path,parent:b}).then((U)=>{if(U.status==="aborted")return le;if(U.status==="dirty")p.dirty();return P(U.value).then(()=>{return{status:p.value,value:U.value}})})}if(k.type==="transform")if(b.common.async===!1){let P=this._def.schema._parseSync({data:b.data,path:b.path,parent:b});if(!vr(P))return le;let U=k.transform(P.value,L);if(U instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:p.value,value:U}}else return this._def.schema._parseAsync({data:b.data,path:b.path,parent:b}).then((P)=>{if(!vr(P))return le;return Promise.resolve(k.transform(P.value,L)).then((U)=>({status:p.value,value:U}))});Le.assertNever(k)}}Sn.create=(o,p,b)=>{return new Sn({schema:o,typeName:ue.ZodEffects,effect:p,...Ee(b)})};Sn.createWithPreprocess=(o,p,b)=>{return new Sn({schema:p,effect:{type:"preprocess",transform:o},typeName:ue.ZodEffects,...Ee(b)})};class yn extends Ae{_parse(o){if(this._getType(o)===Ut.undefined)return Ci(void 0);return this._def.innerType._parse(o)}unwrap(){return this._def.innerType}}yn.create=(o,p)=>{return new yn({innerType:o,typeName:ue.ZodOptional,...Ee(p)})};class zn extends Ae{_parse(o){if(this._getType(o)===Ut.null)return Ci(null);return this._def.innerType._parse(o)}unwrap(){return this._def.innerType}}zn.create=(o,p)=>{return new zn({innerType:o,typeName:ue.ZodNullable,...Ee(p)})};class xs extends Ae{_parse(o){let{ctx:p}=this._processInputParams(o),b=p.data;if(p.parsedType===Ut.undefined)b=this._def.defaultValue();return this._def.innerType._parse({data:b,path:p.path,parent:p})}removeDefault(){return this._def.innerType}}xs.create=(o,p)=>{return new xs({innerType:o,typeName:ue.ZodDefault,defaultValue:typeof p.default==="function"?p.default:()=>p.default,...Ee(p)})};class Ns extends Ae{_parse(o){let{ctx:p}=this._processInputParams(o),b={...p,common:{...p.common,issues:[]}},k=this._def.innerType._parse({data:b.data,path:b.path,parent:{...b}});if(Ts(k))return k.then((L)=>{return{status:"valid",value:L.status==="valid"?L.value:this._def.catchValue({get error(){return new ji(b.common.issues)},input:b.data})}});else return{status:"valid",value:k.status==="valid"?k.value:this._def.catchValue({get error(){return new ji(b.common.issues)},input:b.data})}}removeCatch(){return this._def.innerType}}Ns.create=(o,p)=>{return new Ns({innerType:o,typeName:ue.ZodCatch,catchValue:typeof p.catch==="function"?p.catch:()=>p.catch,...Ee(p)})};class Sa extends Ae{_parse(o){if(this._getType(o)!==Ut.nan){let b=this._getOrReturnCtx(o);return Ht(b,{code:kt.invalid_type,expected:Ut.nan,received:b.parsedType}),le}return{status:"valid",value:o.data}}}Sa.create=(o)=>{return new Sa({typeName:ue.ZodNaN,...Ee(o)})};var Ou=Symbol("zod_brand");class za extends Ae{_parse(o){let{ctx:p}=this._processInputParams(o),b=p.data;return this._def.type._parse({data:b,path:p.path,parent:p})}unwrap(){return this._def.type}}class ba extends Ae{_parse(o){let{status:p,ctx:b}=this._processInputParams(o);if(b.common.async)return(async()=>{let L=await this._def.in._parseAsync({data:b.data,path:b.path,parent:b});if(L.status==="aborted")return le;if(L.status==="dirty")return p.dirty(),Vr(L.value);else return this._def.out._parseAsync({data:L.value,path:b.path,parent:b})})();else{let k=this._def.in._parseSync({data:b.data,path:b.path,parent:b});if(k.status==="aborted")return le;if(k.status==="dirty")return p.dirty(),{status:"dirty",value:k.value};else return this._def.out._parseSync({data:k.value,path:b.path,parent:b})}}static create(o,p){return new ba({in:o,out:p,typeName:ue.ZodPipeline})}}class Ps extends Ae{_parse(o){let p=this._def.innerType._parse(o),b=(k)=>{if(vr(k))k.value=Object.freeze(k.value);return k};return Ts(p)?p.then((k)=>b(k)):b(p)}unwrap(){return this._def.innerType}}Ps.create=(o,p)=>{return new Ps({innerType:o,typeName:ue.ZodReadonly,...Ee(p)})};function vc(o,p){let b=typeof o==="function"?o(p):typeof o==="string"?{message:o}:o;return typeof b==="string"?{message:b}:b}function Tc(o,p={},b){if(o)return jr.create().superRefine((k,L)=>{let P=o(k);if(P instanceof Promise)return P.then((U)=>{if(!U){let z=vc(p,k),j=z.fatal??b??!0;L.addIssue({code:"custom",...z,fatal:j})}});if(!P){let U=vc(p,k),z=U.fatal??b??!0;L.addIssue({code:"custom",...U,fatal:z})}return});return jr.create()}var xu={object:je.lazycreate},ue;(function(o){o.ZodString="ZodString",o.ZodNumber="ZodNumber",o.ZodNaN="ZodNaN",o.ZodBigInt="ZodBigInt",o.ZodBoolean="ZodBoolean",o.ZodDate="ZodDate",o.ZodSymbol="ZodSymbol",o.ZodUndefined="ZodUndefined",o.ZodNull="ZodNull",o.ZodAny="ZodAny",o.ZodUnknown="ZodUnknown",o.ZodNever="ZodNever",o.ZodVoid="ZodVoid",o.ZodArray="ZodArray",o.ZodObject="ZodObject",o.ZodUnion="ZodUnion",o.ZodDiscriminatedUnion="ZodDiscriminatedUnion",o.ZodIntersection="ZodIntersection",o.ZodTuple="ZodTuple",o.ZodRecord="ZodRecord",o.ZodMap="ZodMap",o.ZodSet="ZodSet",o.ZodFunction="ZodFunction",o.ZodLazy="ZodLazy",o.ZodLiteral="ZodLiteral",o.ZodEnum="ZodEnum",o.ZodEffects="ZodEffects",o.ZodNativeEnum="ZodNativeEnum",o.ZodOptional="ZodOptional",o.ZodNullable="ZodNullable",o.ZodDefault="ZodDefault",o.ZodCatch="ZodCatch",o.ZodPromise="ZodPromise",o.ZodBranded="ZodBranded",o.ZodPipeline="ZodPipeline",o.ZodReadonly="ZodReadonly"})(ue||(ue={}));var Nu=(o,p={message:`Input not instance of ${o.name}`})=>Tc((b)=>b instanceof o,p),Ac=pn.create,_c=Er.create,Pu=Sa.create,Mu=Sr.create,Lc=Ls.create,Fu=Wr.create,Bu=pa.create,Uu=ws.create,$u=ks.create,Gu=jr.create,Hu=yr.create,Ku=Ln.create,Vu=va.create,Wu=vn.create,ju=je.create,qu=je.strictCreate,Yu=Rs.create,zu=Ya.create,Xu=Ds.create,Ju=wn.create,Qu=ya.create,Zu=Ea.create,th=qr.create,eh=_s.create,ih=Cs.create,nh=Is.create,rh=br.create,sh=Os.create,ah=Yr.create,oh=Sn.create,lh=yn.create,ch=zn.create,dh=Sn.createWithPreprocess,uh=ba.create,hh=()=>Ac().optional(),fh=()=>_c().optional(),mh=()=>Lc().optional(),gh={string:(o)=>pn.create({...o,coerce:!0}),number:(o)=>Er.create({...o,coerce:!0}),boolean:(o)=>Ls.create({...o,coerce:!0}),bigint:(o)=>Sr.create({...o,coerce:!0}),date:(o)=>Wr.create({...o,coerce:!0})};var ph=le;var ll=["subtitles","vtsel","ads","share","thumbnails","asel","qsel"];var wc=bt.object({url:bt.union([bt.string(),bt.array(bt.string()),bt.object({src:bt.string(),type:bt.string()}),bt.array(bt.object({src:bt.string(),type:bt.string()}))]).optional(),title:bt.string().optional(),poster:bt.string().optional(),description:bt.string().optional(),subtitles:bt.object({native:bt.boolean().optional(),show:bt.boolean().optional(),tracks:bt.array(bt.object({src:bt.string(),lang:bt.string().optional(),label:bt.string().optional(),crossorigin:bt.string().optional().nullable(),default:bt.boolean().optional(),kind:bt.union([bt.literal("captions"),bt.literal("chapters"),bt.literal("subtitles")]).optional(),mode:bt.union([bt.literal("hidden"),bt.literal("showing"),bt.literal("disabled")]).optional(),id:bt.string().optional()})).optional()}).optional(),thumbnails:bt.object({src:bt.string()}).optional(),metadata:bt.object({id:bt.string().optional(),media_id:bt.string().optional(),title:bt.string().optional(),description:bt.string().optional(),site_id:bt.string().optional(),sitegroup_id:bt.string().optional(),no_ads:bt.boolean().optional(),ad_keywords:bt.string().optional(),category_id:bt.string().optional(),category_name:bt.string().optional(),tags:bt.string().optional(),duration:bt.number().optional(),player_id:bt.string().optional()}).optional()}),cl=wc.transform(({url:o,...p})=>({src:o,...p})),Ta=bt.object({playlist:bt.union([bt.string(),bt.object({src:bt.string(),type:bt.string()}),bt.array(cl)]),lang:bt.string().optional(),consent:bt.number().default(9),token:bt.string().optional(),ui:bt.number().optional(),plugins:bt.array(bt.enum(ll)).default([...ll].filter((o)=>o!=="qsel")),brand_color:bt.string().optional(),recommendations:bt.boolean().optional(),metadata:bt.object({playlist_title:bt.string().optional(),player_id:bt.string().optional()}).optional(),share:bt.object({share_type:bt.string(),iframe:bt.boolean(),link:bt.boolean(),facebook:bt.boolean(),twitter:bt.boolean()}).optional(),ima:bt.object({NumRedirects:bt.number().optional(),timeout:bt.number().optional(),total_loading_timeout:bt.number().optional(),show_all_ads_on_seek:bt.boolean().optional(),ads:bt.array(bt.object({adTag:bt.union([bt.string(),bt.array(bt.string()),bt.function().args().returns(bt.promise(bt.string()))]),restart:bt.boolean().optional(),time:bt.number()})),Locale:bt.string().optional(),locale:bt.string().optional(),parameters:bt.record(bt.any()).optional(),autopause:bt.boolean().optional()}).optional()}),op=Ta.omit({playlist:!0}).extend({playlist:bt.array(cl)}),dl=wc.omit({url:!0}).and(bt.object({src:bt.union([bt.string(),bt.array(bt.string()),bt.object({src:bt.string(),type:bt.string()}),bt.array(bt.object({src:bt.string(),type:bt.string()}))])})),kc=Ta.omit({plugins:!0}).omit({playlist:!0}).extend({playlist:bt.array(dl)}),Rc=bt.array(cl);function vh(o){let p=document.createElement("a");p.href=o;let b=p.pathname?.split(".");return b.length>1&&b[b.length-1]}function yh(o){switch(o){case"video/mpd":return"application/dash+xml";case"video/m3u8":return"application/x-mpegurl";default:return o}}var Ic=({src:o,...p})=>[{src:o,type:o?yh(`video/${vh(o)}`):"",...p}];function Dc(o){return Ic({src:o})}function Cc({src:o,type:p,...b}){if(o&&p)return[{src:o,type:p,...b}];if(p&&!o)return[{type:p,...b}];return Ic({src:o,...b})}function Oc(o){if(typeof o==="string")return Dc(o);if(!Array.isArray(o)&&typeof o==="object")return Cc(o);return o.reduce((p,b)=>{if(typeof b==="string")b=Dc(b);if(typeof b==="object"&&!Array.isArray(b))b=Cc(b);return p.concat(b)},[])}async function xc(o){if(Array.isArray(o.playlist))return o;let p=typeof o.playlist==="object"?o.playlist.src:o.playlist,b=nl(rl(p)),k=await fetch(b);if(!k.ok)throw new Error(`Failed to fetch playlist: ${k.status} ${k.statusText}`);let L=await k.json(),P=kc.parse(L);return P.playlist.forEach((U)=>{Object.assign(U,{...U.metadata})}),Object.assign(o,{...P,...o,playlist:P.playlist})}async function Xa(o,p){(await Promise.all(p.map(Eh))).forEach((k)=>{let L=new(window.customElements.get("flowplayer-spin"))(o,k);o.emit(il,{spin:L,config:k}),o.append(L)})}async function Eh(o){let p=Oc(o.src||"");if(p.length!==1||!mc(p[0].src||"",p[0]))return o;try{let b=nl(rl(p[0].src??"")),k=await fetch(b);if(!k.ok)return o;let L=await k.json(),P=dl.parse(L);return delete o.src,Object.assign(o,{...P,...P.metadata??{},...o})}catch{return o}}var Ms=mn(Pc(),1);function zr(){let o=document.querySelectorAll("flowplayer-spin");return Array.from(o)}function ul(o){let p=o.root.getAttribute("spin-index");return parseFloat(p)}function Mc(o,p){let b=p[0].getBoundingClientRect().height,k=p[1].getBoundingClientRect().top-p[0].getBoundingClientRect().bottom;return Math.round(o.scrollTop/(b+k))}function Ja(o,p,b){let k=p.getBoundingClientRect().top,L=b.getBoundingClientRect().top,P=p.scrollTop;o.root.style.top=`${P-k+L}px`}function hl(o,p){let[b,k]=Array.from(o.querySelectorAll(".fp-engine")),L=b.root.getAttribute("spin-index")===p;return{primaryPlayer:L?b:k,secondaryPlayer:L?k:b}}function Qa(o,p,b,k){if(k.spinsLoading)return;let L=k.primarySpinIndex>=p.length-2;if(!(p.length<b.length)||!L)return;let U=b.slice(p.length,p.length+5);k.spinsLoading=Xa(o,U).then(()=>{ng(o,p,k),k.spinsLoading=void 0})}function ng(o,p,b){if(b.primarySpinIndex!==p.length-1)return;let{primaryPlayer:k,secondaryPlayer:L}=hl(o,String(b.primarySpinIndex));if(ul(L)>b.primarySpinIndex)return;return Xr(o,k,L,b.primarySpinIndex+1)}function Fc(o){if(o.hasState("is-loaded"))return;let p=o.opts.is_native;if(o.hls)return o.hls.startLoad();if(p)return o.load()}function Bc(o,p,b,k){let L=zr()[k],P=p[k];return b.setSrc(P.src??""),b.setOpts(P),b.root.setAttribute("spin-index",String(k)),Ja(b,o,L),{spin:L,config:P}}function Aa(o,p,b){o.emit(ma,Bc(o,o.items,p,b))}function Xr(o,p,b,k){if(Bc(o,o.items,b,k),p.hasState("is-loaded"))return Fc(b);let L=Fc.bind(null,b),P=()=>p.off(Ms.CAN_PLAY,L);p.once(Ms.CAN_PLAY,L),p.once(Ms.SOURCE,P),b.once(Ms.SOURCE,P)}function Uc(o){let{items:p,state:b}=o,k;o.addEventListener("scroll",()=>{clearTimeout(k),k=setTimeout(()=>{let L=zr();if(L.length<=1)return;let P=Mc(o,L),U=b.primarySpinIndex-P;if(!U)return;let{primaryPlayer:z,secondaryPlayer:j}=hl(o,String(b.primarySpinIndex));if(U>0)sg(o,z,j,P);if(U<0)rg(o,L,p,z,j,P,Math.abs(U));b.primarySpinIndex=P,ag(z,j),Qa(o,L,p.slice(),b)},150)})}function rg(o,p,b,k,L,P,U){if(U===1)o.emit(ma,{config:b[P],spin:p[P]});if(U>1)Aa(o,L,P);if(p.length-1>P)return Xr(o,L,k,P+1)}function sg(o,p,b,k){Aa(o,b,k),Xr(o,b,p,k+1)}function ag(o,p){o.root.setAttribute("next",""),o.root.removeAttribute("current"),p.root.setAttribute("current",""),p.root.removeAttribute("next")}class fl extends HTMLElement{items=[];state={primarySpinIndex:0,spinsLoading:void 0};constructor(){super();this.classList.add("fp-spins-container","init"),Uc(this)}addSpins(o){let p=Rc.parse(o);if(!p.length)return;if(this.items.push(...p),this.classList.contains("init"))return;Qa(this,zr(),this.items,this.state)}on(o,p,b){this.addEventListener(o,p,b)}emit(o,p){this.dispatchEvent(new CustomEvent(o,{detail:p}))}off(o,p){this.removeEventListener(o,p)}createPlayerWrapper(...o){let p=document.createElement("div");p.classList.add("fp-player-wrapper"),this.prepend(p),p.append(...o)}}async function $c(o){await new Promise((p)=>{if(document.querySelector(".fp-spins-container"))return p(null);let b=new MutationObserver(()=>{if(!document.querySelector(".fp-spins-container"))return;b.disconnect(),p(null)});b.observe(document,{childList:!0,subtree:!0})}),Gc(o)}function Gc(o){let p=o.getBoundingClientRect().top;o.style.height=`${window.innerHeight-p}px`}function Hc(o,p){window.addEventListener("resize",()=>{Gc(o);let b=zr();p.forEach((k)=>{let L=b[ul(k)];if(!L)return;Ja(k,o,L)})})}class Za extends HTMLElement{menuContainer;summaryEle;mainMenu;menuHeader;menuTitle;olEle;closeEle;player;constructor(o){super();this.className="fp-menu-dialog",this.player=o,this.menuContainer=document.createElement("details"),this.summaryEle=document.createElement("summary"),this.menuHeader=document.createElement("div"),this.menuTitle=document.createElement("h3"),this.olEle=document.createElement("ol"),this.mainMenu=document.createElement("div"),this.closeEle=document.createElement("span"),this.menuHeader.classList.add("fp-menu-header"),this.menuHeader.append(this.menuTitle,this.closeEle),this.mainMenu.classList.add("fp-menu","fp-main-menu"),this.mainMenu.append(this.menuHeader,this.olEle),this.closeEle.classList.add("fp-close"),this.closeEle.textContent="×",this.menuContainer.classList.add("fp-menu-container"),this.menuContainer.append(this.summaryEle,this.mainMenu),this.menuTitle.textContent=this.player.i18n("core.settings","Settings"),this.olEle.setAttribute("aria-labelledby",this.summaryEle.id),this.olEle.setAttribute("role","menu"),this.summaryEle.setAttribute("aria-haspopup","true"),this.summaryEle.setAttribute("aria-controls",this.olEle.id),this.summaryEle.setAttribute("tabindex","0"),this.summaryEle.setAttribute("aria-expanded","false"),this.summaryEle.setAttribute("role","button"),this.summaryEle.setAttribute("aria-label","Settings"),this.append(this.menuContainer),this.toggleVisibility(),o.on("keyboard:close:menus",this.onKeyboardCloseMenu.bind(this)),o.root.addEventListener("click",this.onRootClick.bind(this)),this.addEventListener("click",this.onMenuClick.bind(this)),["focusin","focusout"].forEach((p)=>this.mainMenu.addEventListener(p,this.onFocus.bind(this)))}appendMenu(o){this.createDialogOpt(o),this.addSubMenuBackButton(o.menuHeader),this.menuContainer.append(o.menu),o.remove()}createDialogOpt(o){let p=document.createElement("li");p.textContent=o.menuHeader.querySelector("h3")?.textContent||"";let b=this.detectSubMenuType(o.classList);this.toggleDialogOpt(o.menu,p,b),o.addEventListener(this.findSubMenuOptionsEvent(b),()=>{this.toggleDialogOpt(o.menu,p,b)}),p.onclick=b===1?this.onSubtitlesOptClick.bind(this,o):this.onOptClick.bind(this,o),p.setAttribute("role","menuitem"),p.setAttribute("aria-selected","false"),p.setAttribute("tabindex","0"),p.setAttribute("aria-haspopup","true"),p.setAttribute("aria-label",o.menuHeader.querySelector("h3")?.textContent||"")}toggleDialogOpt(o,p,b){try{o.querySelectorAll("li").length>(b===1?0:1)?this.olEle.appendChild(p):this.olEle.removeChild(p)}catch(k){}this.toggleVisibility()}addSubMenuBackButton(o){let p=document.createElement("div");p.className="fp-icon fp-menu-back fp-back-button",p.setAttribute("aria-hidden","true"),o.append(p)}openMenu(o){this.querySelectorAll(".fp-menu")?.forEach((p)=>{if(p===o)return;p?.classList.add("is-close")}),o.classList.remove("is-close"),o.querySelector("li")?.focus()}toggleMenuDialog(o){this.menuContainer.open=o,this.player.root.classList.toggle("has-menu-opened",o),this.summaryEle.setAttribute("aria-expanded",o+"")}toggleVisibility(){let o=!this.olEle.querySelectorAll("li").length;if(this.style.setProperty("display",o?"none":"block"),o&&this.menuContainer.open)this.toggleMenuDialog(!1)}onMenuClick(o){if(o.defaultPrevented)return;o.preventDefault();let p=o.target;if(p?.classList?.contains("fp-menu-back")||p?.closest("li"))return this.openMenu(this.mainMenu);let b=!this.menuContainer.open;if(b)this.openMenu(this.mainMenu);this.toggleMenuDialog(b)}onFocus(o){let p=o.target;if(!(p instanceof HTMLLIElement))return;p.setAttribute("aria-selected",o.type==="focusin"?"true":"false")}onOptClick(o,p){p.preventDefault(),this.openMenu(o.menu)}onSubtitlesOptClick(o,p){if(!this.player?.opt?.("subtitles.native"))o.createMenu(0);this.onOptClick(o,p)}onRootClick(o){if(o.composedPath().includes(this))return;this.toggleMenuDialog(!1)}onKeyboardCloseMenu(o){if(o.defaultPrevented)return;if(o.preventDefault(),this.mainMenu.classList.contains("is-close"))return this.openMenu(this.mainMenu);this.toggleMenuDialog(!1),this.summaryEle.focus()}detectSubMenuType(o){if(o.contains("fp-asel"))return 0;if(o.contains("fp-qsel"))return 2;if(o.contains("fp-speed"))return 4;if(o.contains("fp-cc"))return 1;if(o.contains("fp-vsel"))return 3}findSubMenuOptionsEvent(o){switch(o){case 0:return"audio:tracks";case 2:return"quality:tracks";case 4:return"speed:options";case 1:return"subs:tracks";case 3:return"video:tracks";default:return""}}}function ml(o,p,b){let L=new(window.customElements.get("flowplayer-spin-player"));L.setAttribute(b,"");let P=o(L,{...p,preload:"none",autopause:!0,ui:(p.ui??0)|2048|16384|1|(o.support().android?2:0),autoplay:1,loop:!0});return P.root.classList.add("is-spins"),og(P),P}function og(o){let p=o.root.querySelector("flowplayer-control");if(!p)return;if(!window.customElements.get("flowplayer-menu-dialog"))window.customElements.define("flowplayer-menu-dialog",Za);let b=document.createElement("div");b.classList.add("fp-spin-controls-bar"),p.prepend(b);let k=o.root.querySelector("flowplayer-volume-control");if(k)b.append(k);let L=new Za(o);b.append(L),["flowplayer-subtitles-menu","flowplayer-speed-menu","flowplayer-quality-menu","flowplayer-audio-menu","flowplayer-video-menu"].forEach((P)=>{let U=o.root.querySelector(P);if(U)L.appendMenu(U)})}class gl extends HTMLElement{constructor(o,p){super();if(this.classList.add("fp-spin"),p.poster)this.style.backgroundImage=`url(${p.poster})`}}class pl extends HTMLElement{}var Zc=mn(Kc(),1),td=mn(Vc(),1),ed=mn(Wc(),1),id=mn(jc(),1),nd=mn(qc(),1),rd=mn(Yc(),1),sd=mn(zc(),1),ad=mn(Xc(),1),od=mn(Jc(),1),ld=mn(Qc(),1);var vl={};el(vl,{zh:()=>wg,tr:()=>Lg,tlh:()=>_g,sv:()=>Ag,sk:()=>Tg,pt:()=>bg,pl:()=>Sg,oc:()=>Eg,nn:()=>yg,nl:()=>vg,nb:()=>pg,he:()=>gg,gr:()=>mg,fr:()=>fg,fi:()=>hg,es:()=>ug,en:()=>dg,de:()=>cg,cs:()=>lg});var lg={ads:{ad:"Reklama",ads:"Reklamy",advertisement:"Reklama",indicator:"Reklamy"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Titulky"},core:{exit_fullscreen:"Vypnout režim celé obrazovky",fullscreen:"Zapnout režim celé obrazovky",mute:"Vypnout zvuk",pause:"Pauza",play:"Přehrát",unmute:"Zapnout zvuk",volume:"Hlasitost"},ovp:{starting_in:"Odpočítavání"},playlist:{cancel:"Cancel",up_next:"Další"},qsel:{menu_title:"Kvalita"},share:{clipboard_failure:"Přístup do schránky se nezdařil",clipboard_success:"Kód na stránku je nyní ve vaší schránce",embed:"Kód na stránku",link:"Odkaz",menu_title:"Sdílet"},speed:{menu_title:"Rychlost"}},cg={ads:{ad:"Werbung",ads:"Werbung",advertisement:"Werbung",indicator:"Werbung"},audio:{button_txt:"Ton",menu_title:"Ton"},cc:{button:"CC",menu_title:"Untertitel"},core:{exit_fullscreen:"Vollbild verlassen",fullscreen:"Vollbild",mute:"Ton aus",pause:"Pause",play:"Abspielen",unmute:"Ton ein",volume:"Lautstärke"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Abbrechen",up_next:"Nächste"},qsel:{menu_title:"Qualität"},share:{clipboard_failure:"Zugriff auf Zwischenablage fehlgeschlagen",clipboard_success:"Embedcode in die Zwischenablage kopiert",embed:"Einbetten",link:"Link",menu_title:"Teilen"},speed:{menu_title:"Geschwindigkeit"}},dg={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertisement",indicator:"Ads"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Subtitles",options:"Options",tracks:"Tracks",reset:"Reset",colors:{Black:"Black",Blue:"Blue",Cyan:"Cyan",Green:"Green",Magenta:"Magenta",Red:"Red",White:"White",Yellow:"Yellow"},edgeStyle:{None:"None","Drop shadow":"Drop shadow",Raised:"Raised",Depressed:"Depressed",Outline:"Outline"},fontFamily:{"Monospaced Serif":"Monospaced Serif","Proportional Serif":"Proportional Serif","Monospaced Sans-Serif":"Monospaced Sans-Serif","Proportional Sans-Serif":"Proportional Sans-Serif",Casual:"Casual",Cursive:"Cursive"},properties:{fontFamily:"Font family",fontSize:"Font size",fontColor:"Font color",fontOpacity:"Font opacity",backgroundColor:"Background color",backgroundOpacity:"Background opacity",characterEdgeStyle:"Character edge style"}},chromecast:{start:"start casting",stop:"stop casting"},core:{exit_fullscreen:"Exit fullscreen",fullscreen:"Fullscreen",mute:"Mute",pause:"Pause",play:"Play",seconds:"Seconds",timeline_aria_label:"Seek slider",unmute:"Unmute",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Up next"},qsel:{menu_title:"Quality"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"The text is now on your clipboard",embed:"Embed",link:"Link",menu_title:"Share"},speed:{menu_title:"Speed"},vtsel:{button_txt:"Video",menu_title:"Video Track"}},ug={ads:{ad:"Anúncio",ads:"Anúncios",advertisement:"Anúncio",indicator:"Anúncios"},audio:{button_txt:"Áudio",menu_title:"Áudio"},cc:{button:"CC",menu_title:"Subtítulos"},core:{exit_fullscreen:"Pantalla no completa",fullscreen:"Pantalla completa",mute:"Silenciar",pause:"Pausa",play:"Reproducir",unmute:"No silenciado",volume:"Volumen"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancelar",up_next:"Siguiente"},qsel:{menu_title:"Calidad"},share:{clipboard_failure:"Fallo en el acceso al portapapeles",clipboard_success:"El código de insercíon ahora está en tu portapapeles",embed:"Insertar",link:"Enlace",menu_title:"Compartir"},speed:{menu_title:"Velocidad"}},hg={ads:{ad:"Mainos",ads:"Mainos",advertisement:"Mainos",indicator:"Mainos"},audio:{button_txt:"Kieli",menu_title:"Kieli"},cc:{button:"CC",menu_title:"Tekstitys"},core:{exit_fullscreen:"Poistu kokonäytön tilasta",fullscreen:"Koko näytön tila",mute:"Vaimenna",pause:"Keskeytä",play:"Toista",unmute:"Poista vaimennus",volume:"Äänenvoimakkuus"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Peruuta",up_next:"Seuraavaksi"},qsel:{menu_title:"Laatu"},share:{clipboard_failure:"Leikepöydän käyttö epäonnistui",clipboard_success:"Kopioitu leikepöydälle",embed:"Upota",link:"Linkki",menu_title:"Jaa"},speed:{menu_title:"Nopeus"}},fg={ads:{ad:"Annonce",ads:"Annonces",advertisement:"Annonce",indicator:"Annonces"},audio:{button_txt:"Son",menu_title:"Son"},cc:{button:"CC",menu_title:"Sous-titres"},core:{exit_fullscreen:"Quitter le mode plein écran",fullscreen:"Plein écran",mute:"Sourdine",pause:"Pause",play:"Lecture",unmute:"Son activé",volume:"Volume"},ovp:{starting_in:"Compte à rebours"},playlist:{cancel:"Annuler",up_next:"Suivant"},qsel:{menu_title:"Qualité"},share:{clipboard_failure:"L'accès au presse-papier a échoué",clipboard_success:"Le code embed est maintenant dans votre presse-papiers",embed:"Embed",link:"Lien",menu_title:"Partager"},speed:{menu_title:"Vitesse"}},mg={ads:{ad:"Διαφήμιση",ads:"Διαφήμισεις",advertisement:"Διαφήμιση",indicator:"Διαφήμισεις"},audio:{button_txt:"Ηχος",menu_title:"Κομμάτι ήχου"},cc:{button:"ΥΠ",menu_title:"Υπότιτλοι",options:"Επιλογες",tracks:"Κομματια",reset:"Επαναφορα",colors:{Black:"Μαυρο",Blue:"Μπλε",Cyan:"Γαλαζιο",Green:"Πρασσινο",Magenta:"Ροζ",Red:"Κοκκινο",White:"Λευκο",Yellow:"Κιτρινο"},edgeStyle:{None:"Κανενα","Drop shadow":"Αναπτυσσομενη σκια",Raised:"Αναγλυφο",Depressed:"Πεπλατυσμενο",Outline:"Περιγραμμα"},fontFamily:{"Monospaced Serif":"Serif σταθερου πλατους","Proportional Serif":"Serif αναλογικου πλατους","Monospaced Sans-Serif":"Sans-Serif σταθερου πλατους","Proportional Sans-Serif":"Sans-Serif αναλογικου πλατους",Casual:"Απλες",Cursive:"Λοξες"},properties:{fontFamily:"Οικογενεια γραμματοσειρων",fontSize:"Μεγεθος γραμματοσειρας",fontColor:"Χρωμα γραμματοσειρας",fontOpacity:"Αδιαφανεια γραμματοσειρας",backgroundColor:"Χρωμα φοντου",backgroundOpacity:"Αδιαφανεια φοντου",characterEdgeStyle:"Στιλ ακρων χαρακτηρα"}},core:{exit_fullscreen:"Έξοδος πλήρους οθονης",fullscreen:"Πλήρης οθόνη",mute:"Σίγαση",pause:"Παύση",play:"Αναπαραγωγή",unmute:"Κατάργηση σίγασης",volume:"Ενταση ήχου"},ovp:{starting_in:"Αντίστροφη μέτρηση"},playlist:{cancel:"Ακύρωση",up_next:"Επόμενο Βίντεο"},qsel:{menu_title:"Ανάλυση εικόνας"},share:{clipboard_failure:"Η αντιγραφη της επιλογής απέτυχε",clipboard_success:"H επιλογή αντιγράφηκε επιτυχώς",embed:"Κώδικας Ενσωμάτωσης",link:"Σύνδεσμος",menu_title:"Κοινοποίηση"},speed:{menu_title:"Ταχύτητα"}},gg={ads:{ad:"מודעה",ads:"מודעה",advertisement:"מודעה",indicator:"מודעה"},audio:{button_txt:"שֶׁמַע",menu_title:"שֶׁמַע"},cc:{button:"CC",menu_title:"כתוביות"},core:{exit_fullscreen:"צא ממסך מלא",fullscreen:"מסך מלא",mute:"לְהַשְׁתִיק",pause:"עצור",play:"נגן",unmute:"בטל השתקה",volume:"עוצמת שמע"},ovp:{starting_in:"ספירה לאחור"},playlist:{cancel:"לְבַטֵל",up_next:"הבא"},qsel:{menu_title:"איכות"},share:{clipboard_failure:"הגישה ללוח נכשלה",clipboard_success:"הטקסט נמצא כעת על הלוח שלך",embed:"לְשַׁבֵּץ",link:"קישור",menu_title:"לַחֲלוֹק"},speed:{menu_title:"מְהִירוּת"}},pg={ads:{ad:"Reklame",ads:"Reklame",advertisement:"Reklame",indicator:"Reklame"},audio:{button_txt:"Lydspor",menu_title:"Lydspor"},cc:{button:"CC",menu_title:"Teksting"},core:{exit_fullscreen:"Avslutt fullskjerm",fullscreen:"Fullskjerm",mute:"Skru av lyd",pause:"Pause",play:"Spill av",unmute:"Skru på lyd",volume:"Volum"},ovp:{starting_in:"Sendingen starter om"},playlist:{cancel:"Cancel",up_next:"Neste video"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Tilgang til utklippstavlen mislyktes",clipboard_success:"Teksten er nå på utklippstavlen din",embed:"Embed",link:"Link",menu_title:"Del"},speed:{menu_title:"Hastighet"}},vg={ads:{ad:"Ad",ads:"Ads",advertisement:"Advertentie",indicator:"Ads"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Ondertiteling"},core:{exit_fullscreen:"Sluit fullscreen",fullscreen:"Fullscreen",mute:"Dempen",pause:"Pause",play:"Play",unmute:"Dempen opheffen",volume:"Volume"},ovp:{starting_in:"Start over"},playlist:{cancel:"Annuleren",up_next:"Volgende"},qsel:{menu_title:"Kwaliteit"},share:{clipboard_failure:"Toegang tot klembord mislukt",clipboard_success:"De tekst staat nu op je klembord",embed:"Embed",link:"Link",menu_title:"Deel"},speed:{menu_title:"Snelheid"}},yg={ads:{ad:"Reklame",ads:"Reklame",advertisement:"Reklame",indicator:"Reklame"},audio:{button_txt:"Lydspor",menu_title:"Lydspor"},cc:{button:"CC",menu_title:"Teksting"},core:{exit_fullscreen:"Avslutt fullskjerm",fullscreen:"Fullskjerm",mute:"Skru av lyd",pause:"Pause",play:"Spel av",unmute:"Skru på lyd",volume:"Volum"},ovp:{starting_in:"Nedteljing"},playlist:{cancel:"Cancel",up_next:"Neste video"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Tilgang til utklippstavlen mislyktes",clipboard_success:"Teksten er no på utklippstavlen din",embed:"Embed",link:"Link",menu_title:"Del"},speed:{menu_title:"Hastighet"}},Eg={ads:{ad:"Publicitat",ads:"Publicitats",advertisement:"Publicitat",indicator:"Pubs"},audio:{button_txt:"Àudio",menu_title:"Àudio"},cc:{button:"ST",menu_title:"Sostítol"},core:{exit_fullscreen:"Sortir de l’ecran complèt",fullscreen:"Ecran complèt",mute:"Amudir",pause:"Pausa",play:"Lectura",unmute:"Restablir lo son",volume:"Volum"},ovp:{starting_in:"Descompte"},playlist:{cancel:"Anullar",up_next:"Seguent"},qsel:{menu_title:"Qualitat"},share:{clipboard_failure:"Fracàs de l’accès al quichapapièrs",clipboard_success:"Lo tèxt es copiat al quichapapièrs",embed:"Integrar",link:"Ligam",menu_title:"Partejar"},speed:{menu_title:"Velocitat"}},Sg={ads:{ad:"Reklama",ads:"Reklama",advertisement:"Reklama",indicator:"Reklama"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Napisy"},core:{exit_fullscreen:"Wyjdź z pełnego ekranu",fullscreen:"Pełny ekran",mute:"Wyciszenie",pause:"Pauza",play:"Odtwarzaj",unmute:"Wyłącz wyciszenie",volume:"Głośność"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Anuluj",up_next:"Następny"},qsel:{menu_title:"Jakość"},share:{clipboard_failure:"Błąd dostępu do schowka",clipboard_success:"Kod embedu jest teraz w twoim schowku.",embed:"Osadź",link:"Link",menu_title:"Share"},speed:{menu_title:"Prędkość"}},bg={ads:{ad:"Anúncio",ads:"Anúncios",advertisement:"Anúncio",indicator:"Anúncios"},audio:{button_txt:"Áudio",menu_title:"Áudio"},cc:{button:"CC",menu_title:"Subtítulos"},core:{exit_fullscreen:"Tela não cheia",fullscreen:"Tela cheia",mute:"Silenciar",pause:"Pausa",play:"Reproduzir",unmute:"Não silenciado",volume:"Volume"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancelar",up_next:"A seguir"},qsel:{menu_title:"Qualidade"},share:{clipboard_failure:"Falha no acesso à área de transferência",clipboard_success:"O código de inserção está agora na sua área de transferência",embed:"Embutir",link:"Link",menu_title:"Compartilhar"},speed:{menu_title:"Velocidade"}},Tg={ads:{ad:"Reklama",ads:"Reklamy",advertisement:"Reklama",indicator:"Reklamy"},audio:{button_txt:"Audio",menu_title:"Audio"},cc:{button:"CC",menu_title:"Titulky"},core:{exit_fullscreen:"Vypnúť režim celej obrazovky",fullscreen:"Zapnúť režim celej obrazovky",mute:"Vypnúť zvuk",pause:"Pauza",play:"Prehrať",unmute:"Zapnúť zvuk",volume:"Hlasitosť"},ovp:{starting_in:"Countdown"},playlist:{cancel:"Cancel",up_next:"Ďalšie"},qsel:{menu_title:"Kvalita"},share:{clipboard_failure:"Access to clipboard failed",clipboard_success:"Kód na stránku je teraz vo vašej schránke",embed:"Kód na stránku",link:"Odkaz",menu_title:"Zdieľať"},speed:{menu_title:"rRýchlosť"}},Ag={ads:{ad:"Reklam",ads:"Reklam",advertisement:"Reklam",indicator:"Reklam"},audio:{button_txt:"Ljud",menu_title:"Ljud"},cc:{button:"CC",menu_title:"Undertexter"},core:{exit_fullscreen:"Avsluta helskärm",fullscreen:"Helskärm",mute:"Ljud av",pause:"Paus",play:"Spela",unmute:"Ljud på",volume:"Volym"},ovp:{starting_in:"Börjar om"},playlist:{cancel:"Avbryt",up_next:"Nästa"},qsel:{menu_title:"Kvalitet"},share:{clipboard_failure:"Åtkomst till Urklipp misslyckades",clipboard_success:"Inbäddningskoden är nu kopierad",embed:"Bädda in",link:"Länk",menu_title:"Dela"},speed:{menu_title:"Hastighet"}},_g={ads:{ad:"'chel",ads:"tlhaw'DIyuS",advertisement:"'uQ'a'",indicator:"chel"},audio:{button_txt:"qaStaHvIS",menu_title:"qaStaHvIS"},cc:{button:"CC",menu_title:"qeylIS"},core:{exit_fullscreen:"tlhoy'",fullscreen:"che'",mute:"jaS",pause:"yev",play:"chu'",unmute:"Huy'vam",volume:"muq"},ovp:{starting_in:"qornel"},playlist:{cancel:"qil",up_next:"Hu'"},qsel:{menu_title:"boqral"},share:{clipboard_failure:"SengDaj LopmeH mIv'a'",clipboard_success:"che'rup neH 'oH buStaHvIS.",embed:"tlhIlwI'",link:"Hol",menu_title:"SaH"},speed:{menu_title:"pIp"}},Lg={ads:{ad:"Reklam",ads:"Reklamlar",advertisement:"Reklam",indicator:"Reklamlar"},audio:{button_txt:"Ses",menu_title:"Ses"},cc:{button:"CC",menu_title:"Altyazılar"},core:{exit_fullscreen:"Tam ekrandan çık",fullscreen:"Tam ekran",mute:"Sessiz",pause:"Duraklat",play:"Oynat",unmute:"Sesi aç",volume:"Ses"},ovp:{starting_in:"Geri sayım"},playlist:{cancel:"İptal",up_next:"Sonraki"},qsel:{menu_title:"Kalite"},share:{clipboard_failure:"Panoya erişim başarısız oldu",clipboard_success:"Metin panoya kopyalandı",embed:"Yerleştir",link:"Bağlantı",menu_title:"Paylaş"},speed:{menu_title:"Hız"}},wg={ads:{ad:"广告",ads:"广告",advertisement:"广告",indicator:"广告"},audio:{button_txt:"声音",menu_title:"声音"},cc:{button:"字幕",menu_title:"字幕"},core:{exit_fullscreen:"退出全屏",fullscreen:"全屏",mute:"静音",pause:"暂停",play:"播放",unmute:"取消静音",volume:"音量"},ovp:{starting_in:"倒计时"},playlist:{cancel:"取消",up_next:"即将播放"},qsel:{menu_title:"清晰度"},share:{clipboard_failure:"无法复制到剪贴板",clipboard_success:"已复制到剪贴板",embed:"嵌入",link:"链接",menu_title:"分享"},speed:{menu_title:"倍速"},vtsel:{button_txt:"视频",menu_title:"视频轨道"}};var kg=Zc.default(nd.default,id.default);function cd(o){let p=kg;return Object.assign(p.i18n,vl),[ad.default,od.default,ld.default,td.default,ed.default,sd.default,rd.default].forEach((b)=>{if(!o.plugins.includes(b.pluginName))return;p(b)}),p}if(!window.customElements.get("flowplayer-spin"))window.customElements.define("flowplayer-spin",gl);if(!window.customElements.get("flowplayer-spins-container"))window.customElements.define("flowplayer-spins-container",fl);if(!window.customElements.get("flowplayer-spin-player"))window.customElements.define("flowplayer-spin-player",pl);function m0(o){let b=new(window.customElements.get("flowplayer-spins-container")),k=Ta.parse(o),L=cd(k);return setTimeout(()=>Rg(L,b,Ta.parse(o)),0),b}async function Rg(o,p,b){let{playlist:k,...L}=await xc(b);p.items.push(...k);let P=ml(o,L,"current"),U=ml(o,L,"next");await $c(p),Hc(p,[P,U]),await Xa(p,p.items.slice(0,5)),p.createPlayerWrapper(P.root,U.root),Aa(p,P,0),Xr(p,P,U,1),p.classList.remove("init")}export{fc as events,m0 as createSpins};
|