@vkontakte/videoplayer-core 2.0.115-dev.0b2656af.0 → 2.0.115-dev.1dfe2867.0
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/es2015.cjs.js +3 -3
- package/es2015.esm.js +3 -3
- package/es2018.cjs.js +3 -3
- package/es2018.esm.js +3 -3
- package/esnext.cjs.js +3 -3
- package/esnext.esm.js +3 -3
- package/evergreen.esm.js +3 -3
- package/package.json +2 -2
package/esnext.esm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vkontakte/videoplayer-core v2.0.115-dev.
|
|
3
|
-
*
|
|
2
|
+
* @vkontakte/videoplayer-core v2.0.115-dev.1dfe2867.0
|
|
3
|
+
* Fri, 25 Oct 2024 08:16:13 GMT
|
|
4
4
|
* https://st.mycdn.me/static/vkontakte-videoplayer/2-0-115/doc/
|
|
5
5
|
*/
|
|
6
|
-
var zg=Object.create;var Xu=Object.defineProperty;var Kg=Object.getOwnPropertyDescriptor;var Jg=Object.getOwnPropertyNames;var Xg=Object.getPrototypeOf,Zg=Object.prototype.hasOwnProperty;var f=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var eS=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Jg(e))!Zg.call(r,a)&&a!==t&&Xu(r,a,{get:()=>e[a],enumerable:!(i=Kg(e,a))||i.enumerable});return r};var Be=(r,e,t)=>(t=r!=null?zg(Xg(r)):{},eS(e||!r||!r.__esModule?Xu(t,"default",{value:r,enumerable:!0}):t,r));var ve=f((e$,nl)=>{"use strict";nl.exports=function(r){try{return!!r()}catch{return!0}}});var qi=f((t$,ol)=>{"use strict";var uS=ve();ol.exports=!uS(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var ne=f((i$,cl)=>{"use strict";var ul=qi(),ll=Function.prototype,tn=ll.call,lS=ul&&ll.bind.bind(tn,tn);cl.exports=ul?lS:function(r){return function(){return tn.apply(r,arguments)}}});var ni=f((r$,pl)=>{"use strict";var dl=ne(),cS=dl({}.toString),dS=dl("".slice);pl.exports=function(r){return dS(cS(r),8,-1)}});var fl=f((a$,hl)=>{"use strict";var pS=ne(),hS=ve(),fS=ni(),rn=Object,mS=pS("".split);hl.exports=hS(function(){return!rn("z").propertyIsEnumerable(0)})?function(r){return fS(r)==="String"?mS(r,""):rn(r)}:rn});var oi=f((s$,ml)=>{"use strict";ml.exports=function(r){return r==null}});var Hi=f((n$,bl)=>{"use strict";var bS=oi(),gS=TypeError;bl.exports=function(r){if(bS(r))throw new gS("Can't call method on "+r);return r}});var ui=f((o$,gl)=>{"use strict";var SS=fl(),vS=Hi();gl.exports=function(r){return SS(vS(r))}});var an=f((u$,Sl)=>{"use strict";Sl.exports=function(){}});var Lt=f((l$,vl)=>{"use strict";vl.exports={}});var j=f((sn,yl)=>{"use strict";var ji=function(r){return r&&r.Math===Math&&r};yl.exports=ji(typeof globalThis=="object"&&globalThis)||ji(typeof window=="object"&&window)||ji(typeof self=="object"&&self)||ji(typeof global=="object"&&global)||ji(typeof sn=="object"&&sn)||function(){return this}()||Function("return this")()});var H=f((c$,Tl)=>{"use strict";var nn=typeof document=="object"&&document.all;Tl.exports=typeof nn>"u"&&nn!==void 0?function(r){return typeof r=="function"||r===nn}:function(r){return typeof r=="function"}});var xl=f((d$,El)=>{"use strict";var yS=j(),TS=H(),Il=yS.WeakMap;El.exports=TS(Il)&&/native code/.test(String(Il))});var Pe=f((p$,Pl)=>{"use strict";var IS=H();Pl.exports=function(r){return typeof r=="object"?r!==null:IS(r)}});var Ae=f((h$,Al)=>{"use strict";var ES=ve();Al.exports=!ES(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var Aa=f((f$,wl)=>{"use strict";var xS=j(),kl=Pe(),on=xS.document,PS=kl(on)&&kl(on.createElement);wl.exports=function(r){return PS?on.createElement(r):{}}});var un=f((m$,Rl)=>{"use strict";var AS=Ae(),kS=ve(),wS=Aa();Rl.exports=!AS&&!kS(function(){return Object.defineProperty(wS("div"),"a",{get:function(){return 7}}).a!==7})});var ln=f((b$,$l)=>{"use strict";var RS=Ae(),$S=ve();$l.exports=RS&&$S(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Qe=f((g$,Ll)=>{"use strict";var LS=Pe(),MS=String,CS=TypeError;Ll.exports=function(r){if(LS(r))return r;throw new CS(MS(r)+" is not an object")}});var ye=f((S$,Ml)=>{"use strict";var DS=qi(),ka=Function.prototype.call;Ml.exports=DS?ka.bind(ka):function(){return ka.apply(ka,arguments)}});var wa=f((v$,Cl)=>{"use strict";Cl.exports={}});var it=f((y$,Bl)=>{"use strict";var cn=wa(),dn=j(),BS=H(),Dl=function(r){return BS(r)?r:void 0};Bl.exports=function(r,e){return arguments.length<2?Dl(cn[r])||Dl(dn[r]):cn[r]&&cn[r][e]||dn[r]&&dn[r][e]}});var Gi=f((T$,Ol)=>{"use strict";var OS=ne();Ol.exports=OS({}.isPrototypeOf)});var li=f((I$,Nl)=>{"use strict";var VS=j(),Vl=VS.navigator,_l=Vl&&Vl.userAgent;Nl.exports=_l?String(_l):""});var hn=f((E$,Gl)=>{"use strict";var jl=j(),pn=li(),Fl=jl.process,Ul=jl.Deno,ql=Fl&&Fl.versions||Ul&&Ul.version,Hl=ql&&ql.v8,Oe,Ra;Hl&&(Oe=Hl.split("."),Ra=Oe[0]>0&&Oe[0]<4?1:+(Oe[0]+Oe[1]));!Ra&&pn&&(Oe=pn.match(/Edge\/(\d+)/),(!Oe||Oe[1]>=74)&&(Oe=pn.match(/Chrome\/(\d+)/),Oe&&(Ra=+Oe[1])));Gl.exports=Ra});var fn=f((x$,Ql)=>{"use strict";var Wl=hn(),_S=ve(),NS=j(),FS=NS.String;Ql.exports=!!Object.getOwnPropertySymbols&&!_S(function(){var r=Symbol("symbol detection");return!FS(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&Wl&&Wl<41})});var mn=f((P$,Yl)=>{"use strict";var US=fn();Yl.exports=US&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var bn=f((A$,zl)=>{"use strict";var qS=it(),HS=H(),jS=Gi(),GS=mn(),WS=Object;zl.exports=GS?function(r){return typeof r=="symbol"}:function(r){var e=qS("Symbol");return HS(e)&&jS(e.prototype,WS(r))}});var Wi=f((k$,Kl)=>{"use strict";var QS=String;Kl.exports=function(r){try{return QS(r)}catch{return"Object"}}});var rt=f((w$,Jl)=>{"use strict";var YS=H(),zS=Wi(),KS=TypeError;Jl.exports=function(r){if(YS(r))return r;throw new KS(zS(r)+" is not a function")}});var Qi=f((R$,Xl)=>{"use strict";var JS=rt(),XS=oi();Xl.exports=function(r,e){var t=r[e];return XS(t)?void 0:JS(t)}});var ec=f(($$,Zl)=>{"use strict";var gn=ye(),Sn=H(),vn=Pe(),ZS=TypeError;Zl.exports=function(r,e){var t,i;if(e==="string"&&Sn(t=r.toString)&&!vn(i=gn(t,r))||Sn(t=r.valueOf)&&!vn(i=gn(t,r))||e!=="string"&&Sn(t=r.toString)&&!vn(i=gn(t,r)))return i;throw new ZS("Can't convert object to primitive value")}});var Ve=f((L$,tc)=>{"use strict";tc.exports=!0});var ac=f((M$,rc)=>{"use strict";var ic=j(),ev=Object.defineProperty;rc.exports=function(r,e){try{ev(ic,r,{value:e,configurable:!0,writable:!0})}catch{ic[r]=e}return e}});var Yi=f((C$,oc)=>{"use strict";var tv=Ve(),iv=j(),rv=ac(),sc="__core-js_shared__",nc=oc.exports=iv[sc]||rv(sc,{});(nc.versions||(nc.versions=[])).push({version:"3.38.0",mode:tv?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var yn=f((D$,lc)=>{"use strict";var uc=Yi();lc.exports=function(r,e){return uc[r]||(uc[r]=e||{})}});var zi=f((B$,cc)=>{"use strict";var av=Hi(),sv=Object;cc.exports=function(r){return sv(av(r))}});var _e=f((O$,dc)=>{"use strict";var nv=ne(),ov=zi(),uv=nv({}.hasOwnProperty);dc.exports=Object.hasOwn||function(e,t){return uv(ov(e),t)}});var Tn=f((V$,pc)=>{"use strict";var lv=ne(),cv=0,dv=Math.random(),pv=lv(1 .toString);pc.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+pv(++cv+dv,36)}});var te=f((_$,fc)=>{"use strict";var hv=j(),fv=yn(),hc=_e(),mv=Tn(),bv=fn(),gv=mn(),ci=hv.Symbol,In=fv("wks"),Sv=gv?ci.for||ci:ci&&ci.withoutSetter||mv;fc.exports=function(r){return hc(In,r)||(In[r]=bv&&hc(ci,r)?ci[r]:Sv("Symbol."+r)),In[r]}});var Sc=f((N$,gc)=>{"use strict";var vv=ye(),mc=Pe(),bc=bn(),yv=Qi(),Tv=ec(),Iv=te(),Ev=TypeError,xv=Iv("toPrimitive");gc.exports=function(r,e){if(!mc(r)||bc(r))return r;var t=yv(r,xv),i;if(t){if(e===void 0&&(e="default"),i=vv(t,r,e),!mc(i)||bc(i))return i;throw new Ev("Can't convert object to primitive value")}return e===void 0&&(e="number"),Tv(r,e)}});var En=f((F$,vc)=>{"use strict";var Pv=Sc(),Av=bn();vc.exports=function(r){var e=Pv(r,"string");return Av(e)?e:e+""}});var Mt=f(Tc=>{"use strict";var kv=Ae(),wv=un(),Rv=ln(),$a=Qe(),yc=En(),$v=TypeError,xn=Object.defineProperty,Lv=Object.getOwnPropertyDescriptor,Pn="enumerable",An="configurable",kn="writable";Tc.f=kv?Rv?function(e,t,i){if($a(e),t=yc(t),$a(i),typeof e=="function"&&t==="prototype"&&"value"in i&&kn in i&&!i[kn]){var a=Lv(e,t);a&&a[kn]&&(e[t]=i.value,i={configurable:An in i?i[An]:a[An],enumerable:Pn in i?i[Pn]:a[Pn],writable:!1})}return xn(e,t,i)}:xn:function(e,t,i){if($a(e),t=yc(t),$a(i),wv)try{return xn(e,t,i)}catch{}if("get"in i||"set"in i)throw new $v("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var Ki=f((q$,Ic)=>{"use strict";Ic.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var di=f((H$,Ec)=>{"use strict";var Mv=Ae(),Cv=Mt(),Dv=Ki();Ec.exports=Mv?function(r,e,t){return Cv.f(r,e,Dv(1,t))}:function(r,e,t){return r[e]=t,r}});var La=f((j$,Pc)=>{"use strict";var Bv=yn(),Ov=Tn(),xc=Bv("keys");Pc.exports=function(r){return xc[r]||(xc[r]=Ov(r))}});var Ma=f((G$,Ac)=>{"use strict";Ac.exports={}});var Ln=f((W$,Rc)=>{"use strict";var Vv=xl(),wc=j(),_v=Pe(),Nv=di(),wn=_e(),Rn=Yi(),Fv=La(),Uv=Ma(),kc="Object already initialized",$n=wc.TypeError,qv=wc.WeakMap,Ca,Ji,Da,Hv=function(r){return Da(r)?Ji(r):Ca(r,{})},jv=function(r){return function(e){var t;if(!_v(e)||(t=Ji(e)).type!==r)throw new $n("Incompatible receiver, "+r+" required");return t}};Vv||Rn.state?(Ne=Rn.state||(Rn.state=new qv),Ne.get=Ne.get,Ne.has=Ne.has,Ne.set=Ne.set,Ca=function(r,e){if(Ne.has(r))throw new $n(kc);return e.facade=r,Ne.set(r,e),e},Ji=function(r){return Ne.get(r)||{}},Da=function(r){return Ne.has(r)}):(Ct=Fv("state"),Uv[Ct]=!0,Ca=function(r,e){if(wn(r,Ct))throw new $n(kc);return e.facade=r,Nv(r,Ct,e),e},Ji=function(r){return wn(r,Ct)?r[Ct]:{}},Da=function(r){return wn(r,Ct)});var Ne,Ct;Rc.exports={set:Ca,get:Ji,has:Da,enforce:Hv,getterFor:jv}});var Mn=f((Q$,Cc)=>{"use strict";var Gv=qi(),Mc=Function.prototype,$c=Mc.apply,Lc=Mc.call;Cc.exports=typeof Reflect=="object"&&Reflect.apply||(Gv?Lc.bind($c):function(){return Lc.apply($c,arguments)})});var Cn=f((Y$,Dc)=>{"use strict";var Wv=ni(),Qv=ne();Dc.exports=function(r){if(Wv(r)==="Function")return Qv(r)}});var _c=f(Vc=>{"use strict";var Bc={}.propertyIsEnumerable,Oc=Object.getOwnPropertyDescriptor,Yv=Oc&&!Bc.call({1:2},1);Vc.f=Yv?function(e){var t=Oc(this,e);return!!t&&t.enumerable}:Bc});var Uc=f(Fc=>{"use strict";var zv=Ae(),Kv=ye(),Jv=_c(),Xv=Ki(),Zv=ui(),ey=En(),ty=_e(),iy=un(),Nc=Object.getOwnPropertyDescriptor;Fc.f=zv?Nc:function(e,t){if(e=Zv(e),t=ey(t),iy)try{return Nc(e,t)}catch{}if(ty(e,t))return Xv(!Kv(Jv.f,e,t),e[t])}});var Dn=f((J$,qc)=>{"use strict";var ry=ve(),ay=H(),sy=/#|\.prototype\./,Xi=function(r,e){var t=oy[ny(r)];return t===ly?!0:t===uy?!1:ay(e)?ry(e):!!e},ny=Xi.normalize=function(r){return String(r).replace(sy,".").toLowerCase()},oy=Xi.data={},uy=Xi.NATIVE="N",ly=Xi.POLYFILL="P";qc.exports=Xi});var Zi=f((X$,jc)=>{"use strict";var Hc=Cn(),cy=rt(),dy=qi(),py=Hc(Hc.bind);jc.exports=function(r,e){return cy(r),e===void 0?r:dy?py(r,e):function(){return r.apply(e,arguments)}}});var ke=f((Z$,Wc)=>{"use strict";var er=j(),hy=Mn(),fy=Cn(),my=H(),by=Uc().f,gy=Dn(),pi=wa(),Sy=Zi(),hi=di(),Gc=_e();Yi();var vy=function(r){var e=function(t,i,a){if(this instanceof e){switch(arguments.length){case 0:return new r;case 1:return new r(t);case 2:return new r(t,i)}return new r(t,i,a)}return hy(r,this,arguments)};return e.prototype=r.prototype,e};Wc.exports=function(r,e){var t=r.target,i=r.global,a=r.stat,s=r.proto,n=i?er:a?er[t]:er[t]&&er[t].prototype,o=i?pi:pi[t]||hi(pi,t,{})[t],u=o.prototype,l,c,d,p,h,m,b,g,T;for(p in e)l=gy(i?p:t+(a?".":"#")+p,r.forced),c=!l&&n&&Gc(n,p),m=o[p],c&&(r.dontCallGetSet?(T=by(n,p),b=T&&T.value):b=n[p]),h=c&&b?b:e[p],!(!l&&!s&&typeof m==typeof h)&&(r.bind&&c?g=Sy(h,er):r.wrap&&c?g=vy(h):s&&my(h)?g=fy(h):g=h,(r.sham||h&&h.sham||m&&m.sham)&&hi(g,"sham",!0),hi(o,p,g),s&&(d=t+"Prototype",Gc(pi,d)||hi(pi,d,{}),hi(pi[d],p,h),r.real&&u&&(l||!u[p])&&hi(u,p,h)))}});var zc=f((eL,Yc)=>{"use strict";var Bn=Ae(),yy=_e(),Qc=Function.prototype,Ty=Bn&&Object.getOwnPropertyDescriptor,On=yy(Qc,"name"),Iy=On&&function(){}.name==="something",Ey=On&&(!Bn||Bn&&Ty(Qc,"name").configurable);Yc.exports={EXISTS:On,PROPER:Iy,CONFIGURABLE:Ey}});var Jc=f((tL,Kc)=>{"use strict";var xy=Math.ceil,Py=Math.floor;Kc.exports=Math.trunc||function(e){var t=+e;return(t>0?Py:xy)(t)}});var Ba=f((iL,Xc)=>{"use strict";var Ay=Jc();Xc.exports=function(r){var e=+r;return e!==e||e===0?0:Ay(e)}});var ed=f((rL,Zc)=>{"use strict";var ky=Ba(),wy=Math.max,Ry=Math.min;Zc.exports=function(r,e){var t=ky(r);return t<0?wy(t+e,0):Ry(t,e)}});var id=f((aL,td)=>{"use strict";var $y=Ba(),Ly=Math.min;td.exports=function(r){var e=$y(r);return e>0?Ly(e,9007199254740991):0}});var Oa=f((sL,rd)=>{"use strict";var My=id();rd.exports=function(r){return My(r.length)}});var nd=f((nL,sd)=>{"use strict";var Cy=ui(),Dy=ed(),By=Oa(),ad=function(r){return function(e,t,i){var a=Cy(e),s=By(a);if(s===0)return!r&&-1;var n=Dy(i,s),o;if(r&&t!==t){for(;s>n;)if(o=a[n++],o!==o)return!0}else for(;s>n;n++)if((r||n in a)&&a[n]===t)return r||n||0;return!r&&-1}};sd.exports={includes:ad(!0),indexOf:ad(!1)}});var ld=f((oL,ud)=>{"use strict";var Oy=ne(),Vn=_e(),Vy=ui(),_y=nd().indexOf,Ny=Ma(),od=Oy([].push);ud.exports=function(r,e){var t=Vy(r),i=0,a=[],s;for(s in t)!Vn(Ny,s)&&Vn(t,s)&&od(a,s);for(;e.length>i;)Vn(t,s=e[i++])&&(~_y(a,s)||od(a,s));return a}});var _n=f((uL,cd)=>{"use strict";cd.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var pd=f((lL,dd)=>{"use strict";var Fy=ld(),Uy=_n();dd.exports=Object.keys||function(e){return Fy(e,Uy)}});var fd=f(hd=>{"use strict";var qy=Ae(),Hy=ln(),jy=Mt(),Gy=Qe(),Wy=ui(),Qy=pd();hd.f=qy&&!Hy?Object.defineProperties:function(e,t){Gy(e);for(var i=Wy(t),a=Qy(t),s=a.length,n=0,o;s>n;)jy.f(e,o=a[n++],i[o]);return e}});var Nn=f((dL,md)=>{"use strict";var Yy=it();md.exports=Yy("document","documentElement")});var Hn=f((pL,Id)=>{"use strict";var zy=Qe(),Ky=fd(),bd=_n(),Jy=Ma(),Xy=Nn(),Zy=Aa(),eT=La(),gd=">",Sd="<",Un="prototype",qn="script",yd=eT("IE_PROTO"),Fn=function(){},Td=function(r){return Sd+qn+gd+r+Sd+"/"+qn+gd},vd=function(r){r.write(Td("")),r.close();var e=r.parentWindow.Object;return r=null,e},tT=function(){var r=Zy("iframe"),e="java"+qn+":",t;return r.style.display="none",Xy.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(Td("document.F=Object")),t.close(),t.F},Va,_a=function(){try{Va=new ActiveXObject("htmlfile")}catch{}_a=typeof document<"u"?document.domain&&Va?vd(Va):tT():vd(Va);for(var r=bd.length;r--;)delete _a[Un][bd[r]];return _a()};Jy[yd]=!0;Id.exports=Object.create||function(e,t){var i;return e!==null?(Fn[Un]=zy(e),i=new Fn,Fn[Un]=null,i[yd]=e):i=_a(),t===void 0?i:Ky.f(i,t)}});var xd=f((hL,Ed)=>{"use strict";var iT=ve();Ed.exports=!iT(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var Gn=f((fL,Ad)=>{"use strict";var rT=_e(),aT=H(),sT=zi(),nT=La(),oT=xd(),Pd=nT("IE_PROTO"),jn=Object,uT=jn.prototype;Ad.exports=oT?jn.getPrototypeOf:function(r){var e=sT(r);if(rT(e,Pd))return e[Pd];var t=e.constructor;return aT(t)&&e instanceof t?t.prototype:e instanceof jn?uT:null}});var fi=f((mL,kd)=>{"use strict";var lT=di();kd.exports=function(r,e,t,i){return i&&i.enumerable?r[e]=t:lT(r,e,t),r}});var zn=f((bL,$d)=>{"use strict";var cT=ve(),dT=H(),pT=Pe(),hT=Hn(),wd=Gn(),fT=fi(),mT=te(),bT=Ve(),Yn=mT("iterator"),Rd=!1,at,Wn,Qn;[].keys&&(Qn=[].keys(),"next"in Qn?(Wn=wd(wd(Qn)),Wn!==Object.prototype&&(at=Wn)):Rd=!0);var gT=!pT(at)||cT(function(){var r={};return at[Yn].call(r)!==r});gT?at={}:bT&&(at=hT(at));dT(at[Yn])||fT(at,Yn,function(){return this});$d.exports={IteratorPrototype:at,BUGGY_SAFARI_ITERATORS:Rd}});var Na=f((gL,Md)=>{"use strict";var ST=te(),vT=ST("toStringTag"),Ld={};Ld[vT]="z";Md.exports=String(Ld)==="[object z]"});var tr=f((SL,Cd)=>{"use strict";var yT=Na(),TT=H(),Fa=ni(),IT=te(),ET=IT("toStringTag"),xT=Object,PT=Fa(function(){return arguments}())==="Arguments",AT=function(r,e){try{return r[e]}catch{}};Cd.exports=yT?Fa:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=AT(e=xT(r),ET))=="string"?t:PT?Fa(e):(i=Fa(e))==="Object"&&TT(e.callee)?"Arguments":i}});var Bd=f((vL,Dd)=>{"use strict";var kT=Na(),wT=tr();Dd.exports=kT?{}.toString:function(){return"[object "+wT(this)+"]"}});var ir=f((yL,Vd)=>{"use strict";var RT=Na(),$T=Mt().f,LT=di(),MT=_e(),CT=Bd(),DT=te(),Od=DT("toStringTag");Vd.exports=function(r,e,t,i){var a=t?r:r&&r.prototype;a&&(MT(a,Od)||$T(a,Od,{configurable:!0,value:e}),i&&!RT&<(a,"toString",CT))}});var Nd=f((TL,_d)=>{"use strict";var BT=zn().IteratorPrototype,OT=Hn(),VT=Ki(),_T=ir(),NT=Lt(),FT=function(){return this};_d.exports=function(r,e,t,i){var a=e+" Iterator";return r.prototype=OT(BT,{next:VT(+!i,t)}),_T(r,a,!1,!0),NT[a]=FT,r}});var Ud=f((IL,Fd)=>{"use strict";var UT=ne(),qT=rt();Fd.exports=function(r,e,t){try{return UT(qT(Object.getOwnPropertyDescriptor(r,e)[t]))}catch{}}});var Hd=f((EL,qd)=>{"use strict";var HT=Pe();qd.exports=function(r){return HT(r)||r===null}});var Gd=f((xL,jd)=>{"use strict";var jT=Hd(),GT=String,WT=TypeError;jd.exports=function(r){if(jT(r))return r;throw new WT("Can't set "+GT(r)+" as a prototype")}});var Kn=f((PL,Wd)=>{"use strict";var QT=Ud(),YT=Pe(),zT=Hi(),KT=Gd();Wd.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=QT(Object.prototype,"__proto__","set"),t(e,[]),r=e instanceof Array}catch{}return function(a,s){return zT(a),KT(s),YT(a)&&(r?t(a,s):a.__proto__=s),a}}():void 0)});var rp=f((AL,ip)=>{"use strict";var JT=ke(),XT=ye(),Ua=Ve(),ep=zc(),ZT=H(),eI=Nd(),Qd=Gn(),Yd=Kn(),tI=ir(),iI=di(),Jn=fi(),rI=te(),zd=Lt(),tp=zn(),aI=ep.PROPER,sI=ep.CONFIGURABLE,Kd=tp.IteratorPrototype,qa=tp.BUGGY_SAFARI_ITERATORS,rr=rI("iterator"),Jd="keys",ar="values",Xd="entries",Zd=function(){return this};ip.exports=function(r,e,t,i,a,s,n){eI(t,e,i);var o=function(T){if(T===a&&p)return p;if(!qa&&T&&T in c)return c[T];switch(T){case Jd:return function(){return new t(this,T)};case ar:return function(){return new t(this,T)};case Xd:return function(){return new t(this,T)}}return function(){return new t(this)}},u=e+" Iterator",l=!1,c=r.prototype,d=c[rr]||c["@@iterator"]||a&&c[a],p=!qa&&d||o(a),h=e==="Array"&&c.entries||d,m,b,g;if(h&&(m=Qd(h.call(new r)),m!==Object.prototype&&m.next&&(!Ua&&Qd(m)!==Kd&&(Yd?Yd(m,Kd):ZT(m[rr])||Jn(m,rr,Zd)),tI(m,u,!0,!0),Ua&&(zd[u]=Zd))),aI&&a===ar&&d&&d.name!==ar&&(!Ua&&sI?iI(c,"name",ar):(l=!0,p=function(){return XT(d,this)})),a)if(b={values:o(ar),keys:s?p:o(Jd),entries:o(Xd)},n)for(g in b)(qa||l||!(g in c))&&Jn(c,g,b[g]);else JT({target:e,proto:!0,forced:qa||l},b);return(!Ua||n)&&c[rr]!==p&&Jn(c,rr,p,{name:a}),zd[e]=p,b}});var sp=f((kL,ap)=>{"use strict";ap.exports=function(r,e){return{value:r,done:e}}});var Zn=f((wL,cp)=>{"use strict";var nI=ui(),Xn=an(),np=Lt(),up=Ln(),oI=Mt().f,uI=rp(),Ha=sp(),lI=Ve(),cI=Ae(),lp="Array Iterator",dI=up.set,pI=up.getterFor(lp);cp.exports=uI(Array,"Array",function(r,e){dI(this,{type:lp,target:nI(r),index:0,kind:e})},function(){var r=pI(this),e=r.target,t=r.index++;if(!e||t>=e.length)return r.target=void 0,Ha(void 0,!0);switch(r.kind){case"keys":return Ha(t,!1);case"values":return Ha(e[t],!1)}return Ha([t,e[t]],!1)},"values");var op=np.Arguments=np.Array;Xn("keys");Xn("values");Xn("entries");if(!lI&&cI&&op.name!=="values")try{oI(op,"name",{value:"values"})}catch{}});var pp=f((RL,dp)=>{"use strict";var hI=te(),fI=Lt(),mI=hI("iterator"),bI=Array.prototype;dp.exports=function(r){return r!==void 0&&(fI.Array===r||bI[mI]===r)}});var eo=f(($L,fp)=>{"use strict";var gI=tr(),hp=Qi(),SI=oi(),vI=Lt(),yI=te(),TI=yI("iterator");fp.exports=function(r){if(!SI(r))return hp(r,TI)||hp(r,"@@iterator")||vI[gI(r)]}});var bp=f((LL,mp)=>{"use strict";var II=ye(),EI=rt(),xI=Qe(),PI=Wi(),AI=eo(),kI=TypeError;mp.exports=function(r,e){var t=arguments.length<2?AI(r):e;if(EI(t))return xI(II(t,r));throw new kI(PI(r)+" is not iterable")}});var vp=f((ML,Sp)=>{"use strict";var wI=ye(),gp=Qe(),RI=Qi();Sp.exports=function(r,e,t){var i,a;gp(r);try{if(i=RI(r,"return"),!i){if(e==="throw")throw t;return t}i=wI(i,r)}catch(s){a=!0,i=s}if(e==="throw")throw t;if(a)throw i;return gp(i),t}});var Ga=f((CL,Ep)=>{"use strict";var $I=Zi(),LI=ye(),MI=Qe(),CI=Wi(),DI=pp(),BI=Oa(),yp=Gi(),OI=bp(),VI=eo(),Tp=vp(),_I=TypeError,ja=function(r,e){this.stopped=r,this.result=e},Ip=ja.prototype;Ep.exports=function(r,e,t){var i=t&&t.that,a=!!(t&&t.AS_ENTRIES),s=!!(t&&t.IS_RECORD),n=!!(t&&t.IS_ITERATOR),o=!!(t&&t.INTERRUPTED),u=$I(e,i),l,c,d,p,h,m,b,g=function(E){return l&&Tp(l,"normal",E),new ja(!0,E)},T=function(E){return a?(MI(E),o?u(E[0],E[1],g):u(E[0],E[1])):o?u(E,g):u(E)};if(s)l=r.iterator;else if(n)l=r;else{if(c=VI(r),!c)throw new _I(CI(r)+" is not iterable");if(DI(c)){for(d=0,p=BI(r);p>d;d++)if(h=T(r[d]),h&&yp(Ip,h))return h;return new ja(!1)}l=OI(r,c)}for(m=s?r.next:l.next;!(b=LI(m,l)).done;){try{h=T(b.value)}catch(E){Tp(l,"throw",E)}if(typeof h=="object"&&h&&yp(Ip,h))return h}return new ja(!1)}});var Pp=f((DL,xp)=>{"use strict";var NI=Ae(),FI=Mt(),UI=Ki();xp.exports=function(r,e,t){NI?FI.f(r,e,UI(0,t)):r[e]=t}});var Ap=f(()=>{"use strict";var qI=ke(),HI=Ga(),jI=Pp();qI({target:"Object",stat:!0},{fromEntries:function(e){var t={};return HI(e,function(i,a){jI(t,i,a)},{AS_ENTRIES:!0}),t}})});var wp=f((VL,kp)=>{"use strict";Zn();Ap();var GI=wa();kp.exports=GI.Object.fromEntries});var $p=f((_L,Rp)=>{"use strict";Rp.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var Mp=f(()=>{"use strict";Zn();var WI=$p(),QI=j(),YI=ir(),Lp=Lt();for(Wa in WI)YI(QI[Wa],Wa),Lp[Wa]=Lp.Array;var Wa});var Dp=f((UL,Cp)=>{"use strict";var zI=wp();Mp();Cp.exports=zI});var to=f((qL,Bp)=>{"use strict";var KI=Dp();Bp.exports=KI});var Op=f(()=>{"use strict"});var io=f((GL,Vp)=>{"use strict";var sr=j(),JI=li(),XI=ni(),Qa=function(r){return JI.slice(0,r.length)===r};Vp.exports=function(){return Qa("Bun/")?"BUN":Qa("Cloudflare-Workers")?"CLOUDFLARE":Qa("Deno/")?"DENO":Qa("Node.js/")?"NODE":sr.Bun&&typeof Bun.version=="string"?"BUN":sr.Deno&&typeof Deno.version=="object"?"DENO":XI(sr.process)==="process"?"NODE":sr.window&&sr.document?"BROWSER":"REST"}()});var Ya=f((WL,_p)=>{"use strict";var ZI=io();_p.exports=ZI==="NODE"});var Fp=f((QL,Np)=>{"use strict";var eE=Mt();Np.exports=function(r,e,t){return eE.f(r,e,t)}});var Hp=f((YL,qp)=>{"use strict";var tE=it(),iE=Fp(),rE=te(),aE=Ae(),Up=rE("species");qp.exports=function(r){var e=tE(r);aE&&e&&!e[Up]&&iE(e,Up,{configurable:!0,get:function(){return this}})}});var Gp=f((zL,jp)=>{"use strict";var sE=Gi(),nE=TypeError;jp.exports=function(r,e){if(sE(e,r))return r;throw new nE("Incorrect invocation")}});var ao=f((KL,Wp)=>{"use strict";var oE=ne(),uE=H(),ro=Yi(),lE=oE(Function.toString);uE(ro.inspectSource)||(ro.inspectSource=function(r){return lE(r)});Wp.exports=ro.inspectSource});var Xp=f((JL,Jp)=>{"use strict";var cE=ne(),dE=ve(),Qp=H(),pE=tr(),hE=it(),fE=ao(),Yp=function(){},zp=hE("Reflect","construct"),so=/^\s*(?:class|function)\b/,mE=cE(so.exec),bE=!so.test(Yp),nr=function(e){if(!Qp(e))return!1;try{return zp(Yp,[],e),!0}catch{return!1}},Kp=function(e){if(!Qp(e))return!1;switch(pE(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return bE||!!mE(so,fE(e))}catch{return!0}};Kp.sham=!0;Jp.exports=!zp||dE(function(){var r;return nr(nr.call)||!nr(Object)||!nr(function(){r=!0})||r})?Kp:nr});var eh=f((XL,Zp)=>{"use strict";var gE=Xp(),SE=Wi(),vE=TypeError;Zp.exports=function(r){if(gE(r))return r;throw new vE(SE(r)+" is not a constructor")}});var no=f((ZL,ih)=>{"use strict";var th=Qe(),yE=eh(),TE=oi(),IE=te(),EE=IE("species");ih.exports=function(r,e){var t=th(r).constructor,i;return t===void 0||TE(i=th(t)[EE])?e:yE(i)}});var ah=f((eM,rh)=>{"use strict";var xE=ne();rh.exports=xE([].slice)});var nh=f((tM,sh)=>{"use strict";var PE=TypeError;sh.exports=function(r,e){if(r<e)throw new PE("Not enough arguments");return r}});var oo=f((iM,oh)=>{"use strict";var AE=li();oh.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(AE)});var go=f((rM,bh)=>{"use strict";var Te=j(),kE=Mn(),wE=Zi(),uh=H(),RE=_e(),mh=ve(),lh=Nn(),$E=ah(),ch=Aa(),LE=nh(),ME=oo(),CE=Ya(),fo=Te.setImmediate,mo=Te.clearImmediate,DE=Te.process,uo=Te.Dispatch,BE=Te.Function,dh=Te.MessageChannel,OE=Te.String,lo=0,or={},ph="onreadystatechange",ur,Dt,co,po;mh(function(){ur=Te.location});var bo=function(r){if(RE(or,r)){var e=or[r];delete or[r],e()}},ho=function(r){return function(){bo(r)}},hh=function(r){bo(r.data)},fh=function(r){Te.postMessage(OE(r),ur.protocol+"//"+ur.host)};(!fo||!mo)&&(fo=function(e){LE(arguments.length,1);var t=uh(e)?e:BE(e),i=$E(arguments,1);return or[++lo]=function(){kE(t,void 0,i)},Dt(lo),lo},mo=function(e){delete or[e]},CE?Dt=function(r){DE.nextTick(ho(r))}:uo&&uo.now?Dt=function(r){uo.now(ho(r))}:dh&&!ME?(co=new dh,po=co.port2,co.port1.onmessage=hh,Dt=wE(po.postMessage,po)):Te.addEventListener&&uh(Te.postMessage)&&!Te.importScripts&&ur&&ur.protocol!=="file:"&&!mh(fh)?(Dt=fh,Te.addEventListener("message",hh,!1)):ph in ch("script")?Dt=function(r){lh.appendChild(ch("script"))[ph]=function(){lh.removeChild(this),bo(r)}}:Dt=function(r){setTimeout(ho(r),0)});bh.exports={set:fo,clear:mo}});var vh=f((aM,Sh)=>{"use strict";var gh=j(),VE=Ae(),_E=Object.getOwnPropertyDescriptor;Sh.exports=function(r){if(!VE)return gh[r];var e=_E(gh,r);return e&&e.value}});var So=f((sM,Th)=>{"use strict";var yh=function(){this.head=null,this.tail=null};yh.prototype={add:function(r){var e={item:r,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var r=this.head;if(r){var e=this.head=r.next;return e===null&&(this.tail=null),r.item}}};Th.exports=yh});var Eh=f((nM,Ih)=>{"use strict";var NE=li();Ih.exports=/ipad|iphone|ipod/i.test(NE)&&typeof Pebble<"u"});var Ph=f((oM,xh)=>{"use strict";var FE=li();xh.exports=/web0s(?!.*chrome)/i.test(FE)});var Mh=f((uM,Lh)=>{"use strict";var bi=j(),UE=vh(),Ah=Zi(),vo=go().set,qE=So(),HE=oo(),jE=Eh(),GE=Ph(),yo=Ya(),kh=bi.MutationObserver||bi.WebKitMutationObserver,wh=bi.document,Rh=bi.process,za=bi.Promise,Eo=UE("queueMicrotask"),mi,To,Io,Ka,$h;Eo||(lr=new qE,cr=function(){var r,e;for(yo&&(r=Rh.domain)&&r.exit();e=lr.get();)try{e()}catch(t){throw lr.head&&mi(),t}r&&r.enter()},!HE&&!yo&&!GE&&kh&&wh?(To=!0,Io=wh.createTextNode(""),new kh(cr).observe(Io,{characterData:!0}),mi=function(){Io.data=To=!To}):!jE&&za&&za.resolve?(Ka=za.resolve(void 0),Ka.constructor=za,$h=Ah(Ka.then,Ka),mi=function(){$h(cr)}):yo?mi=function(){Rh.nextTick(cr)}:(vo=Ah(vo,bi),mi=function(){vo(cr)}),Eo=function(r){lr.head||mi(),lr.add(r)});var lr,cr;Lh.exports=Eo});var Dh=f((lM,Ch)=>{"use strict";Ch.exports=function(r,e){try{arguments.length===1?console.error(r):console.error(r,e)}catch{}}});var Ja=f((cM,Bh)=>{"use strict";Bh.exports=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}}});var Bt=f((dM,Oh)=>{"use strict";var WE=j();Oh.exports=WE.Promise});var gi=f((pM,Fh)=>{"use strict";var QE=j(),dr=Bt(),YE=H(),zE=Dn(),KE=ao(),JE=te(),Vh=io(),XE=Ve(),xo=hn(),_h=dr&&dr.prototype,ZE=JE("species"),Po=!1,Nh=YE(QE.PromiseRejectionEvent),ex=zE("Promise",function(){var r=KE(dr),e=r!==String(dr);if(!e&&xo===66||XE&&!(_h.catch&&_h.finally))return!0;if(!xo||xo<51||!/native code/.test(r)){var t=new dr(function(s){s(1)}),i=function(s){s(function(){},function(){})},a=t.constructor={};if(a[ZE]=i,Po=t.then(function(){})instanceof i,!Po)return!0}return!e&&(Vh==="BROWSER"||Vh==="DENO")&&!Nh});Fh.exports={CONSTRUCTOR:ex,REJECTION_EVENT:Nh,SUBCLASSING:Po}});var Si=f((hM,qh)=>{"use strict";var Uh=rt(),tx=TypeError,ix=function(r){var e,t;this.promise=new r(function(i,a){if(e!==void 0||t!==void 0)throw new tx("Bad Promise constructor");e=i,t=a}),this.resolve=Uh(e),this.reject=Uh(t)};qh.exports.f=function(r){return new ix(r)}});var uf=f(()=>{"use strict";var rx=ke(),ax=Ve(),ts=Ya(),bt=j(),Ii=ye(),Hh=fi(),jh=Kn(),sx=ir(),nx=Hp(),ox=rt(),es=H(),ux=Pe(),lx=Gp(),cx=no(),zh=go().set,$o=Mh(),dx=Dh(),px=Ja(),hx=So(),Kh=Ln(),is=Bt(),Lo=gi(),Jh=Si(),rs="Promise",Xh=Lo.CONSTRUCTOR,fx=Lo.REJECTION_EVENT,mx=Lo.SUBCLASSING,Ao=Kh.getterFor(rs),bx=Kh.set,vi=is&&is.prototype,Ot=is,Xa=vi,Zh=bt.TypeError,ko=bt.document,Mo=bt.process,wo=Jh.f,gx=wo,Sx=!!(ko&&ko.createEvent&&bt.dispatchEvent),ef="unhandledrejection",vx="rejectionhandled",Gh=0,tf=1,yx=2,Co=1,rf=2,Za,Wh,Tx,Qh,af=function(r){var e;return ux(r)&&es(e=r.then)?e:!1},sf=function(r,e){var t=e.value,i=e.state===tf,a=i?r.ok:r.fail,s=r.resolve,n=r.reject,o=r.domain,u,l,c;try{a?(i||(e.rejection===rf&&Ex(e),e.rejection=Co),a===!0?u=t:(o&&o.enter(),u=a(t),o&&(o.exit(),c=!0)),u===r.promise?n(new Zh("Promise-chain cycle")):(l=af(u))?Ii(l,u,s,n):s(u)):n(t)}catch(d){o&&!c&&o.exit(),n(d)}},nf=function(r,e){r.notified||(r.notified=!0,$o(function(){for(var t=r.reactions,i;i=t.get();)sf(i,r);r.notified=!1,e&&!r.rejection&&Ix(r)}))},of=function(r,e,t){var i,a;Sx?(i=ko.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(r,!1,!0),bt.dispatchEvent(i)):i={promise:e,reason:t},!fx&&(a=bt["on"+r])?a(i):r===ef&&dx("Unhandled promise rejection",t)},Ix=function(r){Ii(zh,bt,function(){var e=r.facade,t=r.value,i=Yh(r),a;if(i&&(a=px(function(){ts?Mo.emit("unhandledRejection",t,e):of(ef,e,t)}),r.rejection=ts||Yh(r)?rf:Co,a.error))throw a.value})},Yh=function(r){return r.rejection!==Co&&!r.parent},Ex=function(r){Ii(zh,bt,function(){var e=r.facade;ts?Mo.emit("rejectionHandled",e):of(vx,e,r.value)})},yi=function(r,e,t){return function(i){r(e,i,t)}},Ti=function(r,e,t){r.done||(r.done=!0,t&&(r=t),r.value=e,r.state=yx,nf(r,!0))},Ro=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw new Zh("Promise can't be resolved itself");var i=af(e);i?$o(function(){var a={done:!1};try{Ii(i,e,yi(Ro,a,r),yi(Ti,a,r))}catch(s){Ti(a,s,r)}}):(r.value=e,r.state=tf,nf(r,!1))}catch(a){Ti({done:!1},a,r)}}};if(Xh&&(Ot=function(e){lx(this,Xa),ox(e),Ii(Za,this);var t=Ao(this);try{e(yi(Ro,t),yi(Ti,t))}catch(i){Ti(t,i)}},Xa=Ot.prototype,Za=function(e){bx(this,{type:rs,done:!1,notified:!1,parent:!1,reactions:new hx,rejection:!1,state:Gh,value:void 0})},Za.prototype=Hh(Xa,"then",function(e,t){var i=Ao(this),a=wo(cx(this,Ot));return i.parent=!0,a.ok=es(e)?e:!0,a.fail=es(t)&&t,a.domain=ts?Mo.domain:void 0,i.state===Gh?i.reactions.add(a):$o(function(){sf(a,i)}),a.promise}),Wh=function(){var r=new Za,e=Ao(r);this.promise=r,this.resolve=yi(Ro,e),this.reject=yi(Ti,e)},Jh.f=wo=function(r){return r===Ot||r===Tx?new Wh(r):gx(r)},!ax&&es(is)&&vi!==Object.prototype)){Qh=vi.then,mx||Hh(vi,"then",function(e,t){var i=this;return new Ot(function(a,s){Ii(Qh,i,a,s)}).then(e,t)},{unsafe:!0});try{delete vi.constructor}catch{}jh&&jh(vi,Xa)}rx({global:!0,constructor:!0,wrap:!0,forced:Xh},{Promise:Ot});sx(Ot,rs,!1,!0);nx(rs)});var hf=f((bM,pf)=>{"use strict";var xx=te(),cf=xx("iterator"),df=!1;try{lf=0,Do={next:function(){return{done:!!lf++}},return:function(){df=!0}},Do[cf]=function(){return this},Array.from(Do,function(){throw 2})}catch{}var lf,Do;pf.exports=function(r,e){try{if(!e&&!df)return!1}catch{return!1}var t=!1;try{var i={};i[cf]=function(){return{next:function(){return{done:t=!0}}}},r(i)}catch{}return t}});var Bo=f((gM,ff)=>{"use strict";var Px=Bt(),Ax=hf(),kx=gi().CONSTRUCTOR;ff.exports=kx||!Ax(function(r){Px.all(r).then(void 0,function(){})})});var mf=f(()=>{"use strict";var wx=ke(),Rx=ye(),$x=rt(),Lx=Si(),Mx=Ja(),Cx=Ga(),Dx=Bo();wx({target:"Promise",stat:!0,forced:Dx},{all:function(e){var t=this,i=Lx.f(t),a=i.resolve,s=i.reject,n=Mx(function(){var o=$x(t.resolve),u=[],l=0,c=1;Cx(e,function(d){var p=l++,h=!1;c++,Rx(o,t,d).then(function(m){h||(h=!0,u[p]=m,--c||a(u))},s)}),--c||a(u)});return n.error&&s(n.value),i.promise}})});var gf=f(()=>{"use strict";var Bx=ke(),Ox=Ve(),Vx=gi().CONSTRUCTOR,Vo=Bt(),_x=it(),Nx=H(),Fx=fi(),bf=Vo&&Vo.prototype;Bx({target:"Promise",proto:!0,forced:Vx,real:!0},{catch:function(r){return this.then(void 0,r)}});!Ox&&Nx(Vo)&&(Oo=_x("Promise").prototype.catch,bf.catch!==Oo&&Fx(bf,"catch",Oo,{unsafe:!0}));var Oo});var Sf=f(()=>{"use strict";var Ux=ke(),qx=ye(),Hx=rt(),jx=Si(),Gx=Ja(),Wx=Ga(),Qx=Bo();Ux({target:"Promise",stat:!0,forced:Qx},{race:function(e){var t=this,i=jx.f(t),a=i.reject,s=Gx(function(){var n=Hx(t.resolve);Wx(e,function(o){qx(n,t,o).then(i.resolve,a)})});return s.error&&a(s.value),i.promise}})});var vf=f(()=>{"use strict";var Yx=ke(),zx=Si(),Kx=gi().CONSTRUCTOR;Yx({target:"Promise",stat:!0,forced:Kx},{reject:function(e){var t=zx.f(this),i=t.reject;return i(e),t.promise}})});var _o=f((AM,yf)=>{"use strict";var Jx=Qe(),Xx=Pe(),Zx=Si();yf.exports=function(r,e){if(Jx(r),Xx(e)&&e.constructor===r)return e;var t=Zx.f(r),i=t.resolve;return i(e),t.promise}});var Ef=f(()=>{"use strict";var eP=ke(),tP=it(),Tf=Ve(),iP=Bt(),If=gi().CONSTRUCTOR,rP=_o(),aP=tP("Promise"),sP=Tf&&!If;eP({target:"Promise",stat:!0,forced:Tf||If},{resolve:function(e){return rP(sP&&this===aP?iP:this,e)}})});var xf=f(()=>{"use strict";uf();mf();gf();Sf();vf();Ef()});var wf=f(()=>{"use strict";var nP=ke(),oP=Ve(),as=Bt(),uP=ve(),Af=it(),kf=H(),lP=no(),Pf=_o(),cP=fi(),Fo=as&&as.prototype,dP=!!as&&uP(function(){Fo.finally.call({then:function(){}},function(){})});nP({target:"Promise",proto:!0,real:!0,forced:dP},{finally:function(r){var e=lP(this,Af("Promise")),t=kf(r);return this.then(t?function(i){return Pf(e,r()).then(function(){return i})}:r,t?function(i){return Pf(e,r()).then(function(){throw i})}:r)}});!oP&&kf(as)&&(No=Af("Promise").prototype.finally,Fo.finally!==No&&cP(Fo,"finally",No,{unsafe:!0}));var No});var ss=f((CM,Rf)=>{"use strict";var pP=it();Rf.exports=pP});var Lf=f((DM,$f)=>{"use strict";Op();xf();wf();var hP=ss();$f.exports=hP("Promise","finally")});var Cf=f((BM,Mf)=>{"use strict";var fP=Lf();Mf.exports=fP});var ns=f((OM,Df)=>{"use strict";var mP=Cf();Df.exports=mP});var sm=f(()=>{"use strict";var jP=ke(),GP=zi(),WP=Oa(),QP=Ba(),YP=an();jP({target:"Array",proto:!0},{at:function(e){var t=GP(this),i=WP(t),a=QP(e),s=a>=0?a:i+a;return s<0||s>=i?void 0:t[s]}});YP("at")});var om=f((GC,nm)=>{"use strict";sm();var zP=ss();nm.exports=zP("Array","at")});var lm=f((WC,um)=>{"use strict";var KP=om();um.exports=KP});var Pi=f((QC,cm)=>{"use strict";var JP=lm();cm.exports=JP});var sb=f(()=>{"use strict"});var nb=f(()=>{"use strict"});var ub=f((YO,ob)=>{"use strict";var ak=Pe(),sk=ni(),nk=te(),ok=nk("match");ob.exports=function(r){var e;return ak(r)&&((e=r[ok])!==void 0?!!e:sk(r)==="RegExp")}});var cb=f((zO,lb)=>{"use strict";var uk=tr(),lk=String;lb.exports=function(r){if(uk(r)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return lk(r)}});var pb=f((KO,db)=>{"use strict";var ck=Qe();db.exports=function(){var r=ck(this),e="";return r.hasIndices&&(e+="d"),r.global&&(e+="g"),r.ignoreCase&&(e+="i"),r.multiline&&(e+="m"),r.dotAll&&(e+="s"),r.unicode&&(e+="u"),r.unicodeSets&&(e+="v"),r.sticky&&(e+="y"),e}});var mb=f((JO,fb)=>{"use strict";var dk=ye(),pk=_e(),hk=Gi(),fk=pb(),hb=RegExp.prototype;fb.exports=function(r){var e=r.flags;return e===void 0&&!("flags"in hb)&&!pk(r,"flags")&&hk(hb,r)?dk(fk,r):e}});var gb=f((XO,bb)=>{"use strict";var bu=ne(),mk=zi(),bk=Math.floor,fu=bu("".charAt),gk=bu("".replace),mu=bu("".slice),Sk=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,vk=/\$([$&'`]|\d{1,2})/g;bb.exports=function(r,e,t,i,a,s){var n=t+r.length,o=i.length,u=vk;return a!==void 0&&(a=mk(a),u=Sk),gk(s,u,function(l,c){var d;switch(fu(c,0)){case"$":return"$";case"&":return r;case"`":return mu(e,0,t);case"'":return mu(e,n);case"<":d=a[mu(c,1,-1)];break;default:var p=+c;if(p===0)return l;if(p>o){var h=bk(p/10);return h===0?l:h<=o?i[h-1]===void 0?fu(c,1):i[h-1]+fu(c,1):l}d=i[p-1]}return d===void 0?"":d})}});var yb=f(()=>{"use strict";var yk=ke(),Tk=ye(),Su=ne(),Sb=Hi(),Ik=H(),Ek=oi(),xk=ub(),Di=cb(),Pk=Qi(),Ak=mb(),kk=gb(),wk=te(),Rk=Ve(),$k=wk("replace"),Lk=TypeError,gu=Su("".indexOf),Mk=Su("".replace),vb=Su("".slice),Ck=Math.max;yk({target:"String",proto:!0},{replaceAll:function(e,t){var i=Sb(this),a,s,n,o,u,l,c,d,p,h,m=0,b="";if(!Ek(e)){if(a=xk(e),a&&(s=Di(Sb(Ak(e))),!~gu(s,"g")))throw new Lk("`.replaceAll` does not allow non-global regexes");if(n=Pk(e,$k),n)return Tk(n,e,i,t);if(Rk&&a)return Mk(Di(i),e,t)}for(o=Di(i),u=Di(e),l=Ik(t),l||(t=Di(t)),c=u.length,d=Ck(1,c),p=gu(o,u);p!==-1;)h=l?Di(t(u,p,o)):kk(u,o,p,[],void 0,t),b+=vb(o,m,p)+h,m=p+c,p=p+d>o.length?-1:gu(o,u,p+d);return m<o.length&&(b+=vb(o,m)),b}})});var Ib=f((tV,Tb)=>{"use strict";sb();nb();yb();var Dk=ss();Tb.exports=Dk("String","replaceAll")});var xb=f((iV,Eb)=>{"use strict";var Bk=Ib();Eb.exports=Bk});var Ab=f((rV,Pb)=>{"use strict";var Ok=xb();Pb.exports=Ok});var Zu="2.0.115-dev.0b2656af.0";var se=(a=>(a.STOPPED="stopped",a.READY="ready",a.PLAYING="playing",a.PAUSED="paused",a))(se||{}),mt=(y=>(y.MPEG="MPEG",y.DASH="DASH",y.DASH_SEP="DASH_SEP",y.DASH_SEP_VK="DASH_SEP",y.DASH_WEBM="DASH_WEBM",y.DASH_WEBM_AV1="DASH_WEBM_AV1",y.DASH_STREAMS="DASH_STREAMS",y.DASH_WEBM_VK="DASH_WEBM",y.DASH_ONDEMAND="DASH_ONDEMAND",y.DASH_ONDEMAND_VK="DASH_ONDEMAND",y.DASH_LIVE="DASH_LIVE",y.DASH_LIVE_CMAF="DASH_LIVE_CMAF",y.DASH_LIVE_WEBM="DASH_LIVE_WEBM",y.HLS="HLS",y.HLS_ONDEMAND="HLS_ONDEMAND",y.HLS_JS="HLS",y.HLS_LIVE="HLS_LIVE",y.HLS_LIVE_CMAF="HLS_LIVE_CMAF",y.WEB_RTC_LIVE="WEB_RTC_LIVE",y))(mt||{});var Ea=(a=>(a.NOT_AVAILABLE="NOT_AVAILABLE",a.AVAILABLE="AVAILABLE",a.CONNECTING="CONNECTING",a.CONNECTED="CONNECTED",a))(Ea||{}),Js=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Js||{});var Xs=(n=>(n.NONE="none",n.INLINE="inline",n.FULLSCREEN="fullscreen",n.SECOND_SCREEN="second_screen",n.PIP="pip",n.INVISIBLE="invisible",n))(Xs||{});import{assertNever as sl,assertNonNullable as tS,isNonNullable as xa,ValueSubject as Zs,Subject as iS,Subscription as rS,merge as aS,observableFrom as sS,fromEvent as tl,map as il,tap as rl,filterChanged as nS,isNullable as en,ErrorCategory as al}from"@vkontakte/videoplayer-shared";var el=r=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",r),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var Pa=class{constructor(e){this.connection$=new Zs(void 0);this.castState$=new Zs("NOT_AVAILABLE");this.errorEvent$=new iS;this.realCastState$=new Zs("NOT_AVAILABLE");this.subscription=new rS;this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastInitializer");let t="chrome"in window;if(this.log({message:`[constructor] receiverApplicationId: ${this.params.receiverApplicationId}, isDisabled: ${this.params.isDisabled}, isSupported: ${t}`}),e.isDisabled||!t)return;let i=xa(window.chrome?.cast),a=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=s=>{delete window.__onGCastApiAvailable,s&&this.initializeCastApi()},a||el("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:al.NETWORK,message:"Script loading failed!"})))}connect(){cast.framework.CastContext.getInstance()?.requestSession()}disconnect(){cast.framework.CastContext.getInstance()?.getCurrentSession()?.endSession(!0)}stopMedia(){return new Promise((e,t)=>{cast.framework.CastContext.getInstance()?.getCurrentSession()?.getMediaSession()?.stop(new chrome.cast.media.StopRequest,e,t)})}toggleConnection(){xa(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();en(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();en(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(tl(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(a=>{switch(a.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=i.getCurrentSession()?.getMediaSession()?.media?.contentId;break;case cast.framework.SessionState.NO_SESSION:case cast.framework.SessionState.SESSION_ENDING:case cast.framework.SessionState.SESSION_ENDED:case cast.framework.SessionState.SESSION_START_FAILED:this.contentId=void 0;break;default:return sl(a.sessionState)}})).add(aS(tl(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(rl(a=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(a)}`})}),il(a=>a.castState)),sS([i.getCastState()])).pipe(nS(),il(oS),rl(a=>{this.log({message:`realCastState$: ${a}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(a=>{let s=a==="CONNECTED",n=xa(this.connection$.getValue());if(s&&!n){let o=i.getCurrentSession();tS(o);let u=o.getCastDevice(),l=o.getMediaSession()?.media?.contentId;(en(l)||l===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:u}))}else!s&&n&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(a==="CONNECTED"?xa(this.connection$.getValue())?"CONNECTED":"AVAILABLE":a)}))}initializeCastApi(){let e,t,i;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,i=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:i}),this.initListeners()}catch(a){this.errorEvent$.next({id:"ChromecastInitializer",category:al.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:a})}}},oS=r=>{switch(r){case cast.framework.CastState.NO_DEVICES_AVAILABLE:return"NOT_AVAILABLE";case cast.framework.CastState.NOT_CONNECTED:return"AVAILABLE";case cast.framework.CastState.CONNECTING:return"CONNECTING";case cast.framework.CastState.CONNECTED:return"CONNECTED";default:return sl(r)}};var Ag=Be(to(),1);var jf=Be(ns(),1);import{assertNever as Bf}from"@vkontakte/videoplayer-shared";var X=(r,e=0,t=0)=>{switch(t){case 0:return r.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return r;let i=new URL(r);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(r);return!i.searchParams.get("offset_p")&&e===0?r:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:Bf(t)}return r},Uo=(r,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(r);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(r);return Number(t.searchParams.get("offset_p")??0)}default:Bf(e)}};var I=(r,e,t=!1)=>{let i=r.getTransition();(t||!i||i.to===e)&&r.setState(e)};import{isNonNullable as bP,Subject as os,merge as Of}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new os;this.transitionEnded$=new os;this.transitionUpdated$=new os;this.forceChanged$=new os;this.stateChangeStarted$=Of(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=Of(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,i=this.state;this.transition=void 0,this.prevState=i,this.state=e,t?t.to===e?this.transitionEnded$.next(t):this.forceChanged$.next({from:t.from,to:e,canceledTransition:t}):this.forceChanged$.next({from:i,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,i=this.state;i===e||bP(t)&&t.to===e||(this.prevState=i,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:i,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as gP}from"@vkontakte/videoplayer-shared";var Vf=r=>{switch(r){case"MPEG":case"DASH":case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":case"HLS":case"HLS_ONDEMAND":return!1;case"DASH_LIVE":case"DASH_LIVE_CMAF":case"HLS_LIVE":case"HLS_LIVE_CMAF":case"DASH_LIVE_WEBM":case"WEB_RTC_LIVE":return!0;default:return gP(r)}};import{assertNever as Ei,assertNonNullable as Vt,debounce as _f,ErrorCategory as Nf,fromEvent as _t,isNonNullable as Ff,map as Uf,merge as qf,observableFrom as SP,Subject as vP,Subscription as qo,timeout as yP,getHighestQuality as TP}from"@vkontakte/videoplayer-shared";var IP=5,EP=5,xP=500,Hf=7e3,pr=class{constructor(e){this.subscription=new qo;this.loadMediaTimeoutSubscription=new qo;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),a=this.params.desiredState.playbackState.getTransition(),s=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(s)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(a?.to!=="paused"&&s.state==="requested"&&e!=="stopped"){this.seek(s.position/1e3);return}switch(i){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Ei(e)}break}case"playing":{switch(e){case"playing":break;case"paused":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"ready":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Ei(e)}break}case"paused":{switch(e){case"playing":this.videoState.startTransitionTo("paused"),this.params.connection.remotePlayerController.playOrPause();break;case"paused":break;case"ready":this.videoState.startTransitionTo("paused"),this.videoState.setState("paused");break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Ei(e)}break}default:Ei(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(Vf(e.format)),this.params.output.isAudioAvailable$.next(!0),this.handleRemoteVolumeChange({volume:this.params.connection.remotePlayer.volumeLevel,muted:this.params.connection.remotePlayer.isMuted});let t=this.params.connection.session.getMediaSession();t&&this.restoreSession(t),this.subscribe()}destroy(){this.log({message:"[destroy]"}),this.subscription.unsubscribe()}subscribe(){this.subscription.add(this.loadMediaTimeoutSubscription);let e=new qo;this.subscription.add(e),this.subscription.add(qf(this.videoState.stateChangeStarted$.pipe(Uf(a=>`stateChangeStarted$ ${JSON.stringify(a)}`)),this.videoState.stateChangeEnded$.pipe(Uf(a=>`stateChangeEnded$ ${JSON.stringify(a)}`))).subscribe(a=>this.log({message:`[videoState] ${a}`})));let t=(a,s)=>this.subscription.add(a.subscribe(s));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let a=new vP;e.add(a.pipe(_f(xP)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let s=NaN;e.add(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(n=>{this.logRemoteEvent(n);let o=n.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-s)>IP)&&a.next(o),s=o})),e.add(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(n=>{this.logRemoteEvent(n),this.params.output.duration$.next(n.value)}))}t(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemotePause():this.handleRemotePlay()}),t(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),a=>{this.logRemoteEvent(a);let{remotePlayer:s}=this.params.connection,n=a.value,o=this.params.output.isBuffering$.getValue(),u=n===chrome.cast.media.PlayerState.BUFFERING;switch(o!==u&&this.params.output.isBuffering$.next(u),n){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&s.duration-s.currentTime<EP&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),I(this.params.desiredState.playbackState,"stopped");break;case chrome.cast.media.PlayerState.PAUSED:{this.handleRemotePause();break}case chrome.cast.media.PlayerState.PLAYING:this.handleRemotePlay();break;case chrome.cast.media.PlayerState.BUFFERING:break;default:Ei(n)}}),t(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({volume:a.value})}),t(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({muted:a.value})});let i=qf(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,SP(["init"])).pipe(_f(0));t(i,this.syncPlayback)}restoreSession(e){this.log({message:"restoreSession"});let{remotePlayer:t}=this.params.connection;if(e.playerState!==chrome.cast.media.PlayerState.IDLE){t.isPaused?(this.videoState.setState("paused"),I(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),I(this.params.desiredState.playbackState,"playing"));let i=this.params.output.isLive$.getValue();this.params.output.duration$.next(i?0:t.duration),this.params.output.position$.next(i?0:t.currentTime),this.params.desiredState.seekState.setState({state:"none"})}}prepare(){let e=this.params.format;this.log({message:`[prepare] format: ${e}`});let t=this.createMediaInfo(e),i=this.createLoadRequest(t);this.loadMedia(i)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),I(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),I(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&I(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),i={volume:e.volume??t.volume,muted:e.muted??t.muted};(i.volume!==t.volume||i.muted!==i.muted)&&this.params.output.volume$.next(i)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:i}=this.params.connection;t.currentTime=e,i.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,i,a,s;switch(e){case"MPEG":{let l=t[e];Vt(l);let c=TP(Object.keys(l));Vt(c);let d=l[c];Vt(d),i=d,a="video/mp4",s=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let l=t[e];Vt(l),i=l.url,a="application/x-mpegurl",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let l=t[e];Vt(l),i=l.url,a="application/dash+xml",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let l=t[e];Vt(l),i=l.url,a="application/dash+xml",s=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let l=t[e];Vt(l),i=X(l.url),a="application/x-mpegurl",s=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let l="Unsupported format for Chromecast",c=new Error(l);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:Nf.VIDEO_PIPELINE,message:l,thrown:c}),c}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return Ei(e)}let n=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,a);n.contentUrl=i,n.streamType=s,n.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:u}=this.params.meta;return Ff(o)&&(n.metadata.title=o),Ff(u)&&(n.metadata.subtitle=u),n}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let i=this.params.desiredState.seekState.getState();return i.state==="applying"||i.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:i.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),i=new Promise((a,s)=>{this.loadMediaTimeoutSubscription.add(yP(Hf).subscribe(()=>s(`timeout(${Hf})`)))});(0,jf.default)(Promise.race([t,i]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},a=>{let s=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${a}`;this.log({message:s}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:Nf.VIDEO_PIPELINE,message:s,thrown:a})}),()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as Wf}from"@vkontakte/videoplayer-shared";import{clearVideoElement as PP}from"@vkontakte/videoplayer-shared";var Gf=r=>{try{r.pause(),r.playbackRate=0,PP(r),r.remove()}catch(e){console.error(e)}};import{fromEvent as AP,Subscription as kP}from"@vkontakte/videoplayer-shared";var Ho=class{constructor(){this.attribute="data-pool-reused"}get(e){return e.hasAttribute(this.attribute)}set(e,t){e.toggleAttribute(this.attribute,t)}delete(e){e.removeAttribute(this.attribute)}},jo=window.WeakMap?new WeakMap:new Ho,Go=window.WeakMap?new WeakMap:new Map,wP=(r,e=20)=>{let t=0;return AP(r,"ratechange").subscribe(i=>{t++,t>=e&&(r.currentTime=r.currentTime,t=0)})},oe=(r,{audioVideoSyncRate:e})=>{let t=r.querySelector("video"),i=!!t;t?Wf(t):(t=document.createElement("video"),r.appendChild(t)),jo.set(t,i);let a=new kP;return a.add(wP(t,e)),Go.set(t,a),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},ue=r=>{Go.get(r)?.unsubscribe(),Go.delete(r);let t=jo.get(r);jo.delete(r),t?Wf(r):Gf(r)};import{assertNonNullable as hr,isNonNullable as ze,isNullable as LP,fromEvent as xi,merge as Qf,observableFrom as Yf,filterChanged as zf,map as fr,Subject as Kf,Subscription as MP,ValueSubject as CP,ErrorCategory as DP}from"@vkontakte/videoplayer-shared";import{isNonNullable as Wo,isNullable as RP,Subscription as $P}from"@vkontakte/videoplayer-shared";var us=(r,e,t,{equal:i=(n,o)=>n===o,changed$:a,onError:s}={})=>{let n=r.getState(),o=e(),u=RP(a),l=new $P;return a&&l.add(a.subscribe(c=>{let d=r.getState();i(c,d)&&r.setState(c)},s)),i(o,n)||(t(n),u&&r.setState(n)),l.add(r.stateChangeStarted$.subscribe(c=>{t(c.to),u&&r.setState(c.to)},s)),l},Ye=(r,e,t)=>us(e,()=>r.loop,i=>{Wo(i)&&(r.loop=i)},{onError:t}),le=(r,e,t,i)=>us(e,()=>({muted:r.muted,volume:r.volume}),a=>{Wo(a)&&(r.muted=a.muted,r.volume=a.volume)},{equal:(a,s)=>a===s||a?.muted===s?.muted&&a?.volume===s?.volume,changed$:t,onError:i}),we=(r,e,t,i)=>us(e,()=>r.playbackRate,a=>{Wo(a)&&(r.playbackRate=a)},{changed$:t,onError:i}),gt=us;var BP=r=>["__",r.language,r.label].join("|"),OP=(r,e)=>{if(r.id===e)return!0;let[t,i,a]=e.split("|");return r.language===i&&r.label===a},Qo=class r{constructor(){this.available$=new Kf;this.current$=new CP(void 0);this.error$=new Kf;this.subscription=new MP;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let a=s=>{this.error$.next({id:"TextTracksManager",category:DP.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:s})};this.subscription.add(this.available$.subscribe(i.availableTextTracks$)),this.subscription.add(this.current$.subscribe(i.currentTextTrack$)),this.subscription.add(this.error$.subscribe(i.error$)),this.subscription.add(gt(t.internalTextTracks,()=>Object.values(this.internalTracks),s=>{ze(s)&&this.setInternal(s)},{equal:(s,n)=>ze(s)&&ze(n)&&s.length===n.length&&s.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(fr(s=>s.filter(({type:n})=>n==="internal"))),onError:a})),this.subscription.add(gt(t.externalTextTracks,()=>Object.values(this.externalTracks),s=>{ze(s)&&this.setExternal(s)},{equal:(s,n)=>ze(s)&&ze(n)&&s.length===n.length&&s.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(fr(s=>s.filter(({type:n})=>n==="external"))),onError:a})),this.subscription.add(gt(t.currentTextTrack,()=>{if(this.video)return;let s=this.htmlTextTracksAsArray().find(({mode:n})=>n==="showing");return s&&this.htmlTextTrackToITextTrack(s).id},s=>this.select(s),{changed$:this.current$,onError:a})),this.subscription.add(gt(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let s of this.htmlTextTracksAsArray())this.applyCueSettings(s.cues),this.applyCueSettings(s.activeCues)}))}subscribe(){hr(this.video);let{textTracks:e}=this.video;this.subscription.add(xi(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(Qf(xi(e,"addtrack"),xi(e,"removetrack"),Yf(["init"])).pipe(fr(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),zf((i,a)=>i.length===a.length&&i.every(({id:s},n)=>s===a[n].id))).subscribe(this.available$)),this.subscription.add(Qf(xi(e,"change"),Yf(["init"])).pipe(fr(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),fr(i=>i&&this.htmlTextTrackToITextTrack(i).id),zf()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(xi(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let a=s=>{let n=s.target?.cues??null;n&&n.length&&(this.applyCueSettings(s.target?.cues??null),s.target?.removeEventListener("cuechange",a))};i.track?.addEventListener("cuechange",a)})),this.subscription.add(xi(e,"removetrack").subscribe(i=>{i.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let i of Array.from(e)){let a=i;ze(t.align)&&(a.align=t.align),ze(t.position)&&(a.position=t.position),ze(t.size)&&(a.size=t.size),ze(t.line)&&(a.line=t.line)}}htmlTextTracksAsArray(e=!1){hr(this.video);let t=[...this.video.textTracks];return e?t:t.filter(r.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,a=e.id?e.id:BP(e),s=this.externalTracks.has(a),n=(s?this.externalTracks.get(a)?.isAuto:this.internalTracks.get(a)?.isAuto)||a.includes("auto");return s?{id:a,type:"external",isAuto:n,language:t,label:i,url:this.externalTracks.get(a)?.url}:{id:a,type:"internal",isAuto:n,language:t,label:i,url:this.internalTracks.get(a)?.url}}static isHealthyTrack(e){return!(e.kind==="metadata"||e.groupId||e.id===""&&e.label===""&&e.language==="")}setExternal(e){this.internalTracks.size>0&&Array.from(this.internalTracks).forEach(([,t])=>this.detach(t)),e.filter(({id:t})=>!this.externalTracks.has(t)).forEach(t=>this.attach(t)),Array.from(this.externalTracks).filter(([t])=>!e.find(i=>i.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:i,language:a,isAuto:s})=>!this.internalTracks.has(i)&&!t.some(([,n])=>n.language===a&&n.isAuto===s)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(a=>a.id===i)).forEach(([,i])=>this.detach(i))}select(e){hr(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(LP(e)||!OP(t,e))&&(t.mode="disabled")}destroy(){if(this.subscription.unsubscribe(),this.video)for(let e of Array.from(this.video.getElementsByTagName("track"))){let t=e.getAttribute("id");t&&this.externalTracks.has(t)&&this.video.removeChild(e)}this.externalTracks.clear()}attach(e){hr(this.video);let t=document.createElement("track");t.setAttribute("src",e.url),t.setAttribute("id",e.id),e.label&&t.setAttribute("label",e.label),e.language&&t.setAttribute("srclang",e.language),e.type==="external"?this.externalTracks.set(e.id,e):e.type==="internal"&&this.internalTracks.set(e.id,e),this.video.appendChild(t)}detach(e){hr(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),i=>i.getAttribute("id")===e.id);t&&this.video.removeChild(t),e.type==="external"?this.externalTracks.delete(e.id):e.type==="internal"&&this.internalTracks.delete(e.id)}},Re=Qo;var nt=class{constructor(){this.pausedTime=0;this.streamOffset=0;this.pauseTimestamp=0}getTotalPausedTime(){return this.pausedTime+this.getCurrentPausedTime()}getCurrentPausedTime(){return this.pauseTimestamp>0?Date.now()-this.pauseTimestamp:0}getStreamOffset(){return this.streamOffset}getTotalOffset(){return this.getTotalPausedTime()+this.streamOffset}pause(){this.pauseTimestamp===0&&(this.pauseTimestamp=Date.now())}resume(){this.pauseTimestamp>0&&(this.pausedTime+=this.getCurrentPausedTime(),this.pauseTimestamp=0)}resetTo(e,t=!1){this.streamOffset=e,this.pauseTimestamp=0,this.pausedTime=0,t&&this.pause()}};var Jf=r=>{let e=r;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Yo=r=>{let e=Jf(r);return!!(e&&e.fullscreenElement&&e.fullscreenElement===r)},Xf=r=>{let e=Jf(r);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===r)};import{fromEvent as $e,map as St,merge as em,filterChanged as _P,isNonNullable as tm,Subject as NP,filter as im,mapTo as rm,combine as FP,once as UP,ErrorCategory as qP,ValueSubject as am,clientChecker as HP}from"@vkontakte/videoplayer-shared";var VP=3,Zf=(r,e,t=VP)=>{let i=0,a=0;for(let s=0;s<r.length;s++){let n=r.start(s),o=r.end(s);if(n<=e&&e<=o){if(i=n,a=o,!t)return{from:i,to:a};for(let u=s-1;u>=0;u--)r.end(u)+t>=i&&(i=r.start(u));for(let u=s+1;u<r.length;u++)r.start(u)-t<=a&&(a=r.end(u))}}return{from:i,to:a}};var ce=r=>{let e=y=>$e(r,y).pipe(rm(void 0)),i=em(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(y=>$e(r,y))).pipe(St(y=>y.type==="ended"?r.readyState<2:r.readyState<3),_P()),a=em($e(r,"progress"),$e(r,"timeupdate")).pipe(St(()=>Zf(r.buffered,r.currentTime))),s=HP.isSafari?FP({play:e("play").pipe(UP()),playing:e("playing")}).pipe(rm(void 0)):e("playing"),n=$e(r,"volumechange").pipe(St(()=>({muted:r.muted,volume:r.volume}))),o=$e(r,"ratechange").pipe(St(()=>r.playbackRate)),u=$e(r,"error").pipe(im(()=>!!(r.error||r.played.length)),St(()=>{let y=r.error;return{id:y?`MediaError#${y.code}`:"HtmlVideoError",category:qP.VIDEO_PIPELINE,message:y?y.message:"Error event from HTML video element",thrown:r.error??void 0}})),l=$e(r,"timeupdate").pipe(St(()=>r.currentTime)),c=new NP,d=.3,p;l.subscribe(y=>{r.loop&&tm(p)&&tm(y)&&p>=r.duration-d&&y<=d&&c.next(p),p=y});let h=e("pause").pipe(im(()=>!r.error&&p!==r.duration)),m=$e(r,"enterpictureinpicture"),b=$e(r,"leavepictureinpicture"),g=new am(Xf(r));m.subscribe(()=>g.next(!0)),b.subscribe(()=>g.next(!1));let T=new am(Yo(r));return $e(r,"fullscreenchange").pipe(St(()=>Yo(r))).subscribe(T),{playing$:s,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:c,error$:u,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:l,durationChange$:$e(r,"durationchange").pipe(St(()=>r.duration)),isBuffering$:i,currentBuffer$:a,volumeState$:n,playbackRateState$:o,inPiP$:g,inFullscreen$:T}};import{VideoQuality as vt}from"@vkontakte/videoplayer-shared";var yt=r=>{switch(r){case"mobile":return vt.Q_144P;case"lowest":return vt.Q_240P;case"low":return vt.Q_360P;case"sd":case"medium":return vt.Q_480P;case"hd":case"high":return vt.Q_720P;case"fullhd":case"full":return vt.Q_1080P;case"quadhd":case"quad":return vt.Q_1440P;case"ultrahd":case"ultra":return vt.Q_2160P}};var Nt=Be(Pi(),1);import{isNonNullable as Q,isNullable as Ko,now as Sm,isHigher as Jo,isHigherOrEqual as fm,isInvariantQuality as mm,isLower as bm,isLowerOrEqual as Xo,videoSizeToQuality as XP,assertNotEmptyArray as vm,assertNonNullable as ZP}from"@vkontakte/videoplayer-shared";var zo=!1,ot={},dm=r=>{zo=r},pm=()=>{ot={}},hm=r=>{r(ot)},mr=(r,e)=>{zo&&(ot.meta=ot.meta??{},ot.meta[r]=e)},ie=class{constructor(e){this.name=e}next(e){if(!zo)return;ot.series=ot.series??{};let t=ot.series[this.name]??[];t.push([Date.now(),e]),ot.series[this.name]=t}};var eA=new ie("best_bitrate"),ym=(r,e,t)=>(e-t)*Math.pow(2,-10*r)+t;var Zo=r=>(e,t)=>r*(Number(e.bitrate)-Number(t.bitrate)),br=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=Sm()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},Tm='Assertion "ABR Tracks is empty array" failed',ls=(r,e,t,i)=>{let a=[...e].sort(Zo(1)),s=[...t].sort(Zo(1)),n=s.filter(u=>Q(u.bitrate)&&Q(r.bitrate)?r.bitrate/u.bitrate>i:!0),o=(0,Nt.default)(s,Math.round(s.length*a.indexOf(r)/(a.length+1)))??(0,Nt.default)(s,-1);return o&&n.includes(o)?o:n.length?(0,Nt.default)(n,-1):(0,Nt.default)(s,0)},gm=r=>"quality"in r,Im=(r,e,t,i)=>{let a=Q(i?.last?.bitrate)&&Q(t?.bitrate)&&i.last.bitrate<t.bitrate?r.trackCooldownIncreaseQuality:r.trackCooldownDecreaseQuality,s=t&&i&&i.history[t.id]&&Sm()-i.history[t.id]<=a&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!s&&i.recordSelection(t),s&&i?.last){let n=i.last;i?.recordSwitch(n);let o=gm(n)?"video":"audio",u=gm(n)?n.quality:n.bitrate;return e({message:`
|
|
6
|
+
var zg=Object.create;var Xu=Object.defineProperty;var Kg=Object.getOwnPropertyDescriptor;var Jg=Object.getOwnPropertyNames;var Xg=Object.getPrototypeOf,Zg=Object.prototype.hasOwnProperty;var f=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var eS=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Jg(e))!Zg.call(r,a)&&a!==t&&Xu(r,a,{get:()=>e[a],enumerable:!(i=Kg(e,a))||i.enumerable});return r};var Be=(r,e,t)=>(t=r!=null?zg(Xg(r)):{},eS(e||!r||!r.__esModule?Xu(t,"default",{value:r,enumerable:!0}):t,r));var ve=f((e$,nl)=>{"use strict";nl.exports=function(r){try{return!!r()}catch{return!0}}});var qi=f((t$,ol)=>{"use strict";var uS=ve();ol.exports=!uS(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")})});var ne=f((i$,cl)=>{"use strict";var ul=qi(),ll=Function.prototype,tn=ll.call,lS=ul&&ll.bind.bind(tn,tn);cl.exports=ul?lS:function(r){return function(){return tn.apply(r,arguments)}}});var ni=f((r$,pl)=>{"use strict";var dl=ne(),cS=dl({}.toString),dS=dl("".slice);pl.exports=function(r){return dS(cS(r),8,-1)}});var fl=f((a$,hl)=>{"use strict";var pS=ne(),hS=ve(),fS=ni(),rn=Object,mS=pS("".split);hl.exports=hS(function(){return!rn("z").propertyIsEnumerable(0)})?function(r){return fS(r)==="String"?mS(r,""):rn(r)}:rn});var oi=f((s$,ml)=>{"use strict";ml.exports=function(r){return r==null}});var Hi=f((n$,bl)=>{"use strict";var bS=oi(),gS=TypeError;bl.exports=function(r){if(bS(r))throw new gS("Can't call method on "+r);return r}});var ui=f((o$,gl)=>{"use strict";var SS=fl(),vS=Hi();gl.exports=function(r){return SS(vS(r))}});var an=f((u$,Sl)=>{"use strict";Sl.exports=function(){}});var Lt=f((l$,vl)=>{"use strict";vl.exports={}});var j=f((sn,yl)=>{"use strict";var ji=function(r){return r&&r.Math===Math&&r};yl.exports=ji(typeof globalThis=="object"&&globalThis)||ji(typeof window=="object"&&window)||ji(typeof self=="object"&&self)||ji(typeof global=="object"&&global)||ji(typeof sn=="object"&&sn)||function(){return this}()||Function("return this")()});var H=f((c$,Tl)=>{"use strict";var nn=typeof document=="object"&&document.all;Tl.exports=typeof nn>"u"&&nn!==void 0?function(r){return typeof r=="function"||r===nn}:function(r){return typeof r=="function"}});var xl=f((d$,El)=>{"use strict";var yS=j(),TS=H(),Il=yS.WeakMap;El.exports=TS(Il)&&/native code/.test(String(Il))});var Pe=f((p$,Pl)=>{"use strict";var IS=H();Pl.exports=function(r){return typeof r=="object"?r!==null:IS(r)}});var Ae=f((h$,Al)=>{"use strict";var ES=ve();Al.exports=!ES(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var Aa=f((f$,wl)=>{"use strict";var xS=j(),kl=Pe(),on=xS.document,PS=kl(on)&&kl(on.createElement);wl.exports=function(r){return PS?on.createElement(r):{}}});var un=f((m$,Rl)=>{"use strict";var AS=Ae(),kS=ve(),wS=Aa();Rl.exports=!AS&&!kS(function(){return Object.defineProperty(wS("div"),"a",{get:function(){return 7}}).a!==7})});var ln=f((b$,$l)=>{"use strict";var RS=Ae(),$S=ve();$l.exports=RS&&$S(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Qe=f((g$,Ll)=>{"use strict";var LS=Pe(),MS=String,CS=TypeError;Ll.exports=function(r){if(LS(r))return r;throw new CS(MS(r)+" is not an object")}});var ye=f((S$,Ml)=>{"use strict";var DS=qi(),ka=Function.prototype.call;Ml.exports=DS?ka.bind(ka):function(){return ka.apply(ka,arguments)}});var wa=f((v$,Cl)=>{"use strict";Cl.exports={}});var it=f((y$,Bl)=>{"use strict";var cn=wa(),dn=j(),BS=H(),Dl=function(r){return BS(r)?r:void 0};Bl.exports=function(r,e){return arguments.length<2?Dl(cn[r])||Dl(dn[r]):cn[r]&&cn[r][e]||dn[r]&&dn[r][e]}});var Gi=f((T$,Ol)=>{"use strict";var OS=ne();Ol.exports=OS({}.isPrototypeOf)});var li=f((I$,Nl)=>{"use strict";var VS=j(),Vl=VS.navigator,_l=Vl&&Vl.userAgent;Nl.exports=_l?String(_l):""});var hn=f((E$,Gl)=>{"use strict";var jl=j(),pn=li(),Fl=jl.process,Ul=jl.Deno,ql=Fl&&Fl.versions||Ul&&Ul.version,Hl=ql&&ql.v8,Oe,Ra;Hl&&(Oe=Hl.split("."),Ra=Oe[0]>0&&Oe[0]<4?1:+(Oe[0]+Oe[1]));!Ra&&pn&&(Oe=pn.match(/Edge\/(\d+)/),(!Oe||Oe[1]>=74)&&(Oe=pn.match(/Chrome\/(\d+)/),Oe&&(Ra=+Oe[1])));Gl.exports=Ra});var fn=f((x$,Ql)=>{"use strict";var Wl=hn(),_S=ve(),NS=j(),FS=NS.String;Ql.exports=!!Object.getOwnPropertySymbols&&!_S(function(){var r=Symbol("symbol detection");return!FS(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&Wl&&Wl<41})});var mn=f((P$,Yl)=>{"use strict";var US=fn();Yl.exports=US&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var bn=f((A$,zl)=>{"use strict";var qS=it(),HS=H(),jS=Gi(),GS=mn(),WS=Object;zl.exports=GS?function(r){return typeof r=="symbol"}:function(r){var e=qS("Symbol");return HS(e)&&jS(e.prototype,WS(r))}});var Wi=f((k$,Kl)=>{"use strict";var QS=String;Kl.exports=function(r){try{return QS(r)}catch{return"Object"}}});var rt=f((w$,Jl)=>{"use strict";var YS=H(),zS=Wi(),KS=TypeError;Jl.exports=function(r){if(YS(r))return r;throw new KS(zS(r)+" is not a function")}});var Qi=f((R$,Xl)=>{"use strict";var JS=rt(),XS=oi();Xl.exports=function(r,e){var t=r[e];return XS(t)?void 0:JS(t)}});var ec=f(($$,Zl)=>{"use strict";var gn=ye(),Sn=H(),vn=Pe(),ZS=TypeError;Zl.exports=function(r,e){var t,i;if(e==="string"&&Sn(t=r.toString)&&!vn(i=gn(t,r))||Sn(t=r.valueOf)&&!vn(i=gn(t,r))||e!=="string"&&Sn(t=r.toString)&&!vn(i=gn(t,r)))return i;throw new ZS("Can't convert object to primitive value")}});var Ve=f((L$,tc)=>{"use strict";tc.exports=!0});var ac=f((M$,rc)=>{"use strict";var ic=j(),ev=Object.defineProperty;rc.exports=function(r,e){try{ev(ic,r,{value:e,configurable:!0,writable:!0})}catch{ic[r]=e}return e}});var Yi=f((C$,oc)=>{"use strict";var tv=Ve(),iv=j(),rv=ac(),sc="__core-js_shared__",nc=oc.exports=iv[sc]||rv(sc,{});(nc.versions||(nc.versions=[])).push({version:"3.38.0",mode:tv?"pure":"global",copyright:"\xA9 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var yn=f((D$,lc)=>{"use strict";var uc=Yi();lc.exports=function(r,e){return uc[r]||(uc[r]=e||{})}});var zi=f((B$,cc)=>{"use strict";var av=Hi(),sv=Object;cc.exports=function(r){return sv(av(r))}});var _e=f((O$,dc)=>{"use strict";var nv=ne(),ov=zi(),uv=nv({}.hasOwnProperty);dc.exports=Object.hasOwn||function(e,t){return uv(ov(e),t)}});var Tn=f((V$,pc)=>{"use strict";var lv=ne(),cv=0,dv=Math.random(),pv=lv(1 .toString);pc.exports=function(r){return"Symbol("+(r===void 0?"":r)+")_"+pv(++cv+dv,36)}});var te=f((_$,fc)=>{"use strict";var hv=j(),fv=yn(),hc=_e(),mv=Tn(),bv=fn(),gv=mn(),ci=hv.Symbol,In=fv("wks"),Sv=gv?ci.for||ci:ci&&ci.withoutSetter||mv;fc.exports=function(r){return hc(In,r)||(In[r]=bv&&hc(ci,r)?ci[r]:Sv("Symbol."+r)),In[r]}});var Sc=f((N$,gc)=>{"use strict";var vv=ye(),mc=Pe(),bc=bn(),yv=Qi(),Tv=ec(),Iv=te(),Ev=TypeError,xv=Iv("toPrimitive");gc.exports=function(r,e){if(!mc(r)||bc(r))return r;var t=yv(r,xv),i;if(t){if(e===void 0&&(e="default"),i=vv(t,r,e),!mc(i)||bc(i))return i;throw new Ev("Can't convert object to primitive value")}return e===void 0&&(e="number"),Tv(r,e)}});var En=f((F$,vc)=>{"use strict";var Pv=Sc(),Av=bn();vc.exports=function(r){var e=Pv(r,"string");return Av(e)?e:e+""}});var Mt=f(Tc=>{"use strict";var kv=Ae(),wv=un(),Rv=ln(),$a=Qe(),yc=En(),$v=TypeError,xn=Object.defineProperty,Lv=Object.getOwnPropertyDescriptor,Pn="enumerable",An="configurable",kn="writable";Tc.f=kv?Rv?function(e,t,i){if($a(e),t=yc(t),$a(i),typeof e=="function"&&t==="prototype"&&"value"in i&&kn in i&&!i[kn]){var a=Lv(e,t);a&&a[kn]&&(e[t]=i.value,i={configurable:An in i?i[An]:a[An],enumerable:Pn in i?i[Pn]:a[Pn],writable:!1})}return xn(e,t,i)}:xn:function(e,t,i){if($a(e),t=yc(t),$a(i),wv)try{return xn(e,t,i)}catch{}if("get"in i||"set"in i)throw new $v("Accessors not supported");return"value"in i&&(e[t]=i.value),e}});var Ki=f((q$,Ic)=>{"use strict";Ic.exports=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}}});var di=f((H$,Ec)=>{"use strict";var Mv=Ae(),Cv=Mt(),Dv=Ki();Ec.exports=Mv?function(r,e,t){return Cv.f(r,e,Dv(1,t))}:function(r,e,t){return r[e]=t,r}});var La=f((j$,Pc)=>{"use strict";var Bv=yn(),Ov=Tn(),xc=Bv("keys");Pc.exports=function(r){return xc[r]||(xc[r]=Ov(r))}});var Ma=f((G$,Ac)=>{"use strict";Ac.exports={}});var Ln=f((W$,Rc)=>{"use strict";var Vv=xl(),wc=j(),_v=Pe(),Nv=di(),wn=_e(),Rn=Yi(),Fv=La(),Uv=Ma(),kc="Object already initialized",$n=wc.TypeError,qv=wc.WeakMap,Ca,Ji,Da,Hv=function(r){return Da(r)?Ji(r):Ca(r,{})},jv=function(r){return function(e){var t;if(!_v(e)||(t=Ji(e)).type!==r)throw new $n("Incompatible receiver, "+r+" required");return t}};Vv||Rn.state?(Ne=Rn.state||(Rn.state=new qv),Ne.get=Ne.get,Ne.has=Ne.has,Ne.set=Ne.set,Ca=function(r,e){if(Ne.has(r))throw new $n(kc);return e.facade=r,Ne.set(r,e),e},Ji=function(r){return Ne.get(r)||{}},Da=function(r){return Ne.has(r)}):(Ct=Fv("state"),Uv[Ct]=!0,Ca=function(r,e){if(wn(r,Ct))throw new $n(kc);return e.facade=r,Nv(r,Ct,e),e},Ji=function(r){return wn(r,Ct)?r[Ct]:{}},Da=function(r){return wn(r,Ct)});var Ne,Ct;Rc.exports={set:Ca,get:Ji,has:Da,enforce:Hv,getterFor:jv}});var Mn=f((Q$,Cc)=>{"use strict";var Gv=qi(),Mc=Function.prototype,$c=Mc.apply,Lc=Mc.call;Cc.exports=typeof Reflect=="object"&&Reflect.apply||(Gv?Lc.bind($c):function(){return Lc.apply($c,arguments)})});var Cn=f((Y$,Dc)=>{"use strict";var Wv=ni(),Qv=ne();Dc.exports=function(r){if(Wv(r)==="Function")return Qv(r)}});var _c=f(Vc=>{"use strict";var Bc={}.propertyIsEnumerable,Oc=Object.getOwnPropertyDescriptor,Yv=Oc&&!Bc.call({1:2},1);Vc.f=Yv?function(e){var t=Oc(this,e);return!!t&&t.enumerable}:Bc});var Uc=f(Fc=>{"use strict";var zv=Ae(),Kv=ye(),Jv=_c(),Xv=Ki(),Zv=ui(),ey=En(),ty=_e(),iy=un(),Nc=Object.getOwnPropertyDescriptor;Fc.f=zv?Nc:function(e,t){if(e=Zv(e),t=ey(t),iy)try{return Nc(e,t)}catch{}if(ty(e,t))return Xv(!Kv(Jv.f,e,t),e[t])}});var Dn=f((J$,qc)=>{"use strict";var ry=ve(),ay=H(),sy=/#|\.prototype\./,Xi=function(r,e){var t=oy[ny(r)];return t===ly?!0:t===uy?!1:ay(e)?ry(e):!!e},ny=Xi.normalize=function(r){return String(r).replace(sy,".").toLowerCase()},oy=Xi.data={},uy=Xi.NATIVE="N",ly=Xi.POLYFILL="P";qc.exports=Xi});var Zi=f((X$,jc)=>{"use strict";var Hc=Cn(),cy=rt(),dy=qi(),py=Hc(Hc.bind);jc.exports=function(r,e){return cy(r),e===void 0?r:dy?py(r,e):function(){return r.apply(e,arguments)}}});var ke=f((Z$,Wc)=>{"use strict";var er=j(),hy=Mn(),fy=Cn(),my=H(),by=Uc().f,gy=Dn(),pi=wa(),Sy=Zi(),hi=di(),Gc=_e();Yi();var vy=function(r){var e=function(t,i,a){if(this instanceof e){switch(arguments.length){case 0:return new r;case 1:return new r(t);case 2:return new r(t,i)}return new r(t,i,a)}return hy(r,this,arguments)};return e.prototype=r.prototype,e};Wc.exports=function(r,e){var t=r.target,i=r.global,a=r.stat,s=r.proto,n=i?er:a?er[t]:er[t]&&er[t].prototype,o=i?pi:pi[t]||hi(pi,t,{})[t],u=o.prototype,l,c,d,p,h,m,b,g,T;for(p in e)l=gy(i?p:t+(a?".":"#")+p,r.forced),c=!l&&n&&Gc(n,p),m=o[p],c&&(r.dontCallGetSet?(T=by(n,p),b=T&&T.value):b=n[p]),h=c&&b?b:e[p],!(!l&&!s&&typeof m==typeof h)&&(r.bind&&c?g=Sy(h,er):r.wrap&&c?g=vy(h):s&&my(h)?g=fy(h):g=h,(r.sham||h&&h.sham||m&&m.sham)&&hi(g,"sham",!0),hi(o,p,g),s&&(d=t+"Prototype",Gc(pi,d)||hi(pi,d,{}),hi(pi[d],p,h),r.real&&u&&(l||!u[p])&&hi(u,p,h)))}});var zc=f((eL,Yc)=>{"use strict";var Bn=Ae(),yy=_e(),Qc=Function.prototype,Ty=Bn&&Object.getOwnPropertyDescriptor,On=yy(Qc,"name"),Iy=On&&function(){}.name==="something",Ey=On&&(!Bn||Bn&&Ty(Qc,"name").configurable);Yc.exports={EXISTS:On,PROPER:Iy,CONFIGURABLE:Ey}});var Jc=f((tL,Kc)=>{"use strict";var xy=Math.ceil,Py=Math.floor;Kc.exports=Math.trunc||function(e){var t=+e;return(t>0?Py:xy)(t)}});var Ba=f((iL,Xc)=>{"use strict";var Ay=Jc();Xc.exports=function(r){var e=+r;return e!==e||e===0?0:Ay(e)}});var ed=f((rL,Zc)=>{"use strict";var ky=Ba(),wy=Math.max,Ry=Math.min;Zc.exports=function(r,e){var t=ky(r);return t<0?wy(t+e,0):Ry(t,e)}});var id=f((aL,td)=>{"use strict";var $y=Ba(),Ly=Math.min;td.exports=function(r){var e=$y(r);return e>0?Ly(e,9007199254740991):0}});var Oa=f((sL,rd)=>{"use strict";var My=id();rd.exports=function(r){return My(r.length)}});var nd=f((nL,sd)=>{"use strict";var Cy=ui(),Dy=ed(),By=Oa(),ad=function(r){return function(e,t,i){var a=Cy(e),s=By(a);if(s===0)return!r&&-1;var n=Dy(i,s),o;if(r&&t!==t){for(;s>n;)if(o=a[n++],o!==o)return!0}else for(;s>n;n++)if((r||n in a)&&a[n]===t)return r||n||0;return!r&&-1}};sd.exports={includes:ad(!0),indexOf:ad(!1)}});var ld=f((oL,ud)=>{"use strict";var Oy=ne(),Vn=_e(),Vy=ui(),_y=nd().indexOf,Ny=Ma(),od=Oy([].push);ud.exports=function(r,e){var t=Vy(r),i=0,a=[],s;for(s in t)!Vn(Ny,s)&&Vn(t,s)&&od(a,s);for(;e.length>i;)Vn(t,s=e[i++])&&(~_y(a,s)||od(a,s));return a}});var _n=f((uL,cd)=>{"use strict";cd.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var pd=f((lL,dd)=>{"use strict";var Fy=ld(),Uy=_n();dd.exports=Object.keys||function(e){return Fy(e,Uy)}});var fd=f(hd=>{"use strict";var qy=Ae(),Hy=ln(),jy=Mt(),Gy=Qe(),Wy=ui(),Qy=pd();hd.f=qy&&!Hy?Object.defineProperties:function(e,t){Gy(e);for(var i=Wy(t),a=Qy(t),s=a.length,n=0,o;s>n;)jy.f(e,o=a[n++],i[o]);return e}});var Nn=f((dL,md)=>{"use strict";var Yy=it();md.exports=Yy("document","documentElement")});var Hn=f((pL,Id)=>{"use strict";var zy=Qe(),Ky=fd(),bd=_n(),Jy=Ma(),Xy=Nn(),Zy=Aa(),eT=La(),gd=">",Sd="<",Un="prototype",qn="script",yd=eT("IE_PROTO"),Fn=function(){},Td=function(r){return Sd+qn+gd+r+Sd+"/"+qn+gd},vd=function(r){r.write(Td("")),r.close();var e=r.parentWindow.Object;return r=null,e},tT=function(){var r=Zy("iframe"),e="java"+qn+":",t;return r.style.display="none",Xy.appendChild(r),r.src=String(e),t=r.contentWindow.document,t.open(),t.write(Td("document.F=Object")),t.close(),t.F},Va,_a=function(){try{Va=new ActiveXObject("htmlfile")}catch{}_a=typeof document<"u"?document.domain&&Va?vd(Va):tT():vd(Va);for(var r=bd.length;r--;)delete _a[Un][bd[r]];return _a()};Jy[yd]=!0;Id.exports=Object.create||function(e,t){var i;return e!==null?(Fn[Un]=zy(e),i=new Fn,Fn[Un]=null,i[yd]=e):i=_a(),t===void 0?i:Ky.f(i,t)}});var xd=f((hL,Ed)=>{"use strict";var iT=ve();Ed.exports=!iT(function(){function r(){}return r.prototype.constructor=null,Object.getPrototypeOf(new r)!==r.prototype})});var Gn=f((fL,Ad)=>{"use strict";var rT=_e(),aT=H(),sT=zi(),nT=La(),oT=xd(),Pd=nT("IE_PROTO"),jn=Object,uT=jn.prototype;Ad.exports=oT?jn.getPrototypeOf:function(r){var e=sT(r);if(rT(e,Pd))return e[Pd];var t=e.constructor;return aT(t)&&e instanceof t?t.prototype:e instanceof jn?uT:null}});var fi=f((mL,kd)=>{"use strict";var lT=di();kd.exports=function(r,e,t,i){return i&&i.enumerable?r[e]=t:lT(r,e,t),r}});var zn=f((bL,$d)=>{"use strict";var cT=ve(),dT=H(),pT=Pe(),hT=Hn(),wd=Gn(),fT=fi(),mT=te(),bT=Ve(),Yn=mT("iterator"),Rd=!1,at,Wn,Qn;[].keys&&(Qn=[].keys(),"next"in Qn?(Wn=wd(wd(Qn)),Wn!==Object.prototype&&(at=Wn)):Rd=!0);var gT=!pT(at)||cT(function(){var r={};return at[Yn].call(r)!==r});gT?at={}:bT&&(at=hT(at));dT(at[Yn])||fT(at,Yn,function(){return this});$d.exports={IteratorPrototype:at,BUGGY_SAFARI_ITERATORS:Rd}});var Na=f((gL,Md)=>{"use strict";var ST=te(),vT=ST("toStringTag"),Ld={};Ld[vT]="z";Md.exports=String(Ld)==="[object z]"});var tr=f((SL,Cd)=>{"use strict";var yT=Na(),TT=H(),Fa=ni(),IT=te(),ET=IT("toStringTag"),xT=Object,PT=Fa(function(){return arguments}())==="Arguments",AT=function(r,e){try{return r[e]}catch{}};Cd.exports=yT?Fa:function(r){var e,t,i;return r===void 0?"Undefined":r===null?"Null":typeof(t=AT(e=xT(r),ET))=="string"?t:PT?Fa(e):(i=Fa(e))==="Object"&&TT(e.callee)?"Arguments":i}});var Bd=f((vL,Dd)=>{"use strict";var kT=Na(),wT=tr();Dd.exports=kT?{}.toString:function(){return"[object "+wT(this)+"]"}});var ir=f((yL,Vd)=>{"use strict";var RT=Na(),$T=Mt().f,LT=di(),MT=_e(),CT=Bd(),DT=te(),Od=DT("toStringTag");Vd.exports=function(r,e,t,i){var a=t?r:r&&r.prototype;a&&(MT(a,Od)||$T(a,Od,{configurable:!0,value:e}),i&&!RT&<(a,"toString",CT))}});var Nd=f((TL,_d)=>{"use strict";var BT=zn().IteratorPrototype,OT=Hn(),VT=Ki(),_T=ir(),NT=Lt(),FT=function(){return this};_d.exports=function(r,e,t,i){var a=e+" Iterator";return r.prototype=OT(BT,{next:VT(+!i,t)}),_T(r,a,!1,!0),NT[a]=FT,r}});var Ud=f((IL,Fd)=>{"use strict";var UT=ne(),qT=rt();Fd.exports=function(r,e,t){try{return UT(qT(Object.getOwnPropertyDescriptor(r,e)[t]))}catch{}}});var Hd=f((EL,qd)=>{"use strict";var HT=Pe();qd.exports=function(r){return HT(r)||r===null}});var Gd=f((xL,jd)=>{"use strict";var jT=Hd(),GT=String,WT=TypeError;jd.exports=function(r){if(jT(r))return r;throw new WT("Can't set "+GT(r)+" as a prototype")}});var Kn=f((PL,Wd)=>{"use strict";var QT=Ud(),YT=Pe(),zT=Hi(),KT=Gd();Wd.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var r=!1,e={},t;try{t=QT(Object.prototype,"__proto__","set"),t(e,[]),r=e instanceof Array}catch{}return function(a,s){return zT(a),KT(s),YT(a)&&(r?t(a,s):a.__proto__=s),a}}():void 0)});var rp=f((AL,ip)=>{"use strict";var JT=ke(),XT=ye(),Ua=Ve(),ep=zc(),ZT=H(),eI=Nd(),Qd=Gn(),Yd=Kn(),tI=ir(),iI=di(),Jn=fi(),rI=te(),zd=Lt(),tp=zn(),aI=ep.PROPER,sI=ep.CONFIGURABLE,Kd=tp.IteratorPrototype,qa=tp.BUGGY_SAFARI_ITERATORS,rr=rI("iterator"),Jd="keys",ar="values",Xd="entries",Zd=function(){return this};ip.exports=function(r,e,t,i,a,s,n){eI(t,e,i);var o=function(T){if(T===a&&p)return p;if(!qa&&T&&T in c)return c[T];switch(T){case Jd:return function(){return new t(this,T)};case ar:return function(){return new t(this,T)};case Xd:return function(){return new t(this,T)}}return function(){return new t(this)}},u=e+" Iterator",l=!1,c=r.prototype,d=c[rr]||c["@@iterator"]||a&&c[a],p=!qa&&d||o(a),h=e==="Array"&&c.entries||d,m,b,g;if(h&&(m=Qd(h.call(new r)),m!==Object.prototype&&m.next&&(!Ua&&Qd(m)!==Kd&&(Yd?Yd(m,Kd):ZT(m[rr])||Jn(m,rr,Zd)),tI(m,u,!0,!0),Ua&&(zd[u]=Zd))),aI&&a===ar&&d&&d.name!==ar&&(!Ua&&sI?iI(c,"name",ar):(l=!0,p=function(){return XT(d,this)})),a)if(b={values:o(ar),keys:s?p:o(Jd),entries:o(Xd)},n)for(g in b)(qa||l||!(g in c))&&Jn(c,g,b[g]);else JT({target:e,proto:!0,forced:qa||l},b);return(!Ua||n)&&c[rr]!==p&&Jn(c,rr,p,{name:a}),zd[e]=p,b}});var sp=f((kL,ap)=>{"use strict";ap.exports=function(r,e){return{value:r,done:e}}});var Zn=f((wL,cp)=>{"use strict";var nI=ui(),Xn=an(),np=Lt(),up=Ln(),oI=Mt().f,uI=rp(),Ha=sp(),lI=Ve(),cI=Ae(),lp="Array Iterator",dI=up.set,pI=up.getterFor(lp);cp.exports=uI(Array,"Array",function(r,e){dI(this,{type:lp,target:nI(r),index:0,kind:e})},function(){var r=pI(this),e=r.target,t=r.index++;if(!e||t>=e.length)return r.target=void 0,Ha(void 0,!0);switch(r.kind){case"keys":return Ha(t,!1);case"values":return Ha(e[t],!1)}return Ha([t,e[t]],!1)},"values");var op=np.Arguments=np.Array;Xn("keys");Xn("values");Xn("entries");if(!lI&&cI&&op.name!=="values")try{oI(op,"name",{value:"values"})}catch{}});var pp=f((RL,dp)=>{"use strict";var hI=te(),fI=Lt(),mI=hI("iterator"),bI=Array.prototype;dp.exports=function(r){return r!==void 0&&(fI.Array===r||bI[mI]===r)}});var eo=f(($L,fp)=>{"use strict";var gI=tr(),hp=Qi(),SI=oi(),vI=Lt(),yI=te(),TI=yI("iterator");fp.exports=function(r){if(!SI(r))return hp(r,TI)||hp(r,"@@iterator")||vI[gI(r)]}});var bp=f((LL,mp)=>{"use strict";var II=ye(),EI=rt(),xI=Qe(),PI=Wi(),AI=eo(),kI=TypeError;mp.exports=function(r,e){var t=arguments.length<2?AI(r):e;if(EI(t))return xI(II(t,r));throw new kI(PI(r)+" is not iterable")}});var vp=f((ML,Sp)=>{"use strict";var wI=ye(),gp=Qe(),RI=Qi();Sp.exports=function(r,e,t){var i,a;gp(r);try{if(i=RI(r,"return"),!i){if(e==="throw")throw t;return t}i=wI(i,r)}catch(s){a=!0,i=s}if(e==="throw")throw t;if(a)throw i;return gp(i),t}});var Ga=f((CL,Ep)=>{"use strict";var $I=Zi(),LI=ye(),MI=Qe(),CI=Wi(),DI=pp(),BI=Oa(),yp=Gi(),OI=bp(),VI=eo(),Tp=vp(),_I=TypeError,ja=function(r,e){this.stopped=r,this.result=e},Ip=ja.prototype;Ep.exports=function(r,e,t){var i=t&&t.that,a=!!(t&&t.AS_ENTRIES),s=!!(t&&t.IS_RECORD),n=!!(t&&t.IS_ITERATOR),o=!!(t&&t.INTERRUPTED),u=$I(e,i),l,c,d,p,h,m,b,g=function(E){return l&&Tp(l,"normal",E),new ja(!0,E)},T=function(E){return a?(MI(E),o?u(E[0],E[1],g):u(E[0],E[1])):o?u(E,g):u(E)};if(s)l=r.iterator;else if(n)l=r;else{if(c=VI(r),!c)throw new _I(CI(r)+" is not iterable");if(DI(c)){for(d=0,p=BI(r);p>d;d++)if(h=T(r[d]),h&&yp(Ip,h))return h;return new ja(!1)}l=OI(r,c)}for(m=s?r.next:l.next;!(b=LI(m,l)).done;){try{h=T(b.value)}catch(E){Tp(l,"throw",E)}if(typeof h=="object"&&h&&yp(Ip,h))return h}return new ja(!1)}});var Pp=f((DL,xp)=>{"use strict";var NI=Ae(),FI=Mt(),UI=Ki();xp.exports=function(r,e,t){NI?FI.f(r,e,UI(0,t)):r[e]=t}});var Ap=f(()=>{"use strict";var qI=ke(),HI=Ga(),jI=Pp();qI({target:"Object",stat:!0},{fromEntries:function(e){var t={};return HI(e,function(i,a){jI(t,i,a)},{AS_ENTRIES:!0}),t}})});var wp=f((VL,kp)=>{"use strict";Zn();Ap();var GI=wa();kp.exports=GI.Object.fromEntries});var $p=f((_L,Rp)=>{"use strict";Rp.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var Mp=f(()=>{"use strict";Zn();var WI=$p(),QI=j(),YI=ir(),Lp=Lt();for(Wa in WI)YI(QI[Wa],Wa),Lp[Wa]=Lp.Array;var Wa});var Dp=f((UL,Cp)=>{"use strict";var zI=wp();Mp();Cp.exports=zI});var to=f((qL,Bp)=>{"use strict";var KI=Dp();Bp.exports=KI});var Op=f(()=>{"use strict"});var io=f((GL,Vp)=>{"use strict";var sr=j(),JI=li(),XI=ni(),Qa=function(r){return JI.slice(0,r.length)===r};Vp.exports=function(){return Qa("Bun/")?"BUN":Qa("Cloudflare-Workers")?"CLOUDFLARE":Qa("Deno/")?"DENO":Qa("Node.js/")?"NODE":sr.Bun&&typeof Bun.version=="string"?"BUN":sr.Deno&&typeof Deno.version=="object"?"DENO":XI(sr.process)==="process"?"NODE":sr.window&&sr.document?"BROWSER":"REST"}()});var Ya=f((WL,_p)=>{"use strict";var ZI=io();_p.exports=ZI==="NODE"});var Fp=f((QL,Np)=>{"use strict";var eE=Mt();Np.exports=function(r,e,t){return eE.f(r,e,t)}});var Hp=f((YL,qp)=>{"use strict";var tE=it(),iE=Fp(),rE=te(),aE=Ae(),Up=rE("species");qp.exports=function(r){var e=tE(r);aE&&e&&!e[Up]&&iE(e,Up,{configurable:!0,get:function(){return this}})}});var Gp=f((zL,jp)=>{"use strict";var sE=Gi(),nE=TypeError;jp.exports=function(r,e){if(sE(e,r))return r;throw new nE("Incorrect invocation")}});var ao=f((KL,Wp)=>{"use strict";var oE=ne(),uE=H(),ro=Yi(),lE=oE(Function.toString);uE(ro.inspectSource)||(ro.inspectSource=function(r){return lE(r)});Wp.exports=ro.inspectSource});var Xp=f((JL,Jp)=>{"use strict";var cE=ne(),dE=ve(),Qp=H(),pE=tr(),hE=it(),fE=ao(),Yp=function(){},zp=hE("Reflect","construct"),so=/^\s*(?:class|function)\b/,mE=cE(so.exec),bE=!so.test(Yp),nr=function(e){if(!Qp(e))return!1;try{return zp(Yp,[],e),!0}catch{return!1}},Kp=function(e){if(!Qp(e))return!1;switch(pE(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return bE||!!mE(so,fE(e))}catch{return!0}};Kp.sham=!0;Jp.exports=!zp||dE(function(){var r;return nr(nr.call)||!nr(Object)||!nr(function(){r=!0})||r})?Kp:nr});var eh=f((XL,Zp)=>{"use strict";var gE=Xp(),SE=Wi(),vE=TypeError;Zp.exports=function(r){if(gE(r))return r;throw new vE(SE(r)+" is not a constructor")}});var no=f((ZL,ih)=>{"use strict";var th=Qe(),yE=eh(),TE=oi(),IE=te(),EE=IE("species");ih.exports=function(r,e){var t=th(r).constructor,i;return t===void 0||TE(i=th(t)[EE])?e:yE(i)}});var ah=f((eM,rh)=>{"use strict";var xE=ne();rh.exports=xE([].slice)});var nh=f((tM,sh)=>{"use strict";var PE=TypeError;sh.exports=function(r,e){if(r<e)throw new PE("Not enough arguments");return r}});var oo=f((iM,oh)=>{"use strict";var AE=li();oh.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(AE)});var go=f((rM,bh)=>{"use strict";var Te=j(),kE=Mn(),wE=Zi(),uh=H(),RE=_e(),mh=ve(),lh=Nn(),$E=ah(),ch=Aa(),LE=nh(),ME=oo(),CE=Ya(),fo=Te.setImmediate,mo=Te.clearImmediate,DE=Te.process,uo=Te.Dispatch,BE=Te.Function,dh=Te.MessageChannel,OE=Te.String,lo=0,or={},ph="onreadystatechange",ur,Dt,co,po;mh(function(){ur=Te.location});var bo=function(r){if(RE(or,r)){var e=or[r];delete or[r],e()}},ho=function(r){return function(){bo(r)}},hh=function(r){bo(r.data)},fh=function(r){Te.postMessage(OE(r),ur.protocol+"//"+ur.host)};(!fo||!mo)&&(fo=function(e){LE(arguments.length,1);var t=uh(e)?e:BE(e),i=$E(arguments,1);return or[++lo]=function(){kE(t,void 0,i)},Dt(lo),lo},mo=function(e){delete or[e]},CE?Dt=function(r){DE.nextTick(ho(r))}:uo&&uo.now?Dt=function(r){uo.now(ho(r))}:dh&&!ME?(co=new dh,po=co.port2,co.port1.onmessage=hh,Dt=wE(po.postMessage,po)):Te.addEventListener&&uh(Te.postMessage)&&!Te.importScripts&&ur&&ur.protocol!=="file:"&&!mh(fh)?(Dt=fh,Te.addEventListener("message",hh,!1)):ph in ch("script")?Dt=function(r){lh.appendChild(ch("script"))[ph]=function(){lh.removeChild(this),bo(r)}}:Dt=function(r){setTimeout(ho(r),0)});bh.exports={set:fo,clear:mo}});var vh=f((aM,Sh)=>{"use strict";var gh=j(),VE=Ae(),_E=Object.getOwnPropertyDescriptor;Sh.exports=function(r){if(!VE)return gh[r];var e=_E(gh,r);return e&&e.value}});var So=f((sM,Th)=>{"use strict";var yh=function(){this.head=null,this.tail=null};yh.prototype={add:function(r){var e={item:r,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var r=this.head;if(r){var e=this.head=r.next;return e===null&&(this.tail=null),r.item}}};Th.exports=yh});var Eh=f((nM,Ih)=>{"use strict";var NE=li();Ih.exports=/ipad|iphone|ipod/i.test(NE)&&typeof Pebble<"u"});var Ph=f((oM,xh)=>{"use strict";var FE=li();xh.exports=/web0s(?!.*chrome)/i.test(FE)});var Mh=f((uM,Lh)=>{"use strict";var bi=j(),UE=vh(),Ah=Zi(),vo=go().set,qE=So(),HE=oo(),jE=Eh(),GE=Ph(),yo=Ya(),kh=bi.MutationObserver||bi.WebKitMutationObserver,wh=bi.document,Rh=bi.process,za=bi.Promise,Eo=UE("queueMicrotask"),mi,To,Io,Ka,$h;Eo||(lr=new qE,cr=function(){var r,e;for(yo&&(r=Rh.domain)&&r.exit();e=lr.get();)try{e()}catch(t){throw lr.head&&mi(),t}r&&r.enter()},!HE&&!yo&&!GE&&kh&&wh?(To=!0,Io=wh.createTextNode(""),new kh(cr).observe(Io,{characterData:!0}),mi=function(){Io.data=To=!To}):!jE&&za&&za.resolve?(Ka=za.resolve(void 0),Ka.constructor=za,$h=Ah(Ka.then,Ka),mi=function(){$h(cr)}):yo?mi=function(){Rh.nextTick(cr)}:(vo=Ah(vo,bi),mi=function(){vo(cr)}),Eo=function(r){lr.head||mi(),lr.add(r)});var lr,cr;Lh.exports=Eo});var Dh=f((lM,Ch)=>{"use strict";Ch.exports=function(r,e){try{arguments.length===1?console.error(r):console.error(r,e)}catch{}}});var Ja=f((cM,Bh)=>{"use strict";Bh.exports=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}}});var Bt=f((dM,Oh)=>{"use strict";var WE=j();Oh.exports=WE.Promise});var gi=f((pM,Fh)=>{"use strict";var QE=j(),dr=Bt(),YE=H(),zE=Dn(),KE=ao(),JE=te(),Vh=io(),XE=Ve(),xo=hn(),_h=dr&&dr.prototype,ZE=JE("species"),Po=!1,Nh=YE(QE.PromiseRejectionEvent),ex=zE("Promise",function(){var r=KE(dr),e=r!==String(dr);if(!e&&xo===66||XE&&!(_h.catch&&_h.finally))return!0;if(!xo||xo<51||!/native code/.test(r)){var t=new dr(function(s){s(1)}),i=function(s){s(function(){},function(){})},a=t.constructor={};if(a[ZE]=i,Po=t.then(function(){})instanceof i,!Po)return!0}return!e&&(Vh==="BROWSER"||Vh==="DENO")&&!Nh});Fh.exports={CONSTRUCTOR:ex,REJECTION_EVENT:Nh,SUBCLASSING:Po}});var Si=f((hM,qh)=>{"use strict";var Uh=rt(),tx=TypeError,ix=function(r){var e,t;this.promise=new r(function(i,a){if(e!==void 0||t!==void 0)throw new tx("Bad Promise constructor");e=i,t=a}),this.resolve=Uh(e),this.reject=Uh(t)};qh.exports.f=function(r){return new ix(r)}});var uf=f(()=>{"use strict";var rx=ke(),ax=Ve(),ts=Ya(),bt=j(),Ii=ye(),Hh=fi(),jh=Kn(),sx=ir(),nx=Hp(),ox=rt(),es=H(),ux=Pe(),lx=Gp(),cx=no(),zh=go().set,$o=Mh(),dx=Dh(),px=Ja(),hx=So(),Kh=Ln(),is=Bt(),Lo=gi(),Jh=Si(),rs="Promise",Xh=Lo.CONSTRUCTOR,fx=Lo.REJECTION_EVENT,mx=Lo.SUBCLASSING,Ao=Kh.getterFor(rs),bx=Kh.set,vi=is&&is.prototype,Ot=is,Xa=vi,Zh=bt.TypeError,ko=bt.document,Mo=bt.process,wo=Jh.f,gx=wo,Sx=!!(ko&&ko.createEvent&&bt.dispatchEvent),ef="unhandledrejection",vx="rejectionhandled",Gh=0,tf=1,yx=2,Co=1,rf=2,Za,Wh,Tx,Qh,af=function(r){var e;return ux(r)&&es(e=r.then)?e:!1},sf=function(r,e){var t=e.value,i=e.state===tf,a=i?r.ok:r.fail,s=r.resolve,n=r.reject,o=r.domain,u,l,c;try{a?(i||(e.rejection===rf&&Ex(e),e.rejection=Co),a===!0?u=t:(o&&o.enter(),u=a(t),o&&(o.exit(),c=!0)),u===r.promise?n(new Zh("Promise-chain cycle")):(l=af(u))?Ii(l,u,s,n):s(u)):n(t)}catch(d){o&&!c&&o.exit(),n(d)}},nf=function(r,e){r.notified||(r.notified=!0,$o(function(){for(var t=r.reactions,i;i=t.get();)sf(i,r);r.notified=!1,e&&!r.rejection&&Ix(r)}))},of=function(r,e,t){var i,a;Sx?(i=ko.createEvent("Event"),i.promise=e,i.reason=t,i.initEvent(r,!1,!0),bt.dispatchEvent(i)):i={promise:e,reason:t},!fx&&(a=bt["on"+r])?a(i):r===ef&&dx("Unhandled promise rejection",t)},Ix=function(r){Ii(zh,bt,function(){var e=r.facade,t=r.value,i=Yh(r),a;if(i&&(a=px(function(){ts?Mo.emit("unhandledRejection",t,e):of(ef,e,t)}),r.rejection=ts||Yh(r)?rf:Co,a.error))throw a.value})},Yh=function(r){return r.rejection!==Co&&!r.parent},Ex=function(r){Ii(zh,bt,function(){var e=r.facade;ts?Mo.emit("rejectionHandled",e):of(vx,e,r.value)})},yi=function(r,e,t){return function(i){r(e,i,t)}},Ti=function(r,e,t){r.done||(r.done=!0,t&&(r=t),r.value=e,r.state=yx,nf(r,!0))},Ro=function(r,e,t){if(!r.done){r.done=!0,t&&(r=t);try{if(r.facade===e)throw new Zh("Promise can't be resolved itself");var i=af(e);i?$o(function(){var a={done:!1};try{Ii(i,e,yi(Ro,a,r),yi(Ti,a,r))}catch(s){Ti(a,s,r)}}):(r.value=e,r.state=tf,nf(r,!1))}catch(a){Ti({done:!1},a,r)}}};if(Xh&&(Ot=function(e){lx(this,Xa),ox(e),Ii(Za,this);var t=Ao(this);try{e(yi(Ro,t),yi(Ti,t))}catch(i){Ti(t,i)}},Xa=Ot.prototype,Za=function(e){bx(this,{type:rs,done:!1,notified:!1,parent:!1,reactions:new hx,rejection:!1,state:Gh,value:void 0})},Za.prototype=Hh(Xa,"then",function(e,t){var i=Ao(this),a=wo(cx(this,Ot));return i.parent=!0,a.ok=es(e)?e:!0,a.fail=es(t)&&t,a.domain=ts?Mo.domain:void 0,i.state===Gh?i.reactions.add(a):$o(function(){sf(a,i)}),a.promise}),Wh=function(){var r=new Za,e=Ao(r);this.promise=r,this.resolve=yi(Ro,e),this.reject=yi(Ti,e)},Jh.f=wo=function(r){return r===Ot||r===Tx?new Wh(r):gx(r)},!ax&&es(is)&&vi!==Object.prototype)){Qh=vi.then,mx||Hh(vi,"then",function(e,t){var i=this;return new Ot(function(a,s){Ii(Qh,i,a,s)}).then(e,t)},{unsafe:!0});try{delete vi.constructor}catch{}jh&&jh(vi,Xa)}rx({global:!0,constructor:!0,wrap:!0,forced:Xh},{Promise:Ot});sx(Ot,rs,!1,!0);nx(rs)});var hf=f((bM,pf)=>{"use strict";var xx=te(),cf=xx("iterator"),df=!1;try{lf=0,Do={next:function(){return{done:!!lf++}},return:function(){df=!0}},Do[cf]=function(){return this},Array.from(Do,function(){throw 2})}catch{}var lf,Do;pf.exports=function(r,e){try{if(!e&&!df)return!1}catch{return!1}var t=!1;try{var i={};i[cf]=function(){return{next:function(){return{done:t=!0}}}},r(i)}catch{}return t}});var Bo=f((gM,ff)=>{"use strict";var Px=Bt(),Ax=hf(),kx=gi().CONSTRUCTOR;ff.exports=kx||!Ax(function(r){Px.all(r).then(void 0,function(){})})});var mf=f(()=>{"use strict";var wx=ke(),Rx=ye(),$x=rt(),Lx=Si(),Mx=Ja(),Cx=Ga(),Dx=Bo();wx({target:"Promise",stat:!0,forced:Dx},{all:function(e){var t=this,i=Lx.f(t),a=i.resolve,s=i.reject,n=Mx(function(){var o=$x(t.resolve),u=[],l=0,c=1;Cx(e,function(d){var p=l++,h=!1;c++,Rx(o,t,d).then(function(m){h||(h=!0,u[p]=m,--c||a(u))},s)}),--c||a(u)});return n.error&&s(n.value),i.promise}})});var gf=f(()=>{"use strict";var Bx=ke(),Ox=Ve(),Vx=gi().CONSTRUCTOR,Vo=Bt(),_x=it(),Nx=H(),Fx=fi(),bf=Vo&&Vo.prototype;Bx({target:"Promise",proto:!0,forced:Vx,real:!0},{catch:function(r){return this.then(void 0,r)}});!Ox&&Nx(Vo)&&(Oo=_x("Promise").prototype.catch,bf.catch!==Oo&&Fx(bf,"catch",Oo,{unsafe:!0}));var Oo});var Sf=f(()=>{"use strict";var Ux=ke(),qx=ye(),Hx=rt(),jx=Si(),Gx=Ja(),Wx=Ga(),Qx=Bo();Ux({target:"Promise",stat:!0,forced:Qx},{race:function(e){var t=this,i=jx.f(t),a=i.reject,s=Gx(function(){var n=Hx(t.resolve);Wx(e,function(o){qx(n,t,o).then(i.resolve,a)})});return s.error&&a(s.value),i.promise}})});var vf=f(()=>{"use strict";var Yx=ke(),zx=Si(),Kx=gi().CONSTRUCTOR;Yx({target:"Promise",stat:!0,forced:Kx},{reject:function(e){var t=zx.f(this),i=t.reject;return i(e),t.promise}})});var _o=f((AM,yf)=>{"use strict";var Jx=Qe(),Xx=Pe(),Zx=Si();yf.exports=function(r,e){if(Jx(r),Xx(e)&&e.constructor===r)return e;var t=Zx.f(r),i=t.resolve;return i(e),t.promise}});var Ef=f(()=>{"use strict";var eP=ke(),tP=it(),Tf=Ve(),iP=Bt(),If=gi().CONSTRUCTOR,rP=_o(),aP=tP("Promise"),sP=Tf&&!If;eP({target:"Promise",stat:!0,forced:Tf||If},{resolve:function(e){return rP(sP&&this===aP?iP:this,e)}})});var xf=f(()=>{"use strict";uf();mf();gf();Sf();vf();Ef()});var wf=f(()=>{"use strict";var nP=ke(),oP=Ve(),as=Bt(),uP=ve(),Af=it(),kf=H(),lP=no(),Pf=_o(),cP=fi(),Fo=as&&as.prototype,dP=!!as&&uP(function(){Fo.finally.call({then:function(){}},function(){})});nP({target:"Promise",proto:!0,real:!0,forced:dP},{finally:function(r){var e=lP(this,Af("Promise")),t=kf(r);return this.then(t?function(i){return Pf(e,r()).then(function(){return i})}:r,t?function(i){return Pf(e,r()).then(function(){throw i})}:r)}});!oP&&kf(as)&&(No=Af("Promise").prototype.finally,Fo.finally!==No&&cP(Fo,"finally",No,{unsafe:!0}));var No});var ss=f((CM,Rf)=>{"use strict";var pP=it();Rf.exports=pP});var Lf=f((DM,$f)=>{"use strict";Op();xf();wf();var hP=ss();$f.exports=hP("Promise","finally")});var Cf=f((BM,Mf)=>{"use strict";var fP=Lf();Mf.exports=fP});var ns=f((OM,Df)=>{"use strict";var mP=Cf();Df.exports=mP});var sm=f(()=>{"use strict";var jP=ke(),GP=zi(),WP=Oa(),QP=Ba(),YP=an();jP({target:"Array",proto:!0},{at:function(e){var t=GP(this),i=WP(t),a=QP(e),s=a>=0?a:i+a;return s<0||s>=i?void 0:t[s]}});YP("at")});var om=f((GC,nm)=>{"use strict";sm();var zP=ss();nm.exports=zP("Array","at")});var lm=f((WC,um)=>{"use strict";var KP=om();um.exports=KP});var Pi=f((QC,cm)=>{"use strict";var JP=lm();cm.exports=JP});var sb=f(()=>{"use strict"});var nb=f(()=>{"use strict"});var ub=f((YO,ob)=>{"use strict";var ak=Pe(),sk=ni(),nk=te(),ok=nk("match");ob.exports=function(r){var e;return ak(r)&&((e=r[ok])!==void 0?!!e:sk(r)==="RegExp")}});var cb=f((zO,lb)=>{"use strict";var uk=tr(),lk=String;lb.exports=function(r){if(uk(r)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return lk(r)}});var pb=f((KO,db)=>{"use strict";var ck=Qe();db.exports=function(){var r=ck(this),e="";return r.hasIndices&&(e+="d"),r.global&&(e+="g"),r.ignoreCase&&(e+="i"),r.multiline&&(e+="m"),r.dotAll&&(e+="s"),r.unicode&&(e+="u"),r.unicodeSets&&(e+="v"),r.sticky&&(e+="y"),e}});var mb=f((JO,fb)=>{"use strict";var dk=ye(),pk=_e(),hk=Gi(),fk=pb(),hb=RegExp.prototype;fb.exports=function(r){var e=r.flags;return e===void 0&&!("flags"in hb)&&!pk(r,"flags")&&hk(hb,r)?dk(fk,r):e}});var gb=f((XO,bb)=>{"use strict";var bu=ne(),mk=zi(),bk=Math.floor,fu=bu("".charAt),gk=bu("".replace),mu=bu("".slice),Sk=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,vk=/\$([$&'`]|\d{1,2})/g;bb.exports=function(r,e,t,i,a,s){var n=t+r.length,o=i.length,u=vk;return a!==void 0&&(a=mk(a),u=Sk),gk(s,u,function(l,c){var d;switch(fu(c,0)){case"$":return"$";case"&":return r;case"`":return mu(e,0,t);case"'":return mu(e,n);case"<":d=a[mu(c,1,-1)];break;default:var p=+c;if(p===0)return l;if(p>o){var h=bk(p/10);return h===0?l:h<=o?i[h-1]===void 0?fu(c,1):i[h-1]+fu(c,1):l}d=i[p-1]}return d===void 0?"":d})}});var yb=f(()=>{"use strict";var yk=ke(),Tk=ye(),Su=ne(),Sb=Hi(),Ik=H(),Ek=oi(),xk=ub(),Di=cb(),Pk=Qi(),Ak=mb(),kk=gb(),wk=te(),Rk=Ve(),$k=wk("replace"),Lk=TypeError,gu=Su("".indexOf),Mk=Su("".replace),vb=Su("".slice),Ck=Math.max;yk({target:"String",proto:!0},{replaceAll:function(e,t){var i=Sb(this),a,s,n,o,u,l,c,d,p,h,m=0,b="";if(!Ek(e)){if(a=xk(e),a&&(s=Di(Sb(Ak(e))),!~gu(s,"g")))throw new Lk("`.replaceAll` does not allow non-global regexes");if(n=Pk(e,$k),n)return Tk(n,e,i,t);if(Rk&&a)return Mk(Di(i),e,t)}for(o=Di(i),u=Di(e),l=Ik(t),l||(t=Di(t)),c=u.length,d=Ck(1,c),p=gu(o,u);p!==-1;)h=l?Di(t(u,p,o)):kk(u,o,p,[],void 0,t),b+=vb(o,m,p)+h,m=p+c,p=p+d>o.length?-1:gu(o,u,p+d);return m<o.length&&(b+=vb(o,m)),b}})});var Ib=f((tV,Tb)=>{"use strict";sb();nb();yb();var Dk=ss();Tb.exports=Dk("String","replaceAll")});var xb=f((iV,Eb)=>{"use strict";var Bk=Ib();Eb.exports=Bk});var Ab=f((rV,Pb)=>{"use strict";var Ok=xb();Pb.exports=Ok});var Zu="2.0.115-dev.1dfe2867.0";var se=(a=>(a.STOPPED="stopped",a.READY="ready",a.PLAYING="playing",a.PAUSED="paused",a))(se||{}),mt=(y=>(y.MPEG="MPEG",y.DASH="DASH",y.DASH_SEP="DASH_SEP",y.DASH_SEP_VK="DASH_SEP",y.DASH_WEBM="DASH_WEBM",y.DASH_WEBM_AV1="DASH_WEBM_AV1",y.DASH_STREAMS="DASH_STREAMS",y.DASH_WEBM_VK="DASH_WEBM",y.DASH_ONDEMAND="DASH_ONDEMAND",y.DASH_ONDEMAND_VK="DASH_ONDEMAND",y.DASH_LIVE="DASH_LIVE",y.DASH_LIVE_CMAF="DASH_LIVE_CMAF",y.DASH_LIVE_WEBM="DASH_LIVE_WEBM",y.HLS="HLS",y.HLS_ONDEMAND="HLS_ONDEMAND",y.HLS_JS="HLS",y.HLS_LIVE="HLS_LIVE",y.HLS_LIVE_CMAF="HLS_LIVE_CMAF",y.WEB_RTC_LIVE="WEB_RTC_LIVE",y))(mt||{});var Ea=(a=>(a.NOT_AVAILABLE="NOT_AVAILABLE",a.AVAILABLE="AVAILABLE",a.CONNECTING="CONNECTING",a.CONNECTED="CONNECTED",a))(Ea||{}),Js=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Js||{});var Xs=(n=>(n.NONE="none",n.INLINE="inline",n.FULLSCREEN="fullscreen",n.SECOND_SCREEN="second_screen",n.PIP="pip",n.INVISIBLE="invisible",n))(Xs||{});import{assertNever as sl,assertNonNullable as tS,isNonNullable as xa,ValueSubject as Zs,Subject as iS,Subscription as rS,merge as aS,observableFrom as sS,fromEvent as tl,map as il,tap as rl,filterChanged as nS,isNullable as en,ErrorCategory as al}from"@vkontakte/videoplayer-shared";var el=r=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",r),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var Pa=class{constructor(e){this.connection$=new Zs(void 0);this.castState$=new Zs("NOT_AVAILABLE");this.errorEvent$=new iS;this.realCastState$=new Zs("NOT_AVAILABLE");this.subscription=new rS;this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastInitializer");let t="chrome"in window;if(this.log({message:`[constructor] receiverApplicationId: ${this.params.receiverApplicationId}, isDisabled: ${this.params.isDisabled}, isSupported: ${t}`}),e.isDisabled||!t)return;let i=xa(window.chrome?.cast),a=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=s=>{delete window.__onGCastApiAvailable,s&&this.initializeCastApi()},a||el("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:al.NETWORK,message:"Script loading failed!"})))}connect(){cast.framework.CastContext.getInstance()?.requestSession()}disconnect(){cast.framework.CastContext.getInstance()?.getCurrentSession()?.endSession(!0)}stopMedia(){return new Promise((e,t)=>{cast.framework.CastContext.getInstance()?.getCurrentSession()?.getMediaSession()?.stop(new chrome.cast.media.StopRequest,e,t)})}toggleConnection(){xa(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();en(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();en(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(tl(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(a=>{switch(a.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=i.getCurrentSession()?.getMediaSession()?.media?.contentId;break;case cast.framework.SessionState.NO_SESSION:case cast.framework.SessionState.SESSION_ENDING:case cast.framework.SessionState.SESSION_ENDED:case cast.framework.SessionState.SESSION_START_FAILED:this.contentId=void 0;break;default:return sl(a.sessionState)}})).add(aS(tl(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(rl(a=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(a)}`})}),il(a=>a.castState)),sS([i.getCastState()])).pipe(nS(),il(oS),rl(a=>{this.log({message:`realCastState$: ${a}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(a=>{let s=a==="CONNECTED",n=xa(this.connection$.getValue());if(s&&!n){let o=i.getCurrentSession();tS(o);let u=o.getCastDevice(),l=o.getMediaSession()?.media?.contentId;(en(l)||l===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:u}))}else!s&&n&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(a==="CONNECTED"?xa(this.connection$.getValue())?"CONNECTED":"AVAILABLE":a)}))}initializeCastApi(){let e,t,i;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,i=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:i}),this.initListeners()}catch(a){this.errorEvent$.next({id:"ChromecastInitializer",category:al.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:a})}}},oS=r=>{switch(r){case cast.framework.CastState.NO_DEVICES_AVAILABLE:return"NOT_AVAILABLE";case cast.framework.CastState.NOT_CONNECTED:return"AVAILABLE";case cast.framework.CastState.CONNECTING:return"CONNECTING";case cast.framework.CastState.CONNECTED:return"CONNECTED";default:return sl(r)}};var Ag=Be(to(),1);var jf=Be(ns(),1);import{assertNever as Bf}from"@vkontakte/videoplayer-shared";var X=(r,e=0,t=0)=>{switch(t){case 0:return r.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return r;let i=new URL(r);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(r);return!i.searchParams.get("offset_p")&&e===0?r:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:Bf(t)}return r},Uo=(r,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(r);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(r);return Number(t.searchParams.get("offset_p")??0)}default:Bf(e)}};var I=(r,e,t=!1)=>{let i=r.getTransition();(t||!i||i.to===e)&&r.setState(e)};import{isNonNullable as bP,Subject as os,merge as Of}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new os;this.transitionEnded$=new os;this.transitionUpdated$=new os;this.forceChanged$=new os;this.stateChangeStarted$=Of(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=Of(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,i=this.state;this.transition=void 0,this.prevState=i,this.state=e,t?t.to===e?this.transitionEnded$.next(t):this.forceChanged$.next({from:t.from,to:e,canceledTransition:t}):this.forceChanged$.next({from:i,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,i=this.state;i===e||bP(t)&&t.to===e||(this.prevState=i,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:i,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as gP}from"@vkontakte/videoplayer-shared";var Vf=r=>{switch(r){case"MPEG":case"DASH":case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":case"HLS":case"HLS_ONDEMAND":return!1;case"DASH_LIVE":case"DASH_LIVE_CMAF":case"HLS_LIVE":case"HLS_LIVE_CMAF":case"DASH_LIVE_WEBM":case"WEB_RTC_LIVE":return!0;default:return gP(r)}};import{assertNever as Ei,assertNonNullable as Vt,debounce as _f,ErrorCategory as Nf,fromEvent as _t,isNonNullable as Ff,map as Uf,merge as qf,observableFrom as SP,Subject as vP,Subscription as qo,timeout as yP,getHighestQuality as TP}from"@vkontakte/videoplayer-shared";var IP=5,EP=5,xP=500,Hf=7e3,pr=class{constructor(e){this.subscription=new qo;this.loadMediaTimeoutSubscription=new qo;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),a=this.params.desiredState.playbackState.getTransition(),s=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(s)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(a?.to!=="paused"&&s.state==="requested"&&e!=="stopped"){this.seek(s.position/1e3);return}switch(i){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Ei(e)}break}case"playing":{switch(e){case"playing":break;case"paused":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"ready":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Ei(e)}break}case"paused":{switch(e){case"playing":this.videoState.startTransitionTo("paused"),this.params.connection.remotePlayerController.playOrPause();break;case"paused":break;case"ready":this.videoState.startTransitionTo("paused"),this.videoState.setState("paused");break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Ei(e)}break}default:Ei(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(Vf(e.format)),this.params.output.isAudioAvailable$.next(!0),this.handleRemoteVolumeChange({volume:this.params.connection.remotePlayer.volumeLevel,muted:this.params.connection.remotePlayer.isMuted});let t=this.params.connection.session.getMediaSession();t&&this.restoreSession(t),this.subscribe()}destroy(){this.log({message:"[destroy]"}),this.subscription.unsubscribe()}subscribe(){this.subscription.add(this.loadMediaTimeoutSubscription);let e=new qo;this.subscription.add(e),this.subscription.add(qf(this.videoState.stateChangeStarted$.pipe(Uf(a=>`stateChangeStarted$ ${JSON.stringify(a)}`)),this.videoState.stateChangeEnded$.pipe(Uf(a=>`stateChangeEnded$ ${JSON.stringify(a)}`))).subscribe(a=>this.log({message:`[videoState] ${a}`})));let t=(a,s)=>this.subscription.add(a.subscribe(s));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let a=new vP;e.add(a.pipe(_f(xP)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let s=NaN;e.add(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(n=>{this.logRemoteEvent(n);let o=n.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-s)>IP)&&a.next(o),s=o})),e.add(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(n=>{this.logRemoteEvent(n),this.params.output.duration$.next(n.value)}))}t(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),a=>{this.logRemoteEvent(a),a.value?this.handleRemotePause():this.handleRemotePlay()}),t(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),a=>{this.logRemoteEvent(a);let{remotePlayer:s}=this.params.connection,n=a.value,o=this.params.output.isBuffering$.getValue(),u=n===chrome.cast.media.PlayerState.BUFFERING;switch(o!==u&&this.params.output.isBuffering$.next(u),n){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&s.duration-s.currentTime<EP&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),I(this.params.desiredState.playbackState,"stopped");break;case chrome.cast.media.PlayerState.PAUSED:{this.handleRemotePause();break}case chrome.cast.media.PlayerState.PLAYING:this.handleRemotePlay();break;case chrome.cast.media.PlayerState.BUFFERING:break;default:Ei(n)}}),t(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({volume:a.value})}),t(_t(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),a=>{this.logRemoteEvent(a),this.handleRemoteVolumeChange({muted:a.value})});let i=qf(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,SP(["init"])).pipe(_f(0));t(i,this.syncPlayback)}restoreSession(e){this.log({message:"restoreSession"});let{remotePlayer:t}=this.params.connection;if(e.playerState!==chrome.cast.media.PlayerState.IDLE){t.isPaused?(this.videoState.setState("paused"),I(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),I(this.params.desiredState.playbackState,"playing"));let i=this.params.output.isLive$.getValue();this.params.output.duration$.next(i?0:t.duration),this.params.output.position$.next(i?0:t.currentTime),this.params.desiredState.seekState.setState({state:"none"})}}prepare(){let e=this.params.format;this.log({message:`[prepare] format: ${e}`});let t=this.createMediaInfo(e),i=this.createLoadRequest(t);this.loadMedia(i)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),I(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),I(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&I(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),i={volume:e.volume??t.volume,muted:e.muted??t.muted};(i.volume!==t.volume||i.muted!==i.muted)&&this.params.output.volume$.next(i)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:i}=this.params.connection;t.currentTime=e,i.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,i,a,s;switch(e){case"MPEG":{let l=t[e];Vt(l);let c=TP(Object.keys(l));Vt(c);let d=l[c];Vt(d),i=d,a="video/mp4",s=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let l=t[e];Vt(l),i=l.url,a="application/x-mpegurl",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let l=t[e];Vt(l),i=l.url,a="application/dash+xml",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let l=t[e];Vt(l),i=l.url,a="application/dash+xml",s=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let l=t[e];Vt(l),i=X(l.url),a="application/x-mpegurl",s=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let l="Unsupported format for Chromecast",c=new Error(l);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:Nf.VIDEO_PIPELINE,message:l,thrown:c}),c}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return Ei(e)}let n=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,a);n.contentUrl=i,n.streamType=s,n.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:u}=this.params.meta;return Ff(o)&&(n.metadata.title=o),Ff(u)&&(n.metadata.subtitle=u),n}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let i=this.params.desiredState.seekState.getState();return i.state==="applying"||i.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:i.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),i=new Promise((a,s)=>{this.loadMediaTimeoutSubscription.add(yP(Hf).subscribe(()=>s(`timeout(${Hf})`)))});(0,jf.default)(Promise.race([t,i]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},a=>{let s=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${a}`;this.log({message:s}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:Nf.VIDEO_PIPELINE,message:s,thrown:a})}),()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as Wf}from"@vkontakte/videoplayer-shared";import{clearVideoElement as PP}from"@vkontakte/videoplayer-shared";var Gf=r=>{try{r.pause(),r.playbackRate=0,PP(r),r.remove()}catch(e){console.error(e)}};import{fromEvent as AP,Subscription as kP}from"@vkontakte/videoplayer-shared";var Ho=class{constructor(){this.attribute="data-pool-reused"}get(e){return e.hasAttribute(this.attribute)}set(e,t){e.toggleAttribute(this.attribute,t)}delete(e){e.removeAttribute(this.attribute)}},jo=window.WeakMap?new WeakMap:new Ho,Go=window.WeakMap?new WeakMap:new Map,wP=(r,e=20)=>{let t=0;return AP(r,"ratechange").subscribe(i=>{t++,t>=e&&(r.currentTime=r.currentTime,t=0)})},oe=(r,{audioVideoSyncRate:e})=>{let t=r.querySelector("video"),i=!!t;t?Wf(t):(t=document.createElement("video"),r.appendChild(t)),jo.set(t,i);let a=new kP;return a.add(wP(t,e)),Go.set(t,a),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},ue=r=>{Go.get(r)?.unsubscribe(),Go.delete(r);let t=jo.get(r);jo.delete(r),t?Wf(r):Gf(r)};import{assertNonNullable as hr,isNonNullable as ze,isNullable as LP,fromEvent as xi,merge as Qf,observableFrom as Yf,filterChanged as zf,map as fr,Subject as Kf,Subscription as MP,ValueSubject as CP,ErrorCategory as DP}from"@vkontakte/videoplayer-shared";import{isNonNullable as Wo,isNullable as RP,Subscription as $P}from"@vkontakte/videoplayer-shared";var us=(r,e,t,{equal:i=(n,o)=>n===o,changed$:a,onError:s}={})=>{let n=r.getState(),o=e(),u=RP(a),l=new $P;return a&&l.add(a.subscribe(c=>{let d=r.getState();i(c,d)&&r.setState(c)},s)),i(o,n)||(t(n),u&&r.setState(n)),l.add(r.stateChangeStarted$.subscribe(c=>{t(c.to),u&&r.setState(c.to)},s)),l},Ye=(r,e,t)=>us(e,()=>r.loop,i=>{Wo(i)&&(r.loop=i)},{onError:t}),le=(r,e,t,i)=>us(e,()=>({muted:r.muted,volume:r.volume}),a=>{Wo(a)&&(r.muted=a.muted,r.volume=a.volume)},{equal:(a,s)=>a===s||a?.muted===s?.muted&&a?.volume===s?.volume,changed$:t,onError:i}),we=(r,e,t,i)=>us(e,()=>r.playbackRate,a=>{Wo(a)&&(r.playbackRate=a)},{changed$:t,onError:i}),gt=us;var BP=r=>["__",r.language,r.label].join("|"),OP=(r,e)=>{if(r.id===e)return!0;let[t,i,a]=e.split("|");return r.language===i&&r.label===a},Qo=class r{constructor(){this.available$=new Kf;this.current$=new CP(void 0);this.error$=new Kf;this.subscription=new MP;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let a=s=>{this.error$.next({id:"TextTracksManager",category:DP.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:s})};this.subscription.add(this.available$.subscribe(i.availableTextTracks$)),this.subscription.add(this.current$.subscribe(i.currentTextTrack$)),this.subscription.add(this.error$.subscribe(i.error$)),this.subscription.add(gt(t.internalTextTracks,()=>Object.values(this.internalTracks),s=>{ze(s)&&this.setInternal(s)},{equal:(s,n)=>ze(s)&&ze(n)&&s.length===n.length&&s.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(fr(s=>s.filter(({type:n})=>n==="internal"))),onError:a})),this.subscription.add(gt(t.externalTextTracks,()=>Object.values(this.externalTracks),s=>{ze(s)&&this.setExternal(s)},{equal:(s,n)=>ze(s)&&ze(n)&&s.length===n.length&&s.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(fr(s=>s.filter(({type:n})=>n==="external"))),onError:a})),this.subscription.add(gt(t.currentTextTrack,()=>{if(this.video)return;let s=this.htmlTextTracksAsArray().find(({mode:n})=>n==="showing");return s&&this.htmlTextTrackToITextTrack(s).id},s=>this.select(s),{changed$:this.current$,onError:a})),this.subscription.add(gt(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let s of this.htmlTextTracksAsArray())this.applyCueSettings(s.cues),this.applyCueSettings(s.activeCues)}))}subscribe(){hr(this.video);let{textTracks:e}=this.video;this.subscription.add(xi(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(Qf(xi(e,"addtrack"),xi(e,"removetrack"),Yf(["init"])).pipe(fr(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),zf((i,a)=>i.length===a.length&&i.every(({id:s},n)=>s===a[n].id))).subscribe(this.available$)),this.subscription.add(Qf(xi(e,"change"),Yf(["init"])).pipe(fr(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),fr(i=>i&&this.htmlTextTrackToITextTrack(i).id),zf()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(xi(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let a=s=>{let n=s.target?.cues??null;n&&n.length&&(this.applyCueSettings(s.target?.cues??null),s.target?.removeEventListener("cuechange",a))};i.track?.addEventListener("cuechange",a)})),this.subscription.add(xi(e,"removetrack").subscribe(i=>{i.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let i of Array.from(e)){let a=i;ze(t.align)&&(a.align=t.align),ze(t.position)&&(a.position=t.position),ze(t.size)&&(a.size=t.size),ze(t.line)&&(a.line=t.line)}}htmlTextTracksAsArray(e=!1){hr(this.video);let t=[...this.video.textTracks];return e?t:t.filter(r.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,a=e.id?e.id:BP(e),s=this.externalTracks.has(a),n=(s?this.externalTracks.get(a)?.isAuto:this.internalTracks.get(a)?.isAuto)||a.includes("auto");return s?{id:a,type:"external",isAuto:n,language:t,label:i,url:this.externalTracks.get(a)?.url}:{id:a,type:"internal",isAuto:n,language:t,label:i,url:this.internalTracks.get(a)?.url}}static isHealthyTrack(e){return!(e.kind==="metadata"||e.groupId||e.id===""&&e.label===""&&e.language==="")}setExternal(e){this.internalTracks.size>0&&Array.from(this.internalTracks).forEach(([,t])=>this.detach(t)),e.filter(({id:t})=>!this.externalTracks.has(t)).forEach(t=>this.attach(t)),Array.from(this.externalTracks).filter(([t])=>!e.find(i=>i.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:i,language:a,isAuto:s})=>!this.internalTracks.has(i)&&!t.some(([,n])=>n.language===a&&n.isAuto===s)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(a=>a.id===i)).forEach(([,i])=>this.detach(i))}select(e){hr(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(LP(e)||!OP(t,e))&&(t.mode="disabled")}destroy(){if(this.subscription.unsubscribe(),this.video)for(let e of Array.from(this.video.getElementsByTagName("track"))){let t=e.getAttribute("id");t&&this.externalTracks.has(t)&&this.video.removeChild(e)}this.externalTracks.clear()}attach(e){hr(this.video);let t=document.createElement("track");t.setAttribute("src",e.url),t.setAttribute("id",e.id),e.label&&t.setAttribute("label",e.label),e.language&&t.setAttribute("srclang",e.language),e.type==="external"?this.externalTracks.set(e.id,e):e.type==="internal"&&this.internalTracks.set(e.id,e),this.video.appendChild(t)}detach(e){hr(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),i=>i.getAttribute("id")===e.id);t&&this.video.removeChild(t),e.type==="external"?this.externalTracks.delete(e.id):e.type==="internal"&&this.internalTracks.delete(e.id)}},Re=Qo;var nt=class{constructor(){this.pausedTime=0;this.streamOffset=0;this.pauseTimestamp=0}getTotalPausedTime(){return this.pausedTime+this.getCurrentPausedTime()}getCurrentPausedTime(){return this.pauseTimestamp>0?Date.now()-this.pauseTimestamp:0}getStreamOffset(){return this.streamOffset}getTotalOffset(){return this.getTotalPausedTime()+this.streamOffset}pause(){this.pauseTimestamp===0&&(this.pauseTimestamp=Date.now())}resume(){this.pauseTimestamp>0&&(this.pausedTime+=this.getCurrentPausedTime(),this.pauseTimestamp=0)}resetTo(e,t=!1){this.streamOffset=e,this.pauseTimestamp=0,this.pausedTime=0,t&&this.pause()}};var Jf=r=>{let e=r;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Yo=r=>{let e=Jf(r);return!!(e&&e.fullscreenElement&&e.fullscreenElement===r)},Xf=r=>{let e=Jf(r);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===r)};import{fromEvent as $e,map as St,merge as em,filterChanged as _P,isNonNullable as tm,Subject as NP,filter as im,mapTo as rm,combine as FP,once as UP,ErrorCategory as qP,ValueSubject as am,clientChecker as HP}from"@vkontakte/videoplayer-shared";var VP=3,Zf=(r,e,t=VP)=>{let i=0,a=0;for(let s=0;s<r.length;s++){let n=r.start(s),o=r.end(s);if(n<=e&&e<=o){if(i=n,a=o,!t)return{from:i,to:a};for(let u=s-1;u>=0;u--)r.end(u)+t>=i&&(i=r.start(u));for(let u=s+1;u<r.length;u++)r.start(u)-t<=a&&(a=r.end(u))}}return{from:i,to:a}};var ce=r=>{let e=y=>$e(r,y).pipe(rm(void 0)),i=em(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(y=>$e(r,y))).pipe(St(y=>y.type==="ended"?r.readyState<2:r.readyState<3),_P()),a=em($e(r,"progress"),$e(r,"timeupdate")).pipe(St(()=>Zf(r.buffered,r.currentTime))),s=HP.isSafari?FP({play:e("play").pipe(UP()),playing:e("playing")}).pipe(rm(void 0)):e("playing"),n=$e(r,"volumechange").pipe(St(()=>({muted:r.muted,volume:r.volume}))),o=$e(r,"ratechange").pipe(St(()=>r.playbackRate)),u=$e(r,"error").pipe(im(()=>!!(r.error||r.played.length)),St(()=>{let y=r.error;return{id:y?`MediaError#${y.code}`:"HtmlVideoError",category:qP.VIDEO_PIPELINE,message:y?y.message:"Error event from HTML video element",thrown:r.error??void 0}})),l=$e(r,"timeupdate").pipe(St(()=>r.currentTime)),c=new NP,d=.3,p;l.subscribe(y=>{r.loop&&tm(p)&&tm(y)&&p>=r.duration-d&&y<=d&&c.next(p),p=y});let h=e("pause").pipe(im(()=>!r.error&&p!==r.duration)),m=$e(r,"enterpictureinpicture"),b=$e(r,"leavepictureinpicture"),g=new am(Xf(r));m.subscribe(()=>g.next(!0)),b.subscribe(()=>g.next(!1));let T=new am(Yo(r));return $e(r,"fullscreenchange").pipe(St(()=>Yo(r))).subscribe(T),{playing$:s,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:c,error$:u,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:l,durationChange$:$e(r,"durationchange").pipe(St(()=>r.duration)),isBuffering$:i,currentBuffer$:a,volumeState$:n,playbackRateState$:o,inPiP$:g,inFullscreen$:T}};import{VideoQuality as vt}from"@vkontakte/videoplayer-shared";var yt=r=>{switch(r){case"mobile":return vt.Q_144P;case"lowest":return vt.Q_240P;case"low":return vt.Q_360P;case"sd":case"medium":return vt.Q_480P;case"hd":case"high":return vt.Q_720P;case"fullhd":case"full":return vt.Q_1080P;case"quadhd":case"quad":return vt.Q_1440P;case"ultrahd":case"ultra":return vt.Q_2160P}};var Nt=Be(Pi(),1);import{isNonNullable as Q,isNullable as Ko,now as Sm,isHigher as Jo,isHigherOrEqual as fm,isInvariantQuality as mm,isLower as bm,isLowerOrEqual as Xo,videoSizeToQuality as XP,assertNotEmptyArray as vm,assertNonNullable as ZP}from"@vkontakte/videoplayer-shared";var zo=!1,ot={},dm=r=>{zo=r},pm=()=>{ot={}},hm=r=>{r(ot)},mr=(r,e)=>{zo&&(ot.meta=ot.meta??{},ot.meta[r]=e)},ie=class{constructor(e){this.name=e}next(e){if(!zo)return;ot.series=ot.series??{};let t=ot.series[this.name]??[];t.push([Date.now(),e]),ot.series[this.name]=t}};var eA=new ie("best_bitrate"),ym=(r,e,t)=>(e-t)*Math.pow(2,-10*r)+t;var Zo=r=>(e,t)=>r*(Number(e.bitrate)-Number(t.bitrate)),br=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=Sm()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},Tm='Assertion "ABR Tracks is empty array" failed',ls=(r,e,t,i)=>{let a=[...e].sort(Zo(1)),s=[...t].sort(Zo(1)),n=s.filter(u=>Q(u.bitrate)&&Q(r.bitrate)?r.bitrate/u.bitrate>i:!0),o=(0,Nt.default)(s,Math.round(s.length*a.indexOf(r)/(a.length+1)))??(0,Nt.default)(s,-1);return o&&n.includes(o)?o:n.length?(0,Nt.default)(n,-1):(0,Nt.default)(s,0)},gm=r=>"quality"in r,Im=(r,e,t,i)=>{let a=Q(i?.last?.bitrate)&&Q(t?.bitrate)&&i.last.bitrate<t.bitrate?r.trackCooldownIncreaseQuality:r.trackCooldownDecreaseQuality,s=t&&i&&i.history[t.id]&&Sm()-i.history[t.id]<=a&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!s&&i.recordSelection(t),s&&i?.last){let n=i.last;i?.recordSwitch(n);let o=gm(n)?"video":"audio",u=gm(n)?n.quality:n.bitrate;return e({message:`
|
|
7
7
|
[last ${o} selected] ${u}
|
|
8
8
|
`}),n}return i?.recordSwitch(t),t},Tt=(r,{container:e,throughput:t,tuning:i,limits:a,reserve:s=0,forwardBufferHealth:n,playbackRate:o,current:u,history:l,visible:c,droppedVideoMaxQualityLimit:d,abrLogger:p})=>{vm(r,Tm);let h=window.devicePixelRatio??1,m=i.usePixelRatio?i.pixelRatioMultiplier*(h-1)+1:1,b=i.limitByContainer&&e&&e.width>0&&e.height>0&&{width:e.width*m*i.containerSizeFactor,height:e.height*m*i.containerSizeFactor},g=b&&XP(b),T=i.considerPlaybackRate&&Q(o)?o:1,E=r.filter(v=>!mm(v.quality)).sort((v,P)=>Jo(v.quality,P.quality)?-1:1),y=(0,Nt.default)(E,-1)?.quality,x=(0,Nt.default)(E,0)?.quality,S=Ko(a)||Q(a.min)&&Q(a.max)&&bm(a.max,a.min)||Q(a.min)&&x&&Jo(a.min,x)||Q(a.max)&&y&&bm(a.max,y),w=T*ym(n??.5,i.bitrateFactorAtEmptyBuffer,i.bitrateFactorAtFullBuffer),D={},_=E.filter(v=>{if(!(g?Xo(v.quality,g):!0))return D[v.quality]="FitsContainer",!1;if(!(Q(t)&&isFinite(t)&&Q(v.bitrate)?t-s>=v.bitrate*w:!0))return D[v.quality]="FitsThroughput",!1;if(i.lazyQualitySwitch&&Q(i.minBufferToSwitchUp)&&u&&!mm(u.quality)&&(n??0)<i.minBufferToSwitchUp&&Jo(v.quality,u.quality))return D[v.quality]="Buffer",!1;if(!!d&&fm(v.quality,d))return D[v.quality]="DroppedFramesLimit",!1;let k=S||(Ko(a.max)||Xo(v.quality,a.max))&&(Ko(a.min)||fm(v.quality,a.min)),M=Q(c)&&!c?Xo(v.quality,i.backgroundVideoQualityLimit):!0;return!k||!M?(D[v.quality]="FitsQualityLimits",!1):!0})[0];_&&_.bitrate&&eA.next(_.bitrate);let F=_??E[Math.ceil((E.length-1)/2)]??r[0];return F.quality!==l?.last?.quality&&p({message:`
|
|
9
9
|
[VIDEO TRACKS ABR]
|
package/evergreen.esm.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @vkontakte/videoplayer-core v2.0.115-dev.
|
|
3
|
-
*
|
|
2
|
+
* @vkontakte/videoplayer-core v2.0.115-dev.1dfe2867.0
|
|
3
|
+
* Fri, 25 Oct 2024 08:16:13 GMT
|
|
4
4
|
* https://st.mycdn.me/static/vkontakte-videoplayer/2-0-115/doc/
|
|
5
5
|
*/
|
|
6
|
-
var za="2.0.115-dev.0b2656af.0";var te=(r=>(r.STOPPED="stopped",r.READY="ready",r.PLAYING="playing",r.PAUSED="paused",r))(te||{}),Ye=(v=>(v.MPEG="MPEG",v.DASH="DASH",v.DASH_SEP="DASH_SEP",v.DASH_SEP_VK="DASH_SEP",v.DASH_WEBM="DASH_WEBM",v.DASH_WEBM_AV1="DASH_WEBM_AV1",v.DASH_STREAMS="DASH_STREAMS",v.DASH_WEBM_VK="DASH_WEBM",v.DASH_ONDEMAND="DASH_ONDEMAND",v.DASH_ONDEMAND_VK="DASH_ONDEMAND",v.DASH_LIVE="DASH_LIVE",v.DASH_LIVE_CMAF="DASH_LIVE_CMAF",v.DASH_LIVE_WEBM="DASH_LIVE_WEBM",v.HLS="HLS",v.HLS_ONDEMAND="HLS_ONDEMAND",v.HLS_JS="HLS",v.HLS_LIVE="HLS_LIVE",v.HLS_LIVE_CMAF="HLS_LIVE_CMAF",v.WEB_RTC_LIVE="WEB_RTC_LIVE",v))(Ye||{});var Zi=(r=>(r.NOT_AVAILABLE="NOT_AVAILABLE",r.AVAILABLE="AVAILABLE",r.CONNECTING="CONNECTING",r.CONNECTED="CONNECTED",r))(Zi||{}),Qr=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Qr||{});var jr=(s=>(s.NONE="none",s.INLINE="inline",s.FULLSCREEN="fullscreen",s.SECOND_SCREEN="second_screen",s.PIP="pip",s.INVISIBLE="invisible",s))(jr||{});import{assertNever as ts,assertNonNullable as Vo,isNonNullable as er,ValueSubject as Wr,Subject as Oo,Subscription as No,merge as _o,observableFrom as Fo,fromEvent as Ja,map as Xa,tap as Za,filterChanged as Uo,isNullable as Gr,ErrorCategory as es}from"@vkontakte/videoplayer-shared";var Ka=n=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var tr=class{constructor(e){this.connection$=new Wr(void 0);this.castState$=new Wr("NOT_AVAILABLE");this.errorEvent$=new Oo;this.realCastState$=new Wr("NOT_AVAILABLE");this.subscription=new No;this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastInitializer");let t="chrome"in window;if(this.log({message:`[constructor] receiverApplicationId: ${this.params.receiverApplicationId}, isDisabled: ${this.params.isDisabled}, isSupported: ${t}`}),e.isDisabled||!t)return;let i=er(window.chrome?.cast),r=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=a=>{delete window.__onGCastApiAvailable,a&&this.initializeCastApi()},r||Ka("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:es.NETWORK,message:"Script loading failed!"})))}connect(){cast.framework.CastContext.getInstance()?.requestSession()}disconnect(){cast.framework.CastContext.getInstance()?.getCurrentSession()?.endSession(!0)}stopMedia(){return new Promise((e,t)=>{cast.framework.CastContext.getInstance()?.getCurrentSession()?.getMediaSession()?.stop(new chrome.cast.media.StopRequest,e,t)})}toggleConnection(){er(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();Gr(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();Gr(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(Ja(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(r=>{switch(r.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=i.getCurrentSession()?.getMediaSession()?.media?.contentId;break;case cast.framework.SessionState.NO_SESSION:case cast.framework.SessionState.SESSION_ENDING:case cast.framework.SessionState.SESSION_ENDED:case cast.framework.SessionState.SESSION_START_FAILED:this.contentId=void 0;break;default:return ts(r.sessionState)}})).add(_o(Ja(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(Za(r=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(r)}`})}),Xa(r=>r.castState)),Fo([i.getCastState()])).pipe(Uo(),Xa(Ho),Za(r=>{this.log({message:`realCastState$: ${r}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(r=>{let a=r==="CONNECTED",s=er(this.connection$.getValue());if(a&&!s){let o=i.getCurrentSession();Vo(o);let u=o.getCastDevice(),d=o.getMediaSession()?.media?.contentId;(Gr(d)||d===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:u}))}else!a&&s&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(r==="CONNECTED"?er(this.connection$.getValue())?"CONNECTED":"AVAILABLE":r)}))}initializeCastApi(){let e,t,i;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,i=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:i}),this.initListeners()}catch(r){this.errorEvent$.next({id:"ChromecastInitializer",category:es.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:r})}}},Ho=n=>{switch(n){case cast.framework.CastState.NO_DEVICES_AVAILABLE:return"NOT_AVAILABLE";case cast.framework.CastState.NOT_CONNECTED:return"AVAILABLE";case cast.framework.CastState.CONNECTING:return"CONNECTING";case cast.framework.CastState.CONNECTED:return"CONNECTED";default:return ts(n)}};import{assertNever as is}from"@vkontakte/videoplayer-shared";var z=(n,e=0,t=0)=>{switch(t){case 0:return n.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return n;let i=new URL(n);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(n);return!i.searchParams.get("offset_p")&&e===0?n:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:is(t)}return n},Yr=(n,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(n);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(n);return Number(t.searchParams.get("offset_p")??0)}default:is(e)}};var y=(n,e,t=!1)=>{let i=n.getTransition();(t||!i||i.to===e)&&n.setState(e)};import{isNonNullable as Qo,Subject as ir,merge as rs}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new ir;this.transitionEnded$=new ir;this.transitionUpdated$=new ir;this.forceChanged$=new ir;this.stateChangeStarted$=rs(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=rs(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,i=this.state;this.transition=void 0,this.prevState=i,this.state=e,t?t.to===e?this.transitionEnded$.next(t):this.forceChanged$.next({from:t.from,to:e,canceledTransition:t}):this.forceChanged$.next({from:i,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,i=this.state;i===e||Qo(t)&&t.to===e||(this.prevState=i,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:i,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as jo}from"@vkontakte/videoplayer-shared";var as=n=>{switch(n){case"MPEG":case"DASH":case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":case"HLS":case"HLS_ONDEMAND":return!1;case"DASH_LIVE":case"DASH_LIVE_CMAF":case"HLS_LIVE":case"HLS_LIVE_CMAF":case"DASH_LIVE_WEBM":case"WEB_RTC_LIVE":return!0;default:return jo(n)}};import{assertNever as Lt,assertNonNullable as ut,debounce as ss,ErrorCategory as ns,fromEvent as dt,isNonNullable as os,map as us,merge as ds,observableFrom as Wo,Subject as Go,Subscription as qr,timeout as Yo,getHighestQuality as qo}from"@vkontakte/videoplayer-shared";var zo=5,Ko=5,Jo=500,ls=7e3,Wt=class{constructor(e){this.subscription=new qr;this.loadMediaTimeoutSubscription=new qr;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),r=this.params.desiredState.playbackState.getTransition(),a=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(a)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(r?.to!=="paused"&&a.state==="requested"&&e!=="stopped"){this.seek(a.position/1e3);return}switch(i){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Lt(e)}break}case"playing":{switch(e){case"playing":break;case"paused":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"ready":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Lt(e)}break}case"paused":{switch(e){case"playing":this.videoState.startTransitionTo("paused"),this.params.connection.remotePlayerController.playOrPause();break;case"paused":break;case"ready":this.videoState.startTransitionTo("paused"),this.videoState.setState("paused");break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Lt(e)}break}default:Lt(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(as(e.format)),this.params.output.isAudioAvailable$.next(!0),this.handleRemoteVolumeChange({volume:this.params.connection.remotePlayer.volumeLevel,muted:this.params.connection.remotePlayer.isMuted});let t=this.params.connection.session.getMediaSession();t&&this.restoreSession(t),this.subscribe()}destroy(){this.log({message:"[destroy]"}),this.subscription.unsubscribe()}subscribe(){this.subscription.add(this.loadMediaTimeoutSubscription);let e=new qr;this.subscription.add(e),this.subscription.add(ds(this.videoState.stateChangeStarted$.pipe(us(r=>`stateChangeStarted$ ${JSON.stringify(r)}`)),this.videoState.stateChangeEnded$.pipe(us(r=>`stateChangeEnded$ ${JSON.stringify(r)}`))).subscribe(r=>this.log({message:`[videoState] ${r}`})));let t=(r,a)=>this.subscription.add(r.subscribe(a));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let r=new Go;e.add(r.pipe(ss(Jo)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let a=NaN;e.add(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(s=>{this.logRemoteEvent(s);let o=s.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-a)>zo)&&r.next(o),a=o})),e.add(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(s=>{this.logRemoteEvent(s),this.params.output.duration$.next(s.value)}))}t(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemotePause():this.handleRemotePlay()}),t(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),r=>{this.logRemoteEvent(r);let{remotePlayer:a}=this.params.connection,s=r.value,o=this.params.output.isBuffering$.getValue(),u=s===chrome.cast.media.PlayerState.BUFFERING;switch(o!==u&&this.params.output.isBuffering$.next(u),s){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&a.duration-a.currentTime<Ko&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),y(this.params.desiredState.playbackState,"stopped");break;case chrome.cast.media.PlayerState.PAUSED:{this.handleRemotePause();break}case chrome.cast.media.PlayerState.PLAYING:this.handleRemotePlay();break;case chrome.cast.media.PlayerState.BUFFERING:break;default:Lt(s)}}),t(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({volume:r.value})}),t(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({muted:r.value})});let i=ds(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,Wo(["init"])).pipe(ss(0));t(i,this.syncPlayback)}restoreSession(e){this.log({message:"restoreSession"});let{remotePlayer:t}=this.params.connection;if(e.playerState!==chrome.cast.media.PlayerState.IDLE){t.isPaused?(this.videoState.setState("paused"),y(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),y(this.params.desiredState.playbackState,"playing"));let i=this.params.output.isLive$.getValue();this.params.output.duration$.next(i?0:t.duration),this.params.output.position$.next(i?0:t.currentTime),this.params.desiredState.seekState.setState({state:"none"})}}prepare(){let e=this.params.format;this.log({message:`[prepare] format: ${e}`});let t=this.createMediaInfo(e),i=this.createLoadRequest(t);this.loadMedia(i)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),y(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),y(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&y(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),i={volume:e.volume??t.volume,muted:e.muted??t.muted};(i.volume!==t.volume||i.muted!==i.muted)&&this.params.output.volume$.next(i)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:i}=this.params.connection;t.currentTime=e,i.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,i,r,a;switch(e){case"MPEG":{let d=t[e];ut(d);let l=qo(Object.keys(d));ut(l);let c=d[l];ut(c),i=c,r="video/mp4",a=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let d=t[e];ut(d),i=d.url,r="application/x-mpegurl",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let d=t[e];ut(d),i=d.url,r="application/dash+xml",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let d=t[e];ut(d),i=d.url,r="application/dash+xml",a=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let d=t[e];ut(d),i=z(d.url),r="application/x-mpegurl",a=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let d="Unsupported format for Chromecast",l=new Error(d);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:ns.VIDEO_PIPELINE,message:d,thrown:l}),l}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return Lt(e)}let s=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,r);s.contentUrl=i,s.streamType=a,s.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:u}=this.params.meta;return os(o)&&(s.metadata.title=o),os(u)&&(s.metadata.subtitle=u),s}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let i=this.params.desiredState.seekState.getState();return i.state==="applying"||i.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:i.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),i=new Promise((r,a)=>{this.loadMediaTimeoutSubscription.add(Yo(ls).subscribe(()=>a(`timeout(${ls})`)))});Promise.race([t,i]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},r=>{let a=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${r}`;this.log({message:a}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:ns.VIDEO_PIPELINE,message:a,thrown:r})}).finally(()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as ps}from"@vkontakte/videoplayer-shared";import{clearVideoElement as Xo}from"@vkontakte/videoplayer-shared";var cs=n=>{try{n.pause(),n.playbackRate=0,Xo(n),n.remove()}catch(e){console.error(e)}};import{fromEvent as Zo,Subscription as eu}from"@vkontakte/videoplayer-shared";var zr=class{constructor(){this.attribute="data-pool-reused"}get(e){return e.hasAttribute(this.attribute)}set(e,t){e.toggleAttribute(this.attribute,t)}delete(e){e.removeAttribute(this.attribute)}},Kr=window.WeakMap?new WeakMap:new zr,Jr=window.WeakMap?new WeakMap:new Map,tu=(n,e=20)=>{let t=0;return Zo(n,"ratechange").subscribe(i=>{t++,t>=e&&(n.currentTime=n.currentTime,t=0)})},ie=(n,{audioVideoSyncRate:e})=>{let t=n.querySelector("video"),i=!!t;t?ps(t):(t=document.createElement("video"),n.appendChild(t)),Kr.set(t,i);let r=new eu;return r.add(tu(t,e)),Jr.set(t,r),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},re=n=>{Jr.get(n)?.unsubscribe(),Jr.delete(n);let t=Kr.get(n);Kr.delete(n),t?ps(n):cs(n)};import{assertNonNullable as Gt,isNonNullable as Me,isNullable as au,fromEvent as Mt,merge as hs,observableFrom as ms,filterChanged as fs,map as Yt,Subject as bs,Subscription as su,ValueSubject as nu,ErrorCategory as ou}from"@vkontakte/videoplayer-shared";import{isNonNullable as Xr,isNullable as iu,Subscription as ru}from"@vkontakte/videoplayer-shared";var rr=(n,e,t,{equal:i=(s,o)=>s===o,changed$:r,onError:a}={})=>{let s=n.getState(),o=e(),u=iu(r),d=new ru;return r&&d.add(r.subscribe(l=>{let c=n.getState();i(l,c)&&n.setState(l)},a)),i(o,s)||(t(s),u&&n.setState(s)),d.add(n.stateChangeStarted$.subscribe(l=>{t(l.to),u&&n.setState(l.to)},a)),d},Le=(n,e,t)=>rr(e,()=>n.loop,i=>{Xr(i)&&(n.loop=i)},{onError:t}),ae=(n,e,t,i)=>rr(e,()=>({muted:n.muted,volume:n.volume}),r=>{Xr(r)&&(n.muted=r.muted,n.volume=r.volume)},{equal:(r,a)=>r===a||r?.muted===a?.muted&&r?.volume===a?.volume,changed$:t,onError:i}),ge=(n,e,t,i)=>rr(e,()=>n.playbackRate,r=>{Xr(r)&&(n.playbackRate=r)},{changed$:t,onError:i}),qe=rr;var uu=n=>["__",n.language,n.label].join("|"),du=(n,e)=>{if(n.id===e)return!0;let[t,i,r]=e.split("|");return n.language===i&&n.label===r},Zr=class n{constructor(){this.available$=new bs;this.current$=new nu(void 0);this.error$=new bs;this.subscription=new su;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let r=a=>{this.error$.next({id:"TextTracksManager",category:ou.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:a})};this.subscription.add(this.available$.subscribe(i.availableTextTracks$)),this.subscription.add(this.current$.subscribe(i.currentTextTrack$)),this.subscription.add(this.error$.subscribe(i.error$)),this.subscription.add(qe(t.internalTextTracks,()=>Object.values(this.internalTracks),a=>{Me(a)&&this.setInternal(a)},{equal:(a,s)=>Me(a)&&Me(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(Yt(a=>a.filter(({type:s})=>s==="internal"))),onError:r})),this.subscription.add(qe(t.externalTextTracks,()=>Object.values(this.externalTracks),a=>{Me(a)&&this.setExternal(a)},{equal:(a,s)=>Me(a)&&Me(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(Yt(a=>a.filter(({type:s})=>s==="external"))),onError:r})),this.subscription.add(qe(t.currentTextTrack,()=>{if(this.video)return;let a=this.htmlTextTracksAsArray().find(({mode:s})=>s==="showing");return a&&this.htmlTextTrackToITextTrack(a).id},a=>this.select(a),{changed$:this.current$,onError:r})),this.subscription.add(qe(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let a of this.htmlTextTracksAsArray())this.applyCueSettings(a.cues),this.applyCueSettings(a.activeCues)}))}subscribe(){Gt(this.video);let{textTracks:e}=this.video;this.subscription.add(Mt(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(hs(Mt(e,"addtrack"),Mt(e,"removetrack"),ms(["init"])).pipe(Yt(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),fs((i,r)=>i.length===r.length&&i.every(({id:a},s)=>a===r[s].id))).subscribe(this.available$)),this.subscription.add(hs(Mt(e,"change"),ms(["init"])).pipe(Yt(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),Yt(i=>i&&this.htmlTextTrackToITextTrack(i).id),fs()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(Mt(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let r=a=>{let s=a.target?.cues??null;s&&s.length&&(this.applyCueSettings(a.target?.cues??null),a.target?.removeEventListener("cuechange",r))};i.track?.addEventListener("cuechange",r)})),this.subscription.add(Mt(e,"removetrack").subscribe(i=>{i.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let i of Array.from(e)){let r=i;Me(t.align)&&(r.align=t.align),Me(t.position)&&(r.position=t.position),Me(t.size)&&(r.size=t.size),Me(t.line)&&(r.line=t.line)}}htmlTextTracksAsArray(e=!1){Gt(this.video);let t=[...this.video.textTracks];return e?t:t.filter(n.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,r=e.id?e.id:uu(e),a=this.externalTracks.has(r),s=(a?this.externalTracks.get(r)?.isAuto:this.internalTracks.get(r)?.isAuto)||r.includes("auto");return a?{id:r,type:"external",isAuto:s,language:t,label:i,url:this.externalTracks.get(r)?.url}:{id:r,type:"internal",isAuto:s,language:t,label:i,url:this.internalTracks.get(r)?.url}}static isHealthyTrack(e){return!(e.kind==="metadata"||e.groupId||e.id===""&&e.label===""&&e.language==="")}setExternal(e){this.internalTracks.size>0&&Array.from(this.internalTracks).forEach(([,t])=>this.detach(t)),e.filter(({id:t})=>!this.externalTracks.has(t)).forEach(t=>this.attach(t)),Array.from(this.externalTracks).filter(([t])=>!e.find(i=>i.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:i,language:r,isAuto:a})=>!this.internalTracks.has(i)&&!t.some(([,s])=>s.language===r&&s.isAuto===a)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(r=>r.id===i)).forEach(([,i])=>this.detach(i))}select(e){Gt(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(au(e)||!du(t,e))&&(t.mode="disabled")}destroy(){if(this.subscription.unsubscribe(),this.video)for(let e of Array.from(this.video.getElementsByTagName("track"))){let t=e.getAttribute("id");t&&this.externalTracks.has(t)&&this.video.removeChild(e)}this.externalTracks.clear()}attach(e){Gt(this.video);let t=document.createElement("track");t.setAttribute("src",e.url),t.setAttribute("id",e.id),e.label&&t.setAttribute("label",e.label),e.language&&t.setAttribute("srclang",e.language),e.type==="external"?this.externalTracks.set(e.id,e):e.type==="internal"&&this.internalTracks.set(e.id,e),this.video.appendChild(t)}detach(e){Gt(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),i=>i.getAttribute("id")===e.id);t&&this.video.removeChild(t),e.type==="external"?this.externalTracks.delete(e.id):e.type==="internal"&&this.internalTracks.delete(e.id)}},Se=Zr;var _e=class{constructor(){this.pausedTime=0;this.streamOffset=0;this.pauseTimestamp=0}getTotalPausedTime(){return this.pausedTime+this.getCurrentPausedTime()}getCurrentPausedTime(){return this.pauseTimestamp>0?Date.now()-this.pauseTimestamp:0}getStreamOffset(){return this.streamOffset}getTotalOffset(){return this.getTotalPausedTime()+this.streamOffset}pause(){this.pauseTimestamp===0&&(this.pauseTimestamp=Date.now())}resume(){this.pauseTimestamp>0&&(this.pausedTime+=this.getCurrentPausedTime(),this.pauseTimestamp=0)}resetTo(e,t=!1){this.streamOffset=e,this.pauseTimestamp=0,this.pausedTime=0,t&&this.pause()}};var gs=n=>{let e=n;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},ea=n=>{let e=gs(n);return!!(e&&e.fullscreenElement&&e.fullscreenElement===n)},Ss=n=>{let e=gs(n);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===n)};import{fromEvent as ve,map as ze,merge as ys,filterChanged as cu,isNonNullable as Ts,Subject as pu,filter as Is,mapTo as Es,combine as hu,once as mu,ErrorCategory as fu,ValueSubject as xs,clientChecker as bu}from"@vkontakte/videoplayer-shared";var lu=3,vs=(n,e,t=lu)=>{let i=0,r=0;for(let a=0;a<n.length;a++){let s=n.start(a),o=n.end(a);if(s<=e&&e<=o){if(i=s,r=o,!t)return{from:i,to:r};for(let u=a-1;u>=0;u--)n.end(u)+t>=i&&(i=n.start(u));for(let u=a+1;u<n.length;u++)n.start(u)-t<=r&&(r=n.end(u))}}return{from:i,to:r}};var se=n=>{let e=v=>ve(n,v).pipe(Es(void 0)),i=ys(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(v=>ve(n,v))).pipe(ze(v=>v.type==="ended"?n.readyState<2:n.readyState<3),cu()),r=ys(ve(n,"progress"),ve(n,"timeupdate")).pipe(ze(()=>vs(n.buffered,n.currentTime))),a=bu.isSafari?hu({play:e("play").pipe(mu()),playing:e("playing")}).pipe(Es(void 0)):e("playing"),s=ve(n,"volumechange").pipe(ze(()=>({muted:n.muted,volume:n.volume}))),o=ve(n,"ratechange").pipe(ze(()=>n.playbackRate)),u=ve(n,"error").pipe(Is(()=>!!(n.error||n.played.length)),ze(()=>{let v=n.error;return{id:v?`MediaError#${v.code}`:"HtmlVideoError",category:fu.VIDEO_PIPELINE,message:v?v.message:"Error event from HTML video element",thrown:n.error??void 0}})),d=ve(n,"timeupdate").pipe(ze(()=>n.currentTime)),l=new pu,c=.3,p;d.subscribe(v=>{n.loop&&Ts(p)&&Ts(v)&&p>=n.duration-c&&v<=c&&l.next(p),p=v});let h=e("pause").pipe(Is(()=>!n.error&&p!==n.duration)),m=ve(n,"enterpictureinpicture"),f=ve(n,"leavepictureinpicture"),g=new xs(Ss(n));m.subscribe(()=>g.next(!0)),f.subscribe(()=>g.next(!1));let A=new xs(ea(n));return ve(n,"fullscreenchange").pipe(ze(()=>ea(n))).subscribe(A),{playing$:a,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:l,error$:u,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:d,durationChange$:ve(n,"durationchange").pipe(ze(()=>n.duration)),isBuffering$:i,currentBuffer$:r,volumeState$:s,playbackRateState$:o,inPiP$:g,inFullscreen$:A}};import{VideoQuality as Ke}from"@vkontakte/videoplayer-shared";var Je=n=>{switch(n){case"mobile":return Ke.Q_144P;case"lowest":return Ke.Q_240P;case"low":return Ke.Q_360P;case"sd":case"medium":return Ke.Q_480P;case"hd":case"high":return Ke.Q_720P;case"fullhd":case"full":return Ke.Q_1080P;case"quadhd":case"quad":return Ke.Q_1440P;case"ultrahd":case"ultra":return Ke.Q_2160P}};import{isNonNullable as j,isNullable as ia,now as Rs,isHigher as ra,isHigherOrEqual as ws,isInvariantQuality as $s,isLower as Ls,isLowerOrEqual as aa,videoSizeToQuality as gu,assertNotEmptyArray as Ds,assertNonNullable as Su}from"@vkontakte/videoplayer-shared";var ta=!1,Fe={},ks=n=>{ta=n},As=()=>{Fe={}},Ps=n=>{n(Fe)},qt=(n,e)=>{ta&&(Fe.meta=Fe.meta??{},Fe.meta[n]=e)},X=class{constructor(e){this.name=e}next(e){if(!ta)return;Fe.series=Fe.series??{};let t=Fe.series[this.name]??[];t.push([Date.now(),e]),Fe.series[this.name]=t}};var vu=new X("best_bitrate"),Cs=(n,e,t)=>(e-t)*Math.pow(2,-10*n)+t;var sa=n=>(e,t)=>n*(Number(e.bitrate)-Number(t.bitrate)),zt=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=Rs()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},Bs='Assertion "ABR Tracks is empty array" failed',ar=(n,e,t,i)=>{let r=[...e].sort(sa(1)),a=[...t].sort(sa(1)),s=a.filter(u=>j(u.bitrate)&&j(n.bitrate)?n.bitrate/u.bitrate>i:!0),o=a.at(Math.round(a.length*r.indexOf(n)/(r.length+1)))??a.at(-1);return o&&s.includes(o)?o:s.length?s.at(-1):a.at(0)},Ms=n=>"quality"in n,Vs=(n,e,t,i)=>{let r=j(i?.last?.bitrate)&&j(t?.bitrate)&&i.last.bitrate<t.bitrate?n.trackCooldownIncreaseQuality:n.trackCooldownDecreaseQuality,a=t&&i&&i.history[t.id]&&Rs()-i.history[t.id]<=r&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!a&&i.recordSelection(t),a&&i?.last){let s=i.last;i?.recordSwitch(s);let o=Ms(s)?"video":"audio",u=Ms(s)?s.quality:s.bitrate;return e({message:`
|
|
6
|
+
var za="2.0.115-dev.1dfe2867.0";var te=(r=>(r.STOPPED="stopped",r.READY="ready",r.PLAYING="playing",r.PAUSED="paused",r))(te||{}),Ye=(v=>(v.MPEG="MPEG",v.DASH="DASH",v.DASH_SEP="DASH_SEP",v.DASH_SEP_VK="DASH_SEP",v.DASH_WEBM="DASH_WEBM",v.DASH_WEBM_AV1="DASH_WEBM_AV1",v.DASH_STREAMS="DASH_STREAMS",v.DASH_WEBM_VK="DASH_WEBM",v.DASH_ONDEMAND="DASH_ONDEMAND",v.DASH_ONDEMAND_VK="DASH_ONDEMAND",v.DASH_LIVE="DASH_LIVE",v.DASH_LIVE_CMAF="DASH_LIVE_CMAF",v.DASH_LIVE_WEBM="DASH_LIVE_WEBM",v.HLS="HLS",v.HLS_ONDEMAND="HLS_ONDEMAND",v.HLS_JS="HLS",v.HLS_LIVE="HLS_LIVE",v.HLS_LIVE_CMAF="HLS_LIVE_CMAF",v.WEB_RTC_LIVE="WEB_RTC_LIVE",v))(Ye||{});var Zi=(r=>(r.NOT_AVAILABLE="NOT_AVAILABLE",r.AVAILABLE="AVAILABLE",r.CONNECTING="CONNECTING",r.CONNECTED="CONNECTED",r))(Zi||{}),Qr=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Qr||{});var jr=(s=>(s.NONE="none",s.INLINE="inline",s.FULLSCREEN="fullscreen",s.SECOND_SCREEN="second_screen",s.PIP="pip",s.INVISIBLE="invisible",s))(jr||{});import{assertNever as ts,assertNonNullable as Vo,isNonNullable as er,ValueSubject as Wr,Subject as Oo,Subscription as No,merge as _o,observableFrom as Fo,fromEvent as Ja,map as Xa,tap as Za,filterChanged as Uo,isNullable as Gr,ErrorCategory as es}from"@vkontakte/videoplayer-shared";var Ka=n=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=()=>e,i.onerror=()=>t,document.body.appendChild(i)});var tr=class{constructor(e){this.connection$=new Wr(void 0);this.castState$=new Wr("NOT_AVAILABLE");this.errorEvent$=new Oo;this.realCastState$=new Wr("NOT_AVAILABLE");this.subscription=new No;this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastInitializer");let t="chrome"in window;if(this.log({message:`[constructor] receiverApplicationId: ${this.params.receiverApplicationId}, isDisabled: ${this.params.isDisabled}, isSupported: ${t}`}),e.isDisabled||!t)return;let i=er(window.chrome?.cast),r=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=a=>{delete window.__onGCastApiAvailable,a&&this.initializeCastApi()},r||Ka("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:es.NETWORK,message:"Script loading failed!"})))}connect(){cast.framework.CastContext.getInstance()?.requestSession()}disconnect(){cast.framework.CastContext.getInstance()?.getCurrentSession()?.endSession(!0)}stopMedia(){return new Promise((e,t)=>{cast.framework.CastContext.getInstance()?.getCurrentSession()?.getMediaSession()?.stop(new chrome.cast.media.StopRequest,e,t)})}toggleConnection(){er(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();Gr(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();Gr(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(Ja(i,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(r=>{switch(r.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=i.getCurrentSession()?.getMediaSession()?.media?.contentId;break;case cast.framework.SessionState.NO_SESSION:case cast.framework.SessionState.SESSION_ENDING:case cast.framework.SessionState.SESSION_ENDED:case cast.framework.SessionState.SESSION_START_FAILED:this.contentId=void 0;break;default:return ts(r.sessionState)}})).add(_o(Ja(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(Za(r=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(r)}`})}),Xa(r=>r.castState)),Fo([i.getCastState()])).pipe(Uo(),Xa(Ho),Za(r=>{this.log({message:`realCastState$: ${r}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(r=>{let a=r==="CONNECTED",s=er(this.connection$.getValue());if(a&&!s){let o=i.getCurrentSession();Vo(o);let u=o.getCastDevice(),d=o.getMediaSession()?.media?.contentId;(Gr(d)||d===this.contentId)&&(this.log({message:"connection created"}),this.connection$.next({remotePlayer:e,remotePlayerController:t,session:o,castDevice:u}))}else!a&&s&&(this.log({message:"connection destroyed"}),this.connection$.next(void 0));this.castState$.next(r==="CONNECTED"?er(this.connection$.getValue())?"CONNECTED":"AVAILABLE":r)}))}initializeCastApi(){let e,t,i;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,i=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:i}),this.initListeners()}catch(r){this.errorEvent$.next({id:"ChromecastInitializer",category:es.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:r})}}},Ho=n=>{switch(n){case cast.framework.CastState.NO_DEVICES_AVAILABLE:return"NOT_AVAILABLE";case cast.framework.CastState.NOT_CONNECTED:return"AVAILABLE";case cast.framework.CastState.CONNECTING:return"CONNECTING";case cast.framework.CastState.CONNECTED:return"CONNECTED";default:return ts(n)}};import{assertNever as is}from"@vkontakte/videoplayer-shared";var z=(n,e=0,t=0)=>{switch(t){case 0:return n.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return n;let i=new URL(n);return i.searchParams.append("playback_shift",e.toFixed(0)),i.toString()}case 2:{let i=new URL(n);return!i.searchParams.get("offset_p")&&e===0?n:(i.searchParams.set("offset_p",e.toFixed(0)),i.toString())}default:is(t)}return n},Yr=(n,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(n);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(n);return Number(t.searchParams.get("offset_p")??0)}default:is(e)}};var y=(n,e,t=!1)=>{let i=n.getTransition();(t||!i||i.to===e)&&n.setState(e)};import{isNonNullable as Qo,Subject as ir,merge as rs}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new ir;this.transitionEnded$=new ir;this.transitionUpdated$=new ir;this.forceChanged$=new ir;this.stateChangeStarted$=rs(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=rs(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,i=this.state;this.transition=void 0,this.prevState=i,this.state=e,t?t.to===e?this.transitionEnded$.next(t):this.forceChanged$.next({from:t.from,to:e,canceledTransition:t}):this.forceChanged$.next({from:i,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,i=this.state;i===e||Qo(t)&&t.to===e||(this.prevState=i,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:i,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as jo}from"@vkontakte/videoplayer-shared";var as=n=>{switch(n){case"MPEG":case"DASH":case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":case"HLS":case"HLS_ONDEMAND":return!1;case"DASH_LIVE":case"DASH_LIVE_CMAF":case"HLS_LIVE":case"HLS_LIVE_CMAF":case"DASH_LIVE_WEBM":case"WEB_RTC_LIVE":return!0;default:return jo(n)}};import{assertNever as Lt,assertNonNullable as ut,debounce as ss,ErrorCategory as ns,fromEvent as dt,isNonNullable as os,map as us,merge as ds,observableFrom as Wo,Subject as Go,Subscription as qr,timeout as Yo,getHighestQuality as qo}from"@vkontakte/videoplayer-shared";var zo=5,Ko=5,Jo=500,ls=7e3,Wt=class{constructor(e){this.subscription=new qr;this.loadMediaTimeoutSubscription=new qr;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),i=this.params.desiredState.playbackState.getState(),r=this.params.desiredState.playbackState.getTransition(),a=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${i}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(a)};`}),i==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(r?.to!=="paused"&&a.state==="requested"&&e!=="stopped"){this.seek(a.position/1e3);return}switch(i){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Lt(e)}break}case"playing":{switch(e){case"playing":break;case"paused":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"ready":this.videoState.startTransitionTo("playing"),this.params.connection.remotePlayerController.playOrPause();break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Lt(e)}break}case"paused":{switch(e){case"playing":this.videoState.startTransitionTo("paused"),this.params.connection.remotePlayerController.playOrPause();break;case"paused":break;case"ready":this.videoState.startTransitionTo("paused"),this.videoState.setState("paused");break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Lt(e)}break}default:Lt(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(as(e.format)),this.params.output.isAudioAvailable$.next(!0),this.handleRemoteVolumeChange({volume:this.params.connection.remotePlayer.volumeLevel,muted:this.params.connection.remotePlayer.isMuted});let t=this.params.connection.session.getMediaSession();t&&this.restoreSession(t),this.subscribe()}destroy(){this.log({message:"[destroy]"}),this.subscription.unsubscribe()}subscribe(){this.subscription.add(this.loadMediaTimeoutSubscription);let e=new qr;this.subscription.add(e),this.subscription.add(ds(this.videoState.stateChangeStarted$.pipe(us(r=>`stateChangeStarted$ ${JSON.stringify(r)}`)),this.videoState.stateChangeEnded$.pipe(us(r=>`stateChangeEnded$ ${JSON.stringify(r)}`))).subscribe(r=>this.log({message:`[videoState] ${r}`})));let t=(r,a)=>this.subscription.add(r.subscribe(a));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let r=new Go;e.add(r.pipe(ss(Jo)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let a=NaN;e.add(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.CURRENT_TIME_CHANGED).subscribe(s=>{this.logRemoteEvent(s);let o=s.value;this.params.output.position$.next(o),(this.params.desiredState.seekState.getState().state==="applying"||Math.abs(o-a)>zo)&&r.next(o),a=o})),e.add(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(s=>{this.logRemoteEvent(s),this.params.output.duration$.next(s.value)}))}t(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemotePause():this.handleRemotePlay()}),t(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),r=>{this.logRemoteEvent(r);let{remotePlayer:a}=this.params.connection,s=r.value,o=this.params.output.isBuffering$.getValue(),u=s===chrome.cast.media.PlayerState.BUFFERING;switch(o!==u&&this.params.output.isBuffering$.next(u),s){case chrome.cast.media.PlayerState.IDLE:!this.params.output.isLive$.getValue()&&a.duration-a.currentTime<Ko&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),y(this.params.desiredState.playbackState,"stopped");break;case chrome.cast.media.PlayerState.PAUSED:{this.handleRemotePause();break}case chrome.cast.media.PlayerState.PLAYING:this.handleRemotePlay();break;case chrome.cast.media.PlayerState.BUFFERING:break;default:Lt(s)}}),t(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({volume:r.value})}),t(dt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({muted:r.value})});let i=ds(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,Wo(["init"])).pipe(ss(0));t(i,this.syncPlayback)}restoreSession(e){this.log({message:"restoreSession"});let{remotePlayer:t}=this.params.connection;if(e.playerState!==chrome.cast.media.PlayerState.IDLE){t.isPaused?(this.videoState.setState("paused"),y(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),y(this.params.desiredState.playbackState,"playing"));let i=this.params.output.isLive$.getValue();this.params.output.duration$.next(i?0:t.duration),this.params.output.position$.next(i?0:t.currentTime),this.params.desiredState.seekState.setState({state:"none"})}}prepare(){let e=this.params.format;this.log({message:`[prepare] format: ${e}`});let t=this.createMediaInfo(e),i=this.createLoadRequest(t);this.loadMedia(i)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),y(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),y(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&y(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),i={volume:e.volume??t.volume,muted:e.muted??t.muted};(i.volume!==t.volume||i.muted!==i.muted)&&this.params.output.volume$.next(i)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:i}=this.params.connection;t.currentTime=e,i.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,i,r,a;switch(e){case"MPEG":{let d=t[e];ut(d);let l=qo(Object.keys(d));ut(l);let c=d[l];ut(c),i=c,r="video/mp4",a=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let d=t[e];ut(d),i=d.url,r="application/x-mpegurl",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_SEP":case"DASH_ONDEMAND":case"DASH_WEBM":case"DASH_WEBM_AV1":case"DASH_STREAMS":{let d=t[e];ut(d),i=d.url,r="application/dash+xml",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let d=t[e];ut(d),i=d.url,r="application/dash+xml",a=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let d=t[e];ut(d),i=z(d.url),r="application/x-mpegurl",a=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let d="Unsupported format for Chromecast",l=new Error(d);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:ns.VIDEO_PIPELINE,message:d,thrown:l}),l}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return Lt(e)}let s=new chrome.cast.media.MediaInfo(this.params.meta.videoId??i,r);s.contentUrl=i,s.streamType=a,s.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:u}=this.params.meta;return os(o)&&(s.metadata.title=o),os(u)&&(s.metadata.subtitle=u),s}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let i=this.params.desiredState.seekState.getState();return i.state==="applying"||i.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:i.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),i=new Promise((r,a)=>{this.loadMediaTimeoutSubscription.add(Yo(ls).subscribe(()=>a(`timeout(${ls})`)))});Promise.race([t,i]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},r=>{let a=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${r}`;this.log({message:a}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:ns.VIDEO_PIPELINE,message:a,thrown:r})}).finally(()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as ps}from"@vkontakte/videoplayer-shared";import{clearVideoElement as Xo}from"@vkontakte/videoplayer-shared";var cs=n=>{try{n.pause(),n.playbackRate=0,Xo(n),n.remove()}catch(e){console.error(e)}};import{fromEvent as Zo,Subscription as eu}from"@vkontakte/videoplayer-shared";var zr=class{constructor(){this.attribute="data-pool-reused"}get(e){return e.hasAttribute(this.attribute)}set(e,t){e.toggleAttribute(this.attribute,t)}delete(e){e.removeAttribute(this.attribute)}},Kr=window.WeakMap?new WeakMap:new zr,Jr=window.WeakMap?new WeakMap:new Map,tu=(n,e=20)=>{let t=0;return Zo(n,"ratechange").subscribe(i=>{t++,t>=e&&(n.currentTime=n.currentTime,t=0)})},ie=(n,{audioVideoSyncRate:e})=>{let t=n.querySelector("video"),i=!!t;t?ps(t):(t=document.createElement("video"),n.appendChild(t)),Kr.set(t,i);let r=new eu;return r.add(tu(t,e)),Jr.set(t,r),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},re=n=>{Jr.get(n)?.unsubscribe(),Jr.delete(n);let t=Kr.get(n);Kr.delete(n),t?ps(n):cs(n)};import{assertNonNullable as Gt,isNonNullable as Me,isNullable as au,fromEvent as Mt,merge as hs,observableFrom as ms,filterChanged as fs,map as Yt,Subject as bs,Subscription as su,ValueSubject as nu,ErrorCategory as ou}from"@vkontakte/videoplayer-shared";import{isNonNullable as Xr,isNullable as iu,Subscription as ru}from"@vkontakte/videoplayer-shared";var rr=(n,e,t,{equal:i=(s,o)=>s===o,changed$:r,onError:a}={})=>{let s=n.getState(),o=e(),u=iu(r),d=new ru;return r&&d.add(r.subscribe(l=>{let c=n.getState();i(l,c)&&n.setState(l)},a)),i(o,s)||(t(s),u&&n.setState(s)),d.add(n.stateChangeStarted$.subscribe(l=>{t(l.to),u&&n.setState(l.to)},a)),d},Le=(n,e,t)=>rr(e,()=>n.loop,i=>{Xr(i)&&(n.loop=i)},{onError:t}),ae=(n,e,t,i)=>rr(e,()=>({muted:n.muted,volume:n.volume}),r=>{Xr(r)&&(n.muted=r.muted,n.volume=r.volume)},{equal:(r,a)=>r===a||r?.muted===a?.muted&&r?.volume===a?.volume,changed$:t,onError:i}),ge=(n,e,t,i)=>rr(e,()=>n.playbackRate,r=>{Xr(r)&&(n.playbackRate=r)},{changed$:t,onError:i}),qe=rr;var uu=n=>["__",n.language,n.label].join("|"),du=(n,e)=>{if(n.id===e)return!0;let[t,i,r]=e.split("|");return n.language===i&&n.label===r},Zr=class n{constructor(){this.available$=new bs;this.current$=new nu(void 0);this.error$=new bs;this.subscription=new su;this.externalTracks=new Map;this.internalTracks=new Map}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let r=a=>{this.error$.next({id:"TextTracksManager",category:ou.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:a})};this.subscription.add(this.available$.subscribe(i.availableTextTracks$)),this.subscription.add(this.current$.subscribe(i.currentTextTrack$)),this.subscription.add(this.error$.subscribe(i.error$)),this.subscription.add(qe(t.internalTextTracks,()=>Object.values(this.internalTracks),a=>{Me(a)&&this.setInternal(a)},{equal:(a,s)=>Me(a)&&Me(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(Yt(a=>a.filter(({type:s})=>s==="internal"))),onError:r})),this.subscription.add(qe(t.externalTextTracks,()=>Object.values(this.externalTracks),a=>{Me(a)&&this.setExternal(a)},{equal:(a,s)=>Me(a)&&Me(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(Yt(a=>a.filter(({type:s})=>s==="external"))),onError:r})),this.subscription.add(qe(t.currentTextTrack,()=>{if(this.video)return;let a=this.htmlTextTracksAsArray().find(({mode:s})=>s==="showing");return a&&this.htmlTextTrackToITextTrack(a).id},a=>this.select(a),{changed$:this.current$,onError:r})),this.subscription.add(qe(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let a of this.htmlTextTracksAsArray())this.applyCueSettings(a.cues),this.applyCueSettings(a.activeCues)}))}subscribe(){Gt(this.video);let{textTracks:e}=this.video;this.subscription.add(Mt(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(hs(Mt(e,"addtrack"),Mt(e,"removetrack"),ms(["init"])).pipe(Yt(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),fs((i,r)=>i.length===r.length&&i.every(({id:a},s)=>a===r[s].id))).subscribe(this.available$)),this.subscription.add(hs(Mt(e,"change"),ms(["init"])).pipe(Yt(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),Yt(i=>i&&this.htmlTextTrackToITextTrack(i).id),fs()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(Mt(e,"addtrack").subscribe(i=>{i.track?.addEventListener("cuechange",t);let r=a=>{let s=a.target?.cues??null;s&&s.length&&(this.applyCueSettings(a.target?.cues??null),a.target?.removeEventListener("cuechange",r))};i.track?.addEventListener("cuechange",r)})),this.subscription.add(Mt(e,"removetrack").subscribe(i=>{i.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let i of Array.from(e)){let r=i;Me(t.align)&&(r.align=t.align),Me(t.position)&&(r.position=t.position),Me(t.size)&&(r.size=t.size),Me(t.line)&&(r.line=t.line)}}htmlTextTracksAsArray(e=!1){Gt(this.video);let t=[...this.video.textTracks];return e?t:t.filter(n.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:i}=e,r=e.id?e.id:uu(e),a=this.externalTracks.has(r),s=(a?this.externalTracks.get(r)?.isAuto:this.internalTracks.get(r)?.isAuto)||r.includes("auto");return a?{id:r,type:"external",isAuto:s,language:t,label:i,url:this.externalTracks.get(r)?.url}:{id:r,type:"internal",isAuto:s,language:t,label:i,url:this.internalTracks.get(r)?.url}}static isHealthyTrack(e){return!(e.kind==="metadata"||e.groupId||e.id===""&&e.label===""&&e.language==="")}setExternal(e){this.internalTracks.size>0&&Array.from(this.internalTracks).forEach(([,t])=>this.detach(t)),e.filter(({id:t})=>!this.externalTracks.has(t)).forEach(t=>this.attach(t)),Array.from(this.externalTracks).filter(([t])=>!e.find(i=>i.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:i,language:r,isAuto:a})=>!this.internalTracks.has(i)&&!t.some(([,s])=>s.language===r&&s.isAuto===a)).forEach(i=>this.attach(i)),Array.from(this.internalTracks).filter(([i])=>!e.find(r=>r.id===i)).forEach(([,i])=>this.detach(i))}select(e){Gt(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(au(e)||!du(t,e))&&(t.mode="disabled")}destroy(){if(this.subscription.unsubscribe(),this.video)for(let e of Array.from(this.video.getElementsByTagName("track"))){let t=e.getAttribute("id");t&&this.externalTracks.has(t)&&this.video.removeChild(e)}this.externalTracks.clear()}attach(e){Gt(this.video);let t=document.createElement("track");t.setAttribute("src",e.url),t.setAttribute("id",e.id),e.label&&t.setAttribute("label",e.label),e.language&&t.setAttribute("srclang",e.language),e.type==="external"?this.externalTracks.set(e.id,e):e.type==="internal"&&this.internalTracks.set(e.id,e),this.video.appendChild(t)}detach(e){Gt(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),i=>i.getAttribute("id")===e.id);t&&this.video.removeChild(t),e.type==="external"?this.externalTracks.delete(e.id):e.type==="internal"&&this.internalTracks.delete(e.id)}},Se=Zr;var _e=class{constructor(){this.pausedTime=0;this.streamOffset=0;this.pauseTimestamp=0}getTotalPausedTime(){return this.pausedTime+this.getCurrentPausedTime()}getCurrentPausedTime(){return this.pauseTimestamp>0?Date.now()-this.pauseTimestamp:0}getStreamOffset(){return this.streamOffset}getTotalOffset(){return this.getTotalPausedTime()+this.streamOffset}pause(){this.pauseTimestamp===0&&(this.pauseTimestamp=Date.now())}resume(){this.pauseTimestamp>0&&(this.pausedTime+=this.getCurrentPausedTime(),this.pauseTimestamp=0)}resetTo(e,t=!1){this.streamOffset=e,this.pauseTimestamp=0,this.pausedTime=0,t&&this.pause()}};var gs=n=>{let e=n;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},ea=n=>{let e=gs(n);return!!(e&&e.fullscreenElement&&e.fullscreenElement===n)},Ss=n=>{let e=gs(n);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===n)};import{fromEvent as ve,map as ze,merge as ys,filterChanged as cu,isNonNullable as Ts,Subject as pu,filter as Is,mapTo as Es,combine as hu,once as mu,ErrorCategory as fu,ValueSubject as xs,clientChecker as bu}from"@vkontakte/videoplayer-shared";var lu=3,vs=(n,e,t=lu)=>{let i=0,r=0;for(let a=0;a<n.length;a++){let s=n.start(a),o=n.end(a);if(s<=e&&e<=o){if(i=s,r=o,!t)return{from:i,to:r};for(let u=a-1;u>=0;u--)n.end(u)+t>=i&&(i=n.start(u));for(let u=a+1;u<n.length;u++)n.start(u)-t<=r&&(r=n.end(u))}}return{from:i,to:r}};var se=n=>{let e=v=>ve(n,v).pipe(Es(void 0)),i=ys(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(v=>ve(n,v))).pipe(ze(v=>v.type==="ended"?n.readyState<2:n.readyState<3),cu()),r=ys(ve(n,"progress"),ve(n,"timeupdate")).pipe(ze(()=>vs(n.buffered,n.currentTime))),a=bu.isSafari?hu({play:e("play").pipe(mu()),playing:e("playing")}).pipe(Es(void 0)):e("playing"),s=ve(n,"volumechange").pipe(ze(()=>({muted:n.muted,volume:n.volume}))),o=ve(n,"ratechange").pipe(ze(()=>n.playbackRate)),u=ve(n,"error").pipe(Is(()=>!!(n.error||n.played.length)),ze(()=>{let v=n.error;return{id:v?`MediaError#${v.code}`:"HtmlVideoError",category:fu.VIDEO_PIPELINE,message:v?v.message:"Error event from HTML video element",thrown:n.error??void 0}})),d=ve(n,"timeupdate").pipe(ze(()=>n.currentTime)),l=new pu,c=.3,p;d.subscribe(v=>{n.loop&&Ts(p)&&Ts(v)&&p>=n.duration-c&&v<=c&&l.next(p),p=v});let h=e("pause").pipe(Is(()=>!n.error&&p!==n.duration)),m=ve(n,"enterpictureinpicture"),f=ve(n,"leavepictureinpicture"),g=new xs(Ss(n));m.subscribe(()=>g.next(!0)),f.subscribe(()=>g.next(!1));let A=new xs(ea(n));return ve(n,"fullscreenchange").pipe(ze(()=>ea(n))).subscribe(A),{playing$:a,pause$:h,canplay$:e("canplay"),ended$:e("ended"),looped$:l,error$:u,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:d,durationChange$:ve(n,"durationchange").pipe(ze(()=>n.duration)),isBuffering$:i,currentBuffer$:r,volumeState$:s,playbackRateState$:o,inPiP$:g,inFullscreen$:A}};import{VideoQuality as Ke}from"@vkontakte/videoplayer-shared";var Je=n=>{switch(n){case"mobile":return Ke.Q_144P;case"lowest":return Ke.Q_240P;case"low":return Ke.Q_360P;case"sd":case"medium":return Ke.Q_480P;case"hd":case"high":return Ke.Q_720P;case"fullhd":case"full":return Ke.Q_1080P;case"quadhd":case"quad":return Ke.Q_1440P;case"ultrahd":case"ultra":return Ke.Q_2160P}};import{isNonNullable as j,isNullable as ia,now as Rs,isHigher as ra,isHigherOrEqual as ws,isInvariantQuality as $s,isLower as Ls,isLowerOrEqual as aa,videoSizeToQuality as gu,assertNotEmptyArray as Ds,assertNonNullable as Su}from"@vkontakte/videoplayer-shared";var ta=!1,Fe={},ks=n=>{ta=n},As=()=>{Fe={}},Ps=n=>{n(Fe)},qt=(n,e)=>{ta&&(Fe.meta=Fe.meta??{},Fe.meta[n]=e)},X=class{constructor(e){this.name=e}next(e){if(!ta)return;Fe.series=Fe.series??{};let t=Fe.series[this.name]??[];t.push([Date.now(),e]),Fe.series[this.name]=t}};var vu=new X("best_bitrate"),Cs=(n,e,t)=>(e-t)*Math.pow(2,-10*n)+t;var sa=n=>(e,t)=>n*(Number(e.bitrate)-Number(t.bitrate)),zt=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=Rs()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},Bs='Assertion "ABR Tracks is empty array" failed',ar=(n,e,t,i)=>{let r=[...e].sort(sa(1)),a=[...t].sort(sa(1)),s=a.filter(u=>j(u.bitrate)&&j(n.bitrate)?n.bitrate/u.bitrate>i:!0),o=a.at(Math.round(a.length*r.indexOf(n)/(r.length+1)))??a.at(-1);return o&&s.includes(o)?o:s.length?s.at(-1):a.at(0)},Ms=n=>"quality"in n,Vs=(n,e,t,i)=>{let r=j(i?.last?.bitrate)&&j(t?.bitrate)&&i.last.bitrate<t.bitrate?n.trackCooldownIncreaseQuality:n.trackCooldownDecreaseQuality,a=t&&i&&i.history[t.id]&&Rs()-i.history[t.id]<=r&&(!i.last||t.id!==i.last.id);if(t?.id&&i&&!a&&i.recordSelection(t),a&&i?.last){let s=i.last;i?.recordSwitch(s);let o=Ms(s)?"video":"audio",u=Ms(s)?s.quality:s.bitrate;return e({message:`
|
|
7
7
|
[last ${o} selected] ${u}
|
|
8
8
|
`}),s}return i?.recordSwitch(t),t},Xe=(n,{container:e,throughput:t,tuning:i,limits:r,reserve:a=0,forwardBufferHealth:s,playbackRate:o,current:u,history:d,visible:l,droppedVideoMaxQualityLimit:c,abrLogger:p})=>{Ds(n,Bs);let h=window.devicePixelRatio??1,m=i.usePixelRatio?i.pixelRatioMultiplier*(h-1)+1:1,f=i.limitByContainer&&e&&e.width>0&&e.height>0&&{width:e.width*m*i.containerSizeFactor,height:e.height*m*i.containerSizeFactor},g=f&&gu(f),A=i.considerPlaybackRate&&j(o)?o:1,w=n.filter(S=>!$s(S.quality)).sort((S,I)=>ra(S.quality,I.quality)?-1:1),v=w.at(-1)?.quality,T=w.at(0)?.quality,b=ia(r)||j(r.min)&&j(r.max)&&Ls(r.max,r.min)||j(r.min)&&T&&ra(r.min,T)||j(r.max)&&v&&Ls(r.max,v),k=A*Cs(s??.5,i.bitrateFactorAtEmptyBuffer,i.bitrateFactorAtFullBuffer),D={},O=w.filter(S=>{if(!(g?aa(S.quality,g):!0))return D[S.quality]="FitsContainer",!1;if(!(j(t)&&isFinite(t)&&j(S.bitrate)?t-a>=S.bitrate*k:!0))return D[S.quality]="FitsThroughput",!1;if(i.lazyQualitySwitch&&j(i.minBufferToSwitchUp)&&u&&!$s(u.quality)&&(s??0)<i.minBufferToSwitchUp&&ra(S.quality,u.quality))return D[S.quality]="Buffer",!1;if(!!c&&ws(S.quality,c))return D[S.quality]="DroppedFramesLimit",!1;let x=b||(ia(r.max)||aa(S.quality,r.max))&&(ia(r.min)||ws(S.quality,r.min)),M=j(l)&&!l?aa(S.quality,i.backgroundVideoQualityLimit):!0;return!x||!M?(D[S.quality]="FitsQualityLimits",!1):!0})[0];O&&O.bitrate&&vu.next(O.bitrate);let _=O??w[Math.ceil((w.length-1)/2)]??n[0];return _.quality!==d?.last?.quality&&p({message:`
|
|
9
9
|
[VIDEO TRACKS ABR]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vkontakte/videoplayer-core",
|
|
3
|
-
"version": "2.0.115-dev.
|
|
3
|
+
"version": "2.0.115-dev.1dfe2867.0",
|
|
4
4
|
"author": "vk.com",
|
|
5
5
|
"description": "Videoplayer core library based on the vk.com platform",
|
|
6
6
|
"homepage": "https://vk.com",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"**/*.d.ts"
|
|
50
50
|
],
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@vkontakte/videoplayer-shared": "1.0.47-dev.
|
|
52
|
+
"@vkontakte/videoplayer-shared": "1.0.47-dev.14cceb4b.0",
|
|
53
53
|
"hls.js": "~1.4.7"
|
|
54
54
|
}
|
|
55
55
|
}
|