@vkontakte/videoplayer-core 2.0.124-dev.3f8d0805.0 → 2.0.124-dev.4a771da1.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/esnext.esm.js CHANGED
@@ -1,10 +1,10 @@
1
1
  /**
2
- * @vkontakte/videoplayer-core v2.0.124-dev.3f8d0805.0
3
- * Mon, 03 Feb 2025 20:30:22 GMT
2
+ * @vkontakte/videoplayer-core v2.0.124-dev.4a771da1.0
3
+ * Mon, 03 Feb 2025 10:59:56 GMT
4
4
  * https://st.mycdn.me/static/vkontakte-videoplayer/2-0-124/doc/
5
5
  */
6
- var my=Object.create;var Ol=Object.defineProperty;var fy=Object.getOwnPropertyDescriptor;var by=Object.getOwnPropertyNames;var gy=Object.getPrototypeOf,vy=Object.prototype.hasOwnProperty;var h=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports);var Sy=(a,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of by(e))!vy.call(a,i)&&i!==t&&Ol(a,i,{get:()=>e[i],enumerable:!(r=fy(e,i))||r.enumerable});return a};var D=(a,e,t)=>(t=a!=null?my(gy(a)):{},Sy(e||!a||!a.__esModule?Ol(t,"default",{value:a,enumerable:!0}):t,a));var Y=h((yn,Nl)=>{"use strict";var Zr=function(a){return a&&a.Math===Math&&a};Nl.exports=Zr(typeof globalThis=="object"&&globalThis)||Zr(typeof window=="object"&&window)||Zr(typeof self=="object"&&self)||Zr(typeof global=="object"&&global)||Zr(typeof yn=="object"&&yn)||function(){return this}()||Function("return this")()});var ie=h((YD,Fl)=>{"use strict";Fl.exports=function(a){try{return!!a()}catch{return!0}}});var ei=h((zD,ql)=>{"use strict";var yy=ie();ql.exports=!yy(function(){var a=function(){}.bind();return typeof a!="function"||a.hasOwnProperty("prototype")})});var Tn=h((KD,Gl)=>{"use strict";var Ty=ei(),jl=Function.prototype,Ul=jl.apply,Hl=jl.call;Gl.exports=typeof Reflect=="object"&&Reflect.apply||(Ty?Hl.bind(Ul):function(){return Hl.apply(Ul,arguments)})});var J=h((XD,Yl)=>{"use strict";var Ql=ei(),Wl=Function.prototype,In=Wl.call,Iy=Ql&&Wl.bind.bind(In,In);Yl.exports=Ql?Iy:function(a){return function(){return In.apply(a,arguments)}}});var Ut=h((JD,Kl)=>{"use strict";var zl=J(),Ey=zl({}.toString),xy=zl("".slice);Kl.exports=function(a){return xy(Ey(a),8,-1)}});var En=h((ZD,Xl)=>{"use strict";var Py=Ut(),ky=J();Xl.exports=function(a){if(Py(a)==="Function")return ky(a)}});var W=h((eC,Jl)=>{"use strict";var xn=typeof document=="object"&&document.all;Jl.exports=typeof xn>"u"&&xn!==void 0?function(a){return typeof a=="function"||a===xn}:function(a){return typeof a=="function"}});var Pe=h((tC,Zl)=>{"use strict";var wy=ie();Zl.exports=!wy(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var ke=h((rC,ec)=>{"use strict";var Ay=ei(),Ha=Function.prototype.call;ec.exports=Ay?Ha.bind(Ha):function(){return Ha.apply(Ha,arguments)}});var Pn=h(ic=>{"use strict";var tc={}.propertyIsEnumerable,rc=Object.getOwnPropertyDescriptor,Ry=rc&&!tc.call({1:2},1);ic.f=Ry?function(e){var t=rc(this,e);return!!t&&t.enumerable}:tc});var ti=h((aC,ac)=>{"use strict";ac.exports=function(a,e){return{enumerable:!(a&1),configurable:!(a&2),writable:!(a&4),value:e}}});var nc=h((sC,sc)=>{"use strict";var Ly=J(),$y=ie(),My=Ut(),kn=Object,Dy=Ly("".split);sc.exports=$y(function(){return!kn("z").propertyIsEnumerable(0)})?function(a){return My(a)==="String"?Dy(a,""):kn(a)}:kn});var fr=h((nC,oc)=>{"use strict";oc.exports=function(a){return a==null}});var Tt=h((oC,uc)=>{"use strict";var Cy=fr(),Vy=TypeError;uc.exports=function(a){if(Cy(a))throw new Vy("Can't call method on "+a);return a}});var Ht=h((uC,lc)=>{"use strict";var By=nc(),Oy=Tt();lc.exports=function(a){return By(Oy(a))}});var we=h((lC,cc)=>{"use strict";var _y=W();cc.exports=function(a){return typeof a=="object"?a!==null:_y(a)}});var br=h((cC,dc)=>{"use strict";dc.exports={}});var ut=h((dC,hc)=>{"use strict";var wn=br(),An=Y(),Ny=W(),pc=function(a){return Ny(a)?a:void 0};hc.exports=function(a,e){return arguments.length<2?pc(wn[a])||pc(An[a]):wn[a]&&wn[a][e]||An[a]&&An[a][e]}});var ri=h((pC,mc)=>{"use strict";var Fy=J();mc.exports=Fy({}.isPrototypeOf)});var jt=h((hC,gc)=>{"use strict";var qy=Y(),fc=qy.navigator,bc=fc&&fc.userAgent;gc.exports=bc?String(bc):""});var Ln=h((mC,Ec)=>{"use strict";var Ic=Y(),Rn=jt(),vc=Ic.process,Sc=Ic.Deno,yc=vc&&vc.versions||Sc&&Sc.version,Tc=yc&&yc.v8,Fe,ja;Tc&&(Fe=Tc.split("."),ja=Fe[0]>0&&Fe[0]<4?1:+(Fe[0]+Fe[1]));!ja&&Rn&&(Fe=Rn.match(/Edge\/(\d+)/),(!Fe||Fe[1]>=74)&&(Fe=Rn.match(/Chrome\/(\d+)/),Fe&&(ja=+Fe[1])));Ec.exports=ja});var $n=h((fC,Pc)=>{"use strict";var xc=Ln(),Uy=ie(),Hy=Y(),jy=Hy.String;Pc.exports=!!Object.getOwnPropertySymbols&&!Uy(function(){var a=Symbol("symbol detection");return!jy(a)||!(Object(a)instanceof Symbol)||!Symbol.sham&&xc&&xc<41})});var Mn=h((bC,kc)=>{"use strict";var Gy=$n();kc.exports=Gy&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Dn=h((gC,wc)=>{"use strict";var Qy=ut(),Wy=W(),Yy=ri(),zy=Mn(),Ky=Object;wc.exports=zy?function(a){return typeof a=="symbol"}:function(a){var e=Qy("Symbol");return Wy(e)&&Yy(e.prototype,Ky(a))}});var ii=h((vC,Ac)=>{"use strict";var Xy=String;Ac.exports=function(a){try{return Xy(a)}catch{return"Object"}}});var Je=h((SC,Rc)=>{"use strict";var Jy=W(),Zy=ii(),eT=TypeError;Rc.exports=function(a){if(Jy(a))return a;throw new eT(Zy(a)+" is not a function")}});var ai=h((yC,Lc)=>{"use strict";var tT=Je(),rT=fr();Lc.exports=function(a,e){var t=a[e];return rT(t)?void 0:tT(t)}});var Mc=h((TC,$c)=>{"use strict";var Cn=ke(),Vn=W(),Bn=we(),iT=TypeError;$c.exports=function(a,e){var t,r;if(e==="string"&&Vn(t=a.toString)&&!Bn(r=Cn(t,a))||Vn(t=a.valueOf)&&!Bn(r=Cn(t,a))||e!=="string"&&Vn(t=a.toString)&&!Bn(r=Cn(t,a)))return r;throw new iT("Can't convert object to primitive value")}});var qe=h((IC,Dc)=>{"use strict";Dc.exports=!0});var Bc=h((EC,Vc)=>{"use strict";var Cc=Y(),aT=Object.defineProperty;Vc.exports=function(a,e){try{aT(Cc,a,{value:e,configurable:!0,writable:!0})}catch{Cc[a]=e}return e}});var si=h((xC,Nc)=>{"use strict";var sT=qe(),nT=Y(),oT=Bc(),Oc="__core-js_shared__",_c=Nc.exports=nT[Oc]||oT(Oc,{});(_c.versions||(_c.versions=[])).push({version:"3.38.0",mode:sT?"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 On=h((PC,qc)=>{"use strict";var Fc=si();qc.exports=function(a,e){return Fc[a]||(Fc[a]=e||{})}});var gr=h((kC,Uc)=>{"use strict";var uT=Tt(),lT=Object;Uc.exports=function(a){return lT(uT(a))}});var Ue=h((wC,Hc)=>{"use strict";var cT=J(),dT=gr(),pT=cT({}.hasOwnProperty);Hc.exports=Object.hasOwn||function(e,t){return pT(dT(e),t)}});var _n=h((AC,jc)=>{"use strict";var hT=J(),mT=0,fT=Math.random(),bT=hT(1 .toString);jc.exports=function(a){return"Symbol("+(a===void 0?"":a)+")_"+bT(++mT+fT,36)}});var ae=h((RC,Qc)=>{"use strict";var gT=Y(),vT=On(),Gc=Ue(),ST=_n(),yT=$n(),TT=Mn(),vr=gT.Symbol,Nn=vT("wks"),IT=TT?vr.for||vr:vr&&vr.withoutSetter||ST;Qc.exports=function(a){return Gc(Nn,a)||(Nn[a]=yT&&Gc(vr,a)?vr[a]:IT("Symbol."+a)),Nn[a]}});var Kc=h((LC,zc)=>{"use strict";var ET=ke(),Wc=we(),Yc=Dn(),xT=ai(),PT=Mc(),kT=ae(),wT=TypeError,AT=kT("toPrimitive");zc.exports=function(a,e){if(!Wc(a)||Yc(a))return a;var t=xT(a,AT),r;if(t){if(e===void 0&&(e="default"),r=ET(t,a,e),!Wc(r)||Yc(r))return r;throw new wT("Can't convert object to primitive value")}return e===void 0&&(e="number"),PT(a,e)}});var Fn=h(($C,Xc)=>{"use strict";var RT=Kc(),LT=Dn();Xc.exports=function(a){var e=RT(a,"string");return LT(e)?e:e+""}});var Ga=h((MC,Zc)=>{"use strict";var $T=Y(),Jc=we(),qn=$T.document,MT=Jc(qn)&&Jc(qn.createElement);Zc.exports=function(a){return MT?qn.createElement(a):{}}});var Un=h((DC,ed)=>{"use strict";var DT=Pe(),CT=ie(),VT=Ga();ed.exports=!DT&&!CT(function(){return Object.defineProperty(VT("div"),"a",{get:function(){return 7}}).a!==7})});var id=h(rd=>{"use strict";var BT=Pe(),OT=ke(),_T=Pn(),NT=ti(),FT=Ht(),qT=Fn(),UT=Ue(),HT=Un(),td=Object.getOwnPropertyDescriptor;rd.f=BT?td:function(e,t){if(e=FT(e),t=qT(t),HT)try{return td(e,t)}catch{}if(UT(e,t))return NT(!OT(_T.f,e,t),e[t])}});var Hn=h((VC,ad)=>{"use strict";var jT=ie(),GT=W(),QT=/#|\.prototype\./,ni=function(a,e){var t=YT[WT(a)];return t===KT?!0:t===zT?!1:GT(e)?jT(e):!!e},WT=ni.normalize=function(a){return String(a).replace(QT,".").toLowerCase()},YT=ni.data={},zT=ni.NATIVE="N",KT=ni.POLYFILL="P";ad.exports=ni});var Sr=h((BC,nd)=>{"use strict";var sd=En(),XT=Je(),JT=ei(),ZT=sd(sd.bind);nd.exports=function(a,e){return XT(a),e===void 0?a:JT?ZT(a,e):function(){return a.apply(e,arguments)}}});var jn=h((OC,od)=>{"use strict";var eI=Pe(),tI=ie();od.exports=eI&&tI(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Ze=h((_C,ud)=>{"use strict";var rI=we(),iI=String,aI=TypeError;ud.exports=function(a){if(rI(a))return a;throw new aI(iI(a)+" is not an object")}});var Gt=h(cd=>{"use strict";var sI=Pe(),nI=Un(),oI=jn(),Qa=Ze(),ld=Fn(),uI=TypeError,Gn=Object.defineProperty,lI=Object.getOwnPropertyDescriptor,Qn="enumerable",Wn="configurable",Yn="writable";cd.f=sI?oI?function(e,t,r){if(Qa(e),t=ld(t),Qa(r),typeof e=="function"&&t==="prototype"&&"value"in r&&Yn in r&&!r[Yn]){var i=lI(e,t);i&&i[Yn]&&(e[t]=r.value,r={configurable:Wn in r?r[Wn]:i[Wn],enumerable:Qn in r?r[Qn]:i[Qn],writable:!1})}return Gn(e,t,r)}:Gn:function(e,t,r){if(Qa(e),t=ld(t),Qa(r),nI)try{return Gn(e,t,r)}catch{}if("get"in r||"set"in r)throw new uI("Accessors not supported");return"value"in r&&(e[t]=r.value),e}});var yr=h((FC,dd)=>{"use strict";var cI=Pe(),dI=Gt(),pI=ti();dd.exports=cI?function(a,e,t){return dI.f(a,e,pI(1,t))}:function(a,e,t){return a[e]=t,a}});var K=h((qC,hd)=>{"use strict";var oi=Y(),hI=Tn(),mI=En(),fI=W(),bI=id().f,gI=Hn(),Tr=br(),vI=Sr(),Ir=yr(),pd=Ue();si();var SI=function(a){var e=function(t,r,i){if(this instanceof e){switch(arguments.length){case 0:return new a;case 1:return new a(t);case 2:return new a(t,r)}return new a(t,r,i)}return hI(a,this,arguments)};return e.prototype=a.prototype,e};hd.exports=function(a,e){var t=a.target,r=a.global,i=a.stat,s=a.proto,n=r?oi:i?oi[t]:oi[t]&&oi[t].prototype,o=r?Tr:Tr[t]||Ir(Tr,t,{})[t],u=o.prototype,l,d,c,p,m,f,b,g,v;for(p in e)l=gI(r?p:t+(i?".":"#")+p,a.forced),d=!l&&n&&pd(n,p),f=o[p],d&&(a.dontCallGetSet?(v=bI(n,p),b=v&&v.value):b=n[p]),m=d&&b?b:e[p],!(!l&&!s&&typeof f==typeof m)&&(a.bind&&d?g=vI(m,oi):a.wrap&&d?g=SI(m):s&&fI(m)?g=mI(m):g=m,(a.sham||m&&m.sham||f&&f.sham)&&Ir(g,"sham",!0),Ir(o,p,g),s&&(c=t+"Prototype",pd(Tr,c)||Ir(Tr,c,{}),Ir(Tr[c],p,m),a.real&&u&&(l||!u[p])&&Ir(u,p,m)))}});var fd=h((UC,md)=>{"use strict";var yI=Math.ceil,TI=Math.floor;md.exports=Math.trunc||function(e){var t=+e;return(t>0?TI:yI)(t)}});var ui=h((HC,bd)=>{"use strict";var II=fd();bd.exports=function(a){var e=+a;return e!==e||e===0?0:II(e)}});var vd=h((jC,gd)=>{"use strict";var EI=ui(),xI=Math.max,PI=Math.min;gd.exports=function(a,e){var t=EI(a);return t<0?xI(t+e,0):PI(t,e)}});var zn=h((GC,Sd)=>{"use strict";var kI=ui(),wI=Math.min;Sd.exports=function(a){var e=kI(a);return e>0?wI(e,9007199254740991):0}});var Er=h((QC,yd)=>{"use strict";var AI=zn();yd.exports=function(a){return AI(a.length)}});var Kn=h((WC,Id)=>{"use strict";var RI=Ht(),LI=vd(),$I=Er(),Td=function(a){return function(e,t,r){var i=RI(e),s=$I(i);if(s===0)return!a&&-1;var n=LI(r,s),o;if(a&&t!==t){for(;s>n;)if(o=i[n++],o!==o)return!0}else for(;s>n;n++)if((a||n in i)&&i[n]===t)return a||n||0;return!a&&-1}};Id.exports={includes:Td(!0),indexOf:Td(!1)}});var li=h((YC,Ed)=>{"use strict";Ed.exports=function(){}});var xd=h(()=>{"use strict";var MI=K(),DI=Kn().includes,CI=ie(),VI=li(),BI=CI(function(){return!Array(1).includes()});MI({target:"Array",proto:!0,forced:BI},{includes:function(e){return DI(this,e,arguments.length>1?arguments[1]:void 0)}});VI("includes")});var It=h((XC,Pd)=>{"use strict";var OI=ut();Pd.exports=OI});var wd=h((JC,kd)=>{"use strict";xd();var _I=It();kd.exports=_I("Array","includes")});var Rd=h((ZC,Ad)=>{"use strict";var NI=wd();Ad.exports=NI});var He=h((e0,Ld)=>{"use strict";var FI=Rd();Ld.exports=FI});var za=h((p0,_d)=>{"use strict";var YI=On(),zI=_n(),Od=YI("keys");_d.exports=function(a){return Od[a]||(Od[a]=zI(a))}});var Fd=h((h0,Nd)=>{"use strict";var KI=ie();Nd.exports=!KI(function(){function a(){}return a.prototype.constructor=null,Object.getPrototypeOf(new a)!==a.prototype})});var Ka=h((m0,Ud)=>{"use strict";var XI=Ue(),JI=W(),ZI=gr(),eE=za(),tE=Fd(),qd=eE("IE_PROTO"),Zn=Object,rE=Zn.prototype;Ud.exports=tE?Zn.getPrototypeOf:function(a){var e=ZI(a);if(XI(e,qd))return e[qd];var t=e.constructor;return JI(t)&&e instanceof t?t.prototype:e instanceof Zn?rE:null}});var Xa=h((f0,Hd)=>{"use strict";Hd.exports={}});var Qd=h((b0,Gd)=>{"use strict";var iE=J(),eo=Ue(),aE=Ht(),sE=Kn().indexOf,nE=Xa(),jd=iE([].push);Gd.exports=function(a,e){var t=aE(a),r=0,i=[],s;for(s in t)!eo(nE,s)&&eo(t,s)&&jd(i,s);for(;e.length>r;)eo(t,s=e[r++])&&(~sE(i,s)||jd(i,s));return i}});var to=h((g0,Wd)=>{"use strict";Wd.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var ro=h((v0,Yd)=>{"use strict";var oE=Qd(),uE=to();Yd.exports=Object.keys||function(e){return oE(e,uE)}});var io=h((S0,Zd)=>{"use strict";var Kd=Pe(),lE=ie(),Xd=J(),cE=Ka(),dE=ro(),pE=Ht(),hE=Pn().f,Jd=Xd(hE),mE=Xd([].push),fE=Kd&&lE(function(){var a=Object.create(null);return a[2]=2,!Jd(a,2)}),zd=function(a){return function(e){for(var t=pE(e),r=dE(t),i=fE&&cE(t)===null,s=r.length,n=0,o=[],u;s>n;)u=r[n++],(!Kd||(i?u in t:Jd(t,u)))&&mE(o,a?[u,t[u]]:t[u]);return o}};Zd.exports={entries:zd(!0),values:zd(!1)}});var ep=h(()=>{"use strict";var bE=K(),gE=io().entries;bE({target:"Object",stat:!0},{entries:function(e){return gE(e)}})});var rp=h((I0,tp)=>{"use strict";ep();var vE=br();tp.exports=vE.Object.entries});var ap=h((E0,ip)=>{"use strict";var SE=rp();ip.exports=SE});var xr=h((x0,sp)=>{"use strict";var yE=ap();sp.exports=yE});var Qt=h((P0,np)=>{"use strict";np.exports={}});var lp=h((k0,up)=>{"use strict";var TE=Y(),IE=W(),op=TE.WeakMap;up.exports=IE(op)&&/native code/.test(String(op))});var oo=h((w0,pp)=>{"use strict";var EE=lp(),dp=Y(),xE=we(),PE=yr(),ao=Ue(),so=si(),kE=za(),wE=Xa(),cp="Object already initialized",no=dp.TypeError,AE=dp.WeakMap,Ja,ci,Za,RE=function(a){return Za(a)?ci(a):Ja(a,{})},LE=function(a){return function(e){var t;if(!xE(e)||(t=ci(e)).type!==a)throw new no("Incompatible receiver, "+a+" required");return t}};EE||so.state?(je=so.state||(so.state=new AE),je.get=je.get,je.has=je.has,je.set=je.set,Ja=function(a,e){if(je.has(a))throw new no(cp);return e.facade=a,je.set(a,e),e},ci=function(a){return je.get(a)||{}},Za=function(a){return je.has(a)}):(Wt=kE("state"),wE[Wt]=!0,Ja=function(a,e){if(ao(a,Wt))throw new no(cp);return e.facade=a,PE(a,Wt,e),e},ci=function(a){return ao(a,Wt)?a[Wt]:{}},Za=function(a){return ao(a,Wt)});var je,Wt;pp.exports={set:Ja,get:ci,has:Za,enforce:RE,getterFor:LE}});var co=h((A0,mp)=>{"use strict";var uo=Pe(),$E=Ue(),hp=Function.prototype,ME=uo&&Object.getOwnPropertyDescriptor,lo=$E(hp,"name"),DE=lo&&function(){}.name==="something",CE=lo&&(!uo||uo&&ME(hp,"name").configurable);mp.exports={EXISTS:lo,PROPER:DE,CONFIGURABLE:CE}});var bp=h(fp=>{"use strict";var VE=Pe(),BE=jn(),OE=Gt(),_E=Ze(),NE=Ht(),FE=ro();fp.f=VE&&!BE?Object.defineProperties:function(e,t){_E(e);for(var r=NE(t),i=FE(t),s=i.length,n=0,o;s>n;)OE.f(e,o=i[n++],r[o]);return e}});var po=h((L0,gp)=>{"use strict";var qE=ut();gp.exports=qE("document","documentElement")});var bo=h(($0,xp)=>{"use strict";var UE=Ze(),HE=bp(),vp=to(),jE=Xa(),GE=po(),QE=Ga(),WE=za(),Sp=">",yp="<",mo="prototype",fo="script",Ip=WE("IE_PROTO"),ho=function(){},Ep=function(a){return yp+fo+Sp+a+yp+"/"+fo+Sp},Tp=function(a){a.write(Ep("")),a.close();var e=a.parentWindow.Object;return a=null,e},YE=function(){var a=QE("iframe"),e="java"+fo+":",t;return a.style.display="none",GE.appendChild(a),a.src=String(e),t=a.contentWindow.document,t.open(),t.write(Ep("document.F=Object")),t.close(),t.F},es,ts=function(){try{es=new ActiveXObject("htmlfile")}catch{}ts=typeof document<"u"?document.domain&&es?Tp(es):YE():Tp(es);for(var a=vp.length;a--;)delete ts[mo][vp[a]];return ts()};jE[Ip]=!0;xp.exports=Object.create||function(e,t){var r;return e!==null?(ho[mo]=UE(e),r=new ho,ho[mo]=null,r[Ip]=e):r=ts(),t===void 0?r:HE.f(r,t)}});var Pr=h((M0,Pp)=>{"use strict";var zE=yr();Pp.exports=function(a,e,t,r){return r&&r.enumerable?a[e]=t:zE(a,e,t),a}});var yo=h((D0,Ap)=>{"use strict";var KE=ie(),XE=W(),JE=we(),ZE=bo(),kp=Ka(),ex=Pr(),tx=ae(),rx=qe(),So=tx("iterator"),wp=!1,lt,go,vo;[].keys&&(vo=[].keys(),"next"in vo?(go=kp(kp(vo)),go!==Object.prototype&&(lt=go)):wp=!0);var ix=!JE(lt)||KE(function(){var a={};return lt[So].call(a)!==a});ix?lt={}:rx&&(lt=ZE(lt));XE(lt[So])||ex(lt,So,function(){return this});Ap.exports={IteratorPrototype:lt,BUGGY_SAFARI_ITERATORS:wp}});var rs=h((C0,Lp)=>{"use strict";var ax=ae(),sx=ax("toStringTag"),Rp={};Rp[sx]="z";Lp.exports=String(Rp)==="[object z]"});var di=h((V0,$p)=>{"use strict";var nx=rs(),ox=W(),is=Ut(),ux=ae(),lx=ux("toStringTag"),cx=Object,dx=is(function(){return arguments}())==="Arguments",px=function(a,e){try{return a[e]}catch{}};$p.exports=nx?is:function(a){var e,t,r;return a===void 0?"Undefined":a===null?"Null":typeof(t=px(e=cx(a),lx))=="string"?t:dx?is(e):(r=is(e))==="Object"&&ox(e.callee)?"Arguments":r}});var Dp=h((B0,Mp)=>{"use strict";var hx=rs(),mx=di();Mp.exports=hx?{}.toString:function(){return"[object "+mx(this)+"]"}});var pi=h((O0,Vp)=>{"use strict";var fx=rs(),bx=Gt().f,gx=yr(),vx=Ue(),Sx=Dp(),yx=ae(),Cp=yx("toStringTag");Vp.exports=function(a,e,t,r){var i=t?a:a&&a.prototype;i&&(vx(i,Cp)||bx(i,Cp,{configurable:!0,value:e}),r&&!fx&&gx(i,"toString",Sx))}});var Op=h((_0,Bp)=>{"use strict";var Tx=yo().IteratorPrototype,Ix=bo(),Ex=ti(),xx=pi(),Px=Qt(),kx=function(){return this};Bp.exports=function(a,e,t,r){var i=e+" Iterator";return a.prototype=Ix(Tx,{next:Ex(+!r,t)}),xx(a,i,!1,!0),Px[i]=kx,a}});var Np=h((N0,_p)=>{"use strict";var wx=J(),Ax=Je();_p.exports=function(a,e,t){try{return wx(Ax(Object.getOwnPropertyDescriptor(a,e)[t]))}catch{}}});var qp=h((F0,Fp)=>{"use strict";var Rx=we();Fp.exports=function(a){return Rx(a)||a===null}});var Hp=h((q0,Up)=>{"use strict";var Lx=qp(),$x=String,Mx=TypeError;Up.exports=function(a){if(Lx(a))return a;throw new Mx("Can't set "+$x(a)+" as a prototype")}});var To=h((U0,jp)=>{"use strict";var Dx=Np(),Cx=we(),Vx=Tt(),Bx=Hp();jp.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var a=!1,e={},t;try{t=Dx(Object.prototype,"__proto__","set"),t(e,[]),a=e instanceof Array}catch{}return function(i,s){return Vx(i),Bx(s),Cx(i)&&(a?t(i,s):i.__proto__=s),i}}():void 0)});var th=h((H0,eh)=>{"use strict";var Ox=K(),_x=ke(),as=qe(),Jp=co(),Nx=W(),Fx=Op(),Gp=Ka(),Qp=To(),qx=pi(),Ux=yr(),Io=Pr(),Hx=ae(),Wp=Qt(),Zp=yo(),jx=Jp.PROPER,Gx=Jp.CONFIGURABLE,Yp=Zp.IteratorPrototype,ss=Zp.BUGGY_SAFARI_ITERATORS,hi=Hx("iterator"),zp="keys",mi="values",Kp="entries",Xp=function(){return this};eh.exports=function(a,e,t,r,i,s,n){Fx(t,e,r);var o=function(v){if(v===i&&p)return p;if(!ss&&v&&v in d)return d[v];switch(v){case zp:return function(){return new t(this,v)};case mi:return function(){return new t(this,v)};case Kp:return function(){return new t(this,v)}}return function(){return new t(this)}},u=e+" Iterator",l=!1,d=a.prototype,c=d[hi]||d["@@iterator"]||i&&d[i],p=!ss&&c||o(i),m=e==="Array"&&d.entries||c,f,b,g;if(m&&(f=Gp(m.call(new a)),f!==Object.prototype&&f.next&&(!as&&Gp(f)!==Yp&&(Qp?Qp(f,Yp):Nx(f[hi])||Io(f,hi,Xp)),qx(f,u,!0,!0),as&&(Wp[u]=Xp))),jx&&i===mi&&c&&c.name!==mi&&(!as&&Gx?Ux(d,"name",mi):(l=!0,p=function(){return _x(c,this)})),i)if(b={values:o(mi),keys:s?p:o(zp),entries:o(Kp)},n)for(g in b)(ss||l||!(g in d))&&Io(d,g,b[g]);else Ox({target:e,proto:!0,forced:ss||l},b);return(!as||n)&&d[hi]!==p&&Io(d,hi,p,{name:i}),Wp[e]=p,b}});var ih=h((j0,rh)=>{"use strict";rh.exports=function(a,e){return{value:a,done:e}}});var xo=h((G0,uh)=>{"use strict";var Qx=Ht(),Eo=li(),ah=Qt(),nh=oo(),Wx=Gt().f,Yx=th(),ns=ih(),zx=qe(),Kx=Pe(),oh="Array Iterator",Xx=nh.set,Jx=nh.getterFor(oh);uh.exports=Yx(Array,"Array",function(a,e){Xx(this,{type:oh,target:Qx(a),index:0,kind:e})},function(){var a=Jx(this),e=a.target,t=a.index++;if(!e||t>=e.length)return a.target=void 0,ns(void 0,!0);switch(a.kind){case"keys":return ns(t,!1);case"values":return ns(e[t],!1)}return ns([t,e[t]],!1)},"values");var sh=ah.Arguments=ah.Array;Eo("keys");Eo("values");Eo("entries");if(!zx&&Kx&&sh.name!=="values")try{Wx(sh,"name",{value:"values"})}catch{}});var ch=h((Q0,lh)=>{"use strict";var Zx=ae(),eP=Qt(),tP=Zx("iterator"),rP=Array.prototype;lh.exports=function(a){return a!==void 0&&(eP.Array===a||rP[tP]===a)}});var Po=h((W0,ph)=>{"use strict";var iP=di(),dh=ai(),aP=fr(),sP=Qt(),nP=ae(),oP=nP("iterator");ph.exports=function(a){if(!aP(a))return dh(a,oP)||dh(a,"@@iterator")||sP[iP(a)]}});var mh=h((Y0,hh)=>{"use strict";var uP=ke(),lP=Je(),cP=Ze(),dP=ii(),pP=Po(),hP=TypeError;hh.exports=function(a,e){var t=arguments.length<2?pP(a):e;if(lP(t))return cP(uP(t,a));throw new hP(dP(a)+" is not iterable")}});var gh=h((z0,bh)=>{"use strict";var mP=ke(),fh=Ze(),fP=ai();bh.exports=function(a,e,t){var r,i;fh(a);try{if(r=fP(a,"return"),!r){if(e==="throw")throw t;return t}r=mP(r,a)}catch(s){i=!0,r=s}if(e==="throw")throw t;if(i)throw r;return fh(r),t}});var us=h((K0,Th)=>{"use strict";var bP=Sr(),gP=ke(),vP=Ze(),SP=ii(),yP=ch(),TP=Er(),vh=ri(),IP=mh(),EP=Po(),Sh=gh(),xP=TypeError,os=function(a,e){this.stopped=a,this.result=e},yh=os.prototype;Th.exports=function(a,e,t){var r=t&&t.that,i=!!(t&&t.AS_ENTRIES),s=!!(t&&t.IS_RECORD),n=!!(t&&t.IS_ITERATOR),o=!!(t&&t.INTERRUPTED),u=bP(e,r),l,d,c,p,m,f,b,g=function(k){return l&&Sh(l,"normal",k),new os(!0,k)},v=function(k){return i?(vP(k),o?u(k[0],k[1],g):u(k[0],k[1])):o?u(k,g):u(k)};if(s)l=a.iterator;else if(n)l=a;else{if(d=EP(a),!d)throw new xP(SP(a)+" is not iterable");if(yP(d)){for(c=0,p=TP(a);p>c;c++)if(m=v(a[c]),m&&vh(yh,m))return m;return new os(!1)}l=IP(a,d)}for(f=s?a.next:l.next;!(b=gP(f,l)).done;){try{m=v(b.value)}catch(k){Sh(l,"throw",k)}if(typeof m=="object"&&m&&vh(yh,m))return m}return new os(!1)}});var Eh=h((X0,Ih)=>{"use strict";var PP=Pe(),kP=Gt(),wP=ti();Ih.exports=function(a,e,t){PP?kP.f(a,e,wP(0,t)):a[e]=t}});var xh=h(()=>{"use strict";var AP=K(),RP=us(),LP=Eh();AP({target:"Object",stat:!0},{fromEntries:function(e){var t={};return RP(e,function(r,i){LP(t,r,i)},{AS_ENTRIES:!0}),t}})});var kh=h((eV,Ph)=>{"use strict";xo();xh();var $P=br();Ph.exports=$P.Object.fromEntries});var Ah=h((tV,wh)=>{"use strict";wh.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 Lh=h(()=>{"use strict";xo();var MP=Ah(),DP=Y(),CP=pi(),Rh=Qt();for(ls in MP)CP(DP[ls],ls),Rh[ls]=Rh.Array;var ls});var Mh=h((aV,$h)=>{"use strict";var VP=kh();Lh();$h.exports=VP});var ko=h((sV,Dh)=>{"use strict";var BP=Mh();Dh.exports=BP});var Ch=h(()=>{"use strict"});var wo=h((uV,Vh)=>{"use strict";var fi=Y(),OP=jt(),_P=Ut(),cs=function(a){return OP.slice(0,a.length)===a};Vh.exports=function(){return cs("Bun/")?"BUN":cs("Cloudflare-Workers")?"CLOUDFLARE":cs("Deno/")?"DENO":cs("Node.js/")?"NODE":fi.Bun&&typeof Bun.version=="string"?"BUN":fi.Deno&&typeof Deno.version=="object"?"DENO":_P(fi.process)==="process"?"NODE":fi.window&&fi.document?"BROWSER":"REST"}()});var ds=h((lV,Bh)=>{"use strict";var NP=wo();Bh.exports=NP==="NODE"});var _h=h((cV,Oh)=>{"use strict";var FP=Gt();Oh.exports=function(a,e,t){return FP.f(a,e,t)}});var qh=h((dV,Fh)=>{"use strict";var qP=ut(),UP=_h(),HP=ae(),jP=Pe(),Nh=HP("species");Fh.exports=function(a){var e=qP(a);jP&&e&&!e[Nh]&&UP(e,Nh,{configurable:!0,get:function(){return this}})}});var Hh=h((pV,Uh)=>{"use strict";var GP=ri(),QP=TypeError;Uh.exports=function(a,e){if(GP(e,a))return a;throw new QP("Incorrect invocation")}});var Ro=h((hV,jh)=>{"use strict";var WP=J(),YP=W(),Ao=si(),zP=WP(Function.toString);YP(Ao.inspectSource)||(Ao.inspectSource=function(a){return zP(a)});jh.exports=Ao.inspectSource});var $o=h((mV,zh)=>{"use strict";var KP=J(),XP=ie(),Gh=W(),JP=di(),ZP=ut(),ek=Ro(),Qh=function(){},Wh=ZP("Reflect","construct"),Lo=/^\s*(?:class|function)\b/,tk=KP(Lo.exec),rk=!Lo.test(Qh),bi=function(e){if(!Gh(e))return!1;try{return Wh(Qh,[],e),!0}catch{return!1}},Yh=function(e){if(!Gh(e))return!1;switch(JP(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return rk||!!tk(Lo,ek(e))}catch{return!0}};Yh.sham=!0;zh.exports=!Wh||XP(function(){var a;return bi(bi.call)||!bi(Object)||!bi(function(){a=!0})||a})?Yh:bi});var Xh=h((fV,Kh)=>{"use strict";var ik=$o(),ak=ii(),sk=TypeError;Kh.exports=function(a){if(ik(a))return a;throw new sk(ak(a)+" is not a constructor")}});var Mo=h((bV,Zh)=>{"use strict";var Jh=Ze(),nk=Xh(),ok=fr(),uk=ae(),lk=uk("species");Zh.exports=function(a,e){var t=Jh(a).constructor,r;return t===void 0||ok(r=Jh(t)[lk])?e:nk(r)}});var tm=h((gV,em)=>{"use strict";var ck=J();em.exports=ck([].slice)});var im=h((vV,rm)=>{"use strict";var dk=TypeError;rm.exports=function(a,e){if(a<e)throw new dk("Not enough arguments");return a}});var Do=h((SV,am)=>{"use strict";var pk=jt();am.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(pk)});var Uo=h((yV,hm)=>{"use strict";var Ae=Y(),hk=Tn(),mk=Sr(),sm=W(),fk=Ue(),pm=ie(),nm=po(),bk=tm(),om=Ga(),gk=im(),vk=Do(),Sk=ds(),No=Ae.setImmediate,Fo=Ae.clearImmediate,yk=Ae.process,Co=Ae.Dispatch,Tk=Ae.Function,um=Ae.MessageChannel,Ik=Ae.String,Vo=0,gi={},lm="onreadystatechange",vi,Yt,Bo,Oo;pm(function(){vi=Ae.location});var qo=function(a){if(fk(gi,a)){var e=gi[a];delete gi[a],e()}},_o=function(a){return function(){qo(a)}},cm=function(a){qo(a.data)},dm=function(a){Ae.postMessage(Ik(a),vi.protocol+"//"+vi.host)};(!No||!Fo)&&(No=function(e){gk(arguments.length,1);var t=sm(e)?e:Tk(e),r=bk(arguments,1);return gi[++Vo]=function(){hk(t,void 0,r)},Yt(Vo),Vo},Fo=function(e){delete gi[e]},Sk?Yt=function(a){yk.nextTick(_o(a))}:Co&&Co.now?Yt=function(a){Co.now(_o(a))}:um&&!vk?(Bo=new um,Oo=Bo.port2,Bo.port1.onmessage=cm,Yt=mk(Oo.postMessage,Oo)):Ae.addEventListener&&sm(Ae.postMessage)&&!Ae.importScripts&&vi&&vi.protocol!=="file:"&&!pm(dm)?(Yt=dm,Ae.addEventListener("message",cm,!1)):lm in om("script")?Yt=function(a){nm.appendChild(om("script"))[lm]=function(){nm.removeChild(this),qo(a)}}:Yt=function(a){setTimeout(_o(a),0)});hm.exports={set:No,clear:Fo}});var bm=h((TV,fm)=>{"use strict";var mm=Y(),Ek=Pe(),xk=Object.getOwnPropertyDescriptor;fm.exports=function(a){if(!Ek)return mm[a];var e=xk(mm,a);return e&&e.value}});var Ho=h((IV,vm)=>{"use strict";var gm=function(){this.head=null,this.tail=null};gm.prototype={add:function(a){var e={item:a,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var a=this.head;if(a){var e=this.head=a.next;return e===null&&(this.tail=null),a.item}}};vm.exports=gm});var ym=h((EV,Sm)=>{"use strict";var Pk=jt();Sm.exports=/ipad|iphone|ipod/i.test(Pk)&&typeof Pebble<"u"});var Im=h((xV,Tm)=>{"use strict";var kk=jt();Tm.exports=/web0s(?!.*chrome)/i.test(kk)});var Rm=h((PV,Am)=>{"use strict";var wr=Y(),wk=bm(),Em=Sr(),jo=Uo().set,Ak=Ho(),Rk=Do(),Lk=ym(),$k=Im(),Go=ds(),xm=wr.MutationObserver||wr.WebKitMutationObserver,Pm=wr.document,km=wr.process,ps=wr.Promise,Yo=wk("queueMicrotask"),kr,Qo,Wo,hs,wm;Yo||(Si=new Ak,yi=function(){var a,e;for(Go&&(a=km.domain)&&a.exit();e=Si.get();)try{e()}catch(t){throw Si.head&&kr(),t}a&&a.enter()},!Rk&&!Go&&!$k&&xm&&Pm?(Qo=!0,Wo=Pm.createTextNode(""),new xm(yi).observe(Wo,{characterData:!0}),kr=function(){Wo.data=Qo=!Qo}):!Lk&&ps&&ps.resolve?(hs=ps.resolve(void 0),hs.constructor=ps,wm=Em(hs.then,hs),kr=function(){wm(yi)}):Go?kr=function(){km.nextTick(yi)}:(jo=Em(jo,wr),kr=function(){jo(yi)}),Yo=function(a){Si.head||kr(),Si.add(a)});var Si,yi;Am.exports=Yo});var $m=h((kV,Lm)=>{"use strict";Lm.exports=function(a,e){try{arguments.length===1?console.error(a):console.error(a,e)}catch{}}});var ms=h((wV,Mm)=>{"use strict";Mm.exports=function(a){try{return{error:!1,value:a()}}catch(e){return{error:!0,value:e}}}});var zt=h((AV,Dm)=>{"use strict";var Mk=Y();Dm.exports=Mk.Promise});var Ar=h((RV,Om)=>{"use strict";var Dk=Y(),Ti=zt(),Ck=W(),Vk=Hn(),Bk=Ro(),Ok=ae(),Cm=wo(),_k=qe(),zo=Ln(),Vm=Ti&&Ti.prototype,Nk=Ok("species"),Ko=!1,Bm=Ck(Dk.PromiseRejectionEvent),Fk=Vk("Promise",function(){var a=Bk(Ti),e=a!==String(Ti);if(!e&&zo===66||_k&&!(Vm.catch&&Vm.finally))return!0;if(!zo||zo<51||!/native code/.test(a)){var t=new Ti(function(s){s(1)}),r=function(s){s(function(){},function(){})},i=t.constructor={};if(i[Nk]=r,Ko=t.then(function(){})instanceof r,!Ko)return!0}return!e&&(Cm==="BROWSER"||Cm==="DENO")&&!Bm});Om.exports={CONSTRUCTOR:Fk,REJECTION_EVENT:Bm,SUBCLASSING:Ko}});var Rr=h((LV,Nm)=>{"use strict";var _m=Je(),qk=TypeError,Uk=function(a){var e,t;this.promise=new a(function(r,i){if(e!==void 0||t!==void 0)throw new qk("Bad Promise constructor");e=r,t=i}),this.resolve=_m(e),this.reject=_m(t)};Nm.exports.f=function(a){return new Uk(a)}});var sf=h(()=>{"use strict";var Hk=K(),jk=qe(),vs=ds(),Et=Y(),Dr=ke(),Fm=Pr(),qm=To(),Gk=pi(),Qk=qh(),Wk=Je(),gs=W(),Yk=we(),zk=Hh(),Kk=Mo(),Qm=Uo().set,tu=Rm(),Xk=$m(),Jk=ms(),Zk=Ho(),Wm=oo(),Ss=zt(),ru=Ar(),Ym=Rr(),ys="Promise",zm=ru.CONSTRUCTOR,ew=ru.REJECTION_EVENT,tw=ru.SUBCLASSING,Xo=Wm.getterFor(ys),rw=Wm.set,Lr=Ss&&Ss.prototype,Kt=Ss,fs=Lr,Km=Et.TypeError,Jo=Et.document,iu=Et.process,Zo=Ym.f,iw=Zo,aw=!!(Jo&&Jo.createEvent&&Et.dispatchEvent),Xm="unhandledrejection",sw="rejectionhandled",Um=0,Jm=1,nw=2,au=1,Zm=2,bs,Hm,ow,jm,ef=function(a){var e;return Yk(a)&&gs(e=a.then)?e:!1},tf=function(a,e){var t=e.value,r=e.state===Jm,i=r?a.ok:a.fail,s=a.resolve,n=a.reject,o=a.domain,u,l,d;try{i?(r||(e.rejection===Zm&&lw(e),e.rejection=au),i===!0?u=t:(o&&o.enter(),u=i(t),o&&(o.exit(),d=!0)),u===a.promise?n(new Km("Promise-chain cycle")):(l=ef(u))?Dr(l,u,s,n):s(u)):n(t)}catch(c){o&&!d&&o.exit(),n(c)}},rf=function(a,e){a.notified||(a.notified=!0,tu(function(){for(var t=a.reactions,r;r=t.get();)tf(r,a);a.notified=!1,e&&!a.rejection&&uw(a)}))},af=function(a,e,t){var r,i;aw?(r=Jo.createEvent("Event"),r.promise=e,r.reason=t,r.initEvent(a,!1,!0),Et.dispatchEvent(r)):r={promise:e,reason:t},!ew&&(i=Et["on"+a])?i(r):a===Xm&&Xk("Unhandled promise rejection",t)},uw=function(a){Dr(Qm,Et,function(){var e=a.facade,t=a.value,r=Gm(a),i;if(r&&(i=Jk(function(){vs?iu.emit("unhandledRejection",t,e):af(Xm,e,t)}),a.rejection=vs||Gm(a)?Zm:au,i.error))throw i.value})},Gm=function(a){return a.rejection!==au&&!a.parent},lw=function(a){Dr(Qm,Et,function(){var e=a.facade;vs?iu.emit("rejectionHandled",e):af(sw,e,a.value)})},$r=function(a,e,t){return function(r){a(e,r,t)}},Mr=function(a,e,t){a.done||(a.done=!0,t&&(a=t),a.value=e,a.state=nw,rf(a,!0))},eu=function(a,e,t){if(!a.done){a.done=!0,t&&(a=t);try{if(a.facade===e)throw new Km("Promise can't be resolved itself");var r=ef(e);r?tu(function(){var i={done:!1};try{Dr(r,e,$r(eu,i,a),$r(Mr,i,a))}catch(s){Mr(i,s,a)}}):(a.value=e,a.state=Jm,rf(a,!1))}catch(i){Mr({done:!1},i,a)}}};if(zm&&(Kt=function(e){zk(this,fs),Wk(e),Dr(bs,this);var t=Xo(this);try{e($r(eu,t),$r(Mr,t))}catch(r){Mr(t,r)}},fs=Kt.prototype,bs=function(e){rw(this,{type:ys,done:!1,notified:!1,parent:!1,reactions:new Zk,rejection:!1,state:Um,value:void 0})},bs.prototype=Fm(fs,"then",function(e,t){var r=Xo(this),i=Zo(Kk(this,Kt));return r.parent=!0,i.ok=gs(e)?e:!0,i.fail=gs(t)&&t,i.domain=vs?iu.domain:void 0,r.state===Um?r.reactions.add(i):tu(function(){tf(i,r)}),i.promise}),Hm=function(){var a=new bs,e=Xo(a);this.promise=a,this.resolve=$r(eu,e),this.reject=$r(Mr,e)},Ym.f=Zo=function(a){return a===Kt||a===ow?new Hm(a):iw(a)},!jk&&gs(Ss)&&Lr!==Object.prototype)){jm=Lr.then,tw||Fm(Lr,"then",function(e,t){var r=this;return new Kt(function(i,s){Dr(jm,r,i,s)}).then(e,t)},{unsafe:!0});try{delete Lr.constructor}catch{}qm&&qm(Lr,fs)}Hk({global:!0,constructor:!0,wrap:!0,forced:zm},{Promise:Kt});Gk(Kt,ys,!1,!0);Qk(ys)});var cf=h((DV,lf)=>{"use strict";var cw=ae(),of=cw("iterator"),uf=!1;try{nf=0,su={next:function(){return{done:!!nf++}},return:function(){uf=!0}},su[of]=function(){return this},Array.from(su,function(){throw 2})}catch{}var nf,su;lf.exports=function(a,e){try{if(!e&&!uf)return!1}catch{return!1}var t=!1;try{var r={};r[of]=function(){return{next:function(){return{done:t=!0}}}},a(r)}catch{}return t}});var nu=h((CV,df)=>{"use strict";var dw=zt(),pw=cf(),hw=Ar().CONSTRUCTOR;df.exports=hw||!pw(function(a){dw.all(a).then(void 0,function(){})})});var pf=h(()=>{"use strict";var mw=K(),fw=ke(),bw=Je(),gw=Rr(),vw=ms(),Sw=us(),yw=nu();mw({target:"Promise",stat:!0,forced:yw},{all:function(e){var t=this,r=gw.f(t),i=r.resolve,s=r.reject,n=vw(function(){var o=bw(t.resolve),u=[],l=0,d=1;Sw(e,function(c){var p=l++,m=!1;d++,fw(o,t,c).then(function(f){m||(m=!0,u[p]=f,--d||i(u))},s)}),--d||i(u)});return n.error&&s(n.value),r.promise}})});var mf=h(()=>{"use strict";var Tw=K(),Iw=qe(),Ew=Ar().CONSTRUCTOR,uu=zt(),xw=ut(),Pw=W(),kw=Pr(),hf=uu&&uu.prototype;Tw({target:"Promise",proto:!0,forced:Ew,real:!0},{catch:function(a){return this.then(void 0,a)}});!Iw&&Pw(uu)&&(ou=xw("Promise").prototype.catch,hf.catch!==ou&&kw(hf,"catch",ou,{unsafe:!0}));var ou});var ff=h(()=>{"use strict";var ww=K(),Aw=ke(),Rw=Je(),Lw=Rr(),$w=ms(),Mw=us(),Dw=nu();ww({target:"Promise",stat:!0,forced:Dw},{race:function(e){var t=this,r=Lw.f(t),i=r.reject,s=$w(function(){var n=Rw(t.resolve);Mw(e,function(o){Aw(n,t,o).then(r.resolve,i)})});return s.error&&i(s.value),r.promise}})});var bf=h(()=>{"use strict";var Cw=K(),Vw=Rr(),Bw=Ar().CONSTRUCTOR;Cw({target:"Promise",stat:!0,forced:Bw},{reject:function(e){var t=Vw.f(this),r=t.reject;return r(e),t.promise}})});var lu=h((HV,gf)=>{"use strict";var Ow=Ze(),_w=we(),Nw=Rr();gf.exports=function(a,e){if(Ow(a),_w(e)&&e.constructor===a)return e;var t=Nw.f(a),r=t.resolve;return r(e),t.promise}});var yf=h(()=>{"use strict";var Fw=K(),qw=ut(),vf=qe(),Uw=zt(),Sf=Ar().CONSTRUCTOR,Hw=lu(),jw=qw("Promise"),Gw=vf&&!Sf;Fw({target:"Promise",stat:!0,forced:vf||Sf},{resolve:function(e){return Hw(Gw&&this===jw?Uw:this,e)}})});var Tf=h(()=>{"use strict";sf();pf();mf();ff();bf();yf()});var Pf=h(()=>{"use strict";var Qw=K(),Ww=qe(),Ts=zt(),Yw=ie(),Ef=ut(),xf=W(),zw=Mo(),If=lu(),Kw=Pr(),du=Ts&&Ts.prototype,Xw=!!Ts&&Yw(function(){du.finally.call({then:function(){}},function(){})});Qw({target:"Promise",proto:!0,real:!0,forced:Xw},{finally:function(a){var e=zw(this,Ef("Promise")),t=xf(a);return this.then(t?function(r){return If(e,a()).then(function(){return r})}:a,t?function(r){return If(e,a()).then(function(){throw r})}:a)}});!Ww&&xf(Ts)&&(cu=Ef("Promise").prototype.finally,du.finally!==cu&&Kw(du,"finally",cu,{unsafe:!0}));var cu});var wf=h((KV,kf)=>{"use strict";Ch();Tf();Pf();var Jw=It();kf.exports=Jw("Promise","finally")});var Rf=h((XV,Af)=>{"use strict";var Zw=wf();Af.exports=Zw});var Is=h((JV,Lf)=>{"use strict";var eA=Rf();Lf.exports=eA});var Hf=h(()=>{"use strict";var mA=K(),fA=io().values;mA({target:"Object",stat:!0},{values:function(e){return fA(e)}})});var Gf=h((BB,jf)=>{"use strict";Hf();var bA=br();jf.exports=bA.Object.values});var Wf=h((OB,Qf)=>{"use strict";var gA=Gf();Qf.exports=gA});var Vr=h((_B,Yf)=>{"use strict";var vA=Wf();Yf.exports=vA});var ob=h(()=>{"use strict";var CA=K(),VA=gr(),BA=Er(),OA=ui(),_A=li();CA({target:"Array",proto:!0},{at:function(e){var t=VA(this),r=BA(t),i=OA(e),s=i>=0?i:r+i;return s<0||s>=r?void 0:t[s]}});_A("at")});var lb=h((pO,ub)=>{"use strict";ob();var NA=It();ub.exports=NA("Array","at")});var db=h((hO,cb)=>{"use strict";var FA=lb();cb.exports=FA});var Or=h((mO,pb)=>{"use strict";var qA=db();pb.exports=qA});var Cu=h((F_,Ub)=>{"use strict";var IR=Ut();Ub.exports=Array.isArray||function(e){return IR(e)==="Array"}});var jb=h((q_,Hb)=>{"use strict";var ER=TypeError,xR=9007199254740991;Hb.exports=function(a){if(a>xR)throw ER("Maximum allowed index exceeded");return a}});var Wb=h((U_,Qb)=>{"use strict";var PR=Cu(),kR=Er(),wR=jb(),AR=Sr(),Gb=function(a,e,t,r,i,s,n,o){for(var u=i,l=0,d=n?AR(n,o):!1,c,p;l<r;)l in t&&(c=d?d(t[l],l,e):t[l],s>0&&PR(c)?(p=kR(c),u=Gb(a,e,c,p,u,s-1)-1):(wR(u+1),a[u]=c),u++),l++;return u};Qb.exports=Gb});var Xb=h((H_,Kb)=>{"use strict";var Yb=Cu(),RR=$o(),LR=we(),$R=ae(),MR=$R("species"),zb=Array;Kb.exports=function(a){var e;return Yb(a)&&(e=a.constructor,RR(e)&&(e===zb||Yb(e.prototype))?e=void 0:LR(e)&&(e=e[MR],e===null&&(e=void 0))),e===void 0?zb:e}});var Zb=h((j_,Jb)=>{"use strict";var DR=Xb();Jb.exports=function(a,e){return new(DR(a))(e===0?0:e)}});var eg=h(()=>{"use strict";var CR=K(),VR=Wb(),BR=Je(),OR=gr(),_R=Er(),NR=Zb();CR({target:"Array",proto:!0},{flatMap:function(e){var t=OR(this),r=_R(t),i;return BR(e),i=NR(t,0),i.length=VR(i,t,t,r,0,1,e,arguments.length>1?arguments[1]:void 0),i}})});var tg=h(()=>{"use strict";var FR=li();FR("flatMap")});var ig=h((z_,rg)=>{"use strict";eg();tg();var qR=It();rg.exports=qR("Array","flatMap")});var sg=h((K_,ag)=>{"use strict";var UR=ig();ag.exports=UR});var Vu=h((X_,ng)=>{"use strict";var HR=sg();ng.exports=HR});var Bi=h((oN,bg)=>{"use strict";var XR=di(),JR=String;bg.exports=function(a){if(XR(a)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return JR(a)}});var Ou=h((uN,gg)=>{"use strict";gg.exports=`
7
- \v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`});var yg=h((lN,Sg)=>{"use strict";var ZR=J(),eL=Tt(),tL=Bi(),Nu=Ou(),vg=ZR("".replace),rL=RegExp("^["+Nu+"]+"),iL=RegExp("(^|[^"+Nu+"])["+Nu+"]+$"),_u=function(a){return function(e){var t=tL(eL(e));return a&1&&(t=vg(t,rL,"")),a&2&&(t=vg(t,iL,"$1")),t}};Sg.exports={start:_u(1),end:_u(2),trim:_u(3)}});var xg=h((cN,Eg)=>{"use strict";var aL=co().PROPER,sL=ie(),Tg=Ou(),Ig="\u200B\x85\u180E";Eg.exports=function(a){return sL(function(){return!!Tg[a]()||Ig[a]()!==Ig||aL&&Tg[a].name!==a})}});var Fu=h((dN,Pg)=>{"use strict";var nL=yg().start,oL=xg();Pg.exports=oL("trimStart")?function(){return nL(this)}:"".trimStart});var wg=h(()=>{"use strict";var uL=K(),kg=Fu();uL({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==kg},{trimLeft:kg})});var Rg=h(()=>{"use strict";wg();var lL=K(),Ag=Fu();lL({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==Ag},{trimStart:Ag})});var $g=h((bN,Lg)=>{"use strict";Rg();var cL=It();Lg.exports=cL("String","trimLeft")});var Dg=h((gN,Mg)=>{"use strict";var dL=$g();Mg.exports=dL});var Vg=h((vN,Cg)=>{"use strict";var pL=Dg();Cg.exports=pL});var Xg=h(()=>{"use strict"});var Jg=h(()=>{"use strict"});var ev=h((Xq,Zg)=>{"use strict";var VL=we(),BL=Ut(),OL=ae(),_L=OL("match");Zg.exports=function(a){var e;return VL(a)&&((e=a[_L])!==void 0?!!e:BL(a)==="RegExp")}});var rv=h((Jq,tv)=>{"use strict";var NL=Ze();tv.exports=function(){var a=NL(this),e="";return a.hasIndices&&(e+="d"),a.global&&(e+="g"),a.ignoreCase&&(e+="i"),a.multiline&&(e+="m"),a.dotAll&&(e+="s"),a.unicode&&(e+="u"),a.unicodeSets&&(e+="v"),a.sticky&&(e+="y"),e}});var sv=h((Zq,av)=>{"use strict";var FL=ke(),qL=Ue(),UL=ri(),HL=rv(),iv=RegExp.prototype;av.exports=function(a){var e=a.flags;return e===void 0&&!("flags"in iv)&&!qL(a,"flags")&&UL(iv,a)?FL(HL,a):e}});var ov=h((eU,nv)=>{"use strict";var zu=J(),jL=gr(),GL=Math.floor,Wu=zu("".charAt),QL=zu("".replace),Yu=zu("".slice),WL=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,YL=/\$([$&'`]|\d{1,2})/g;nv.exports=function(a,e,t,r,i,s){var n=t+a.length,o=r.length,u=YL;return i!==void 0&&(i=jL(i),u=WL),QL(s,u,function(l,d){var c;switch(Wu(d,0)){case"$":return"$";case"&":return a;case"`":return Yu(e,0,t);case"'":return Yu(e,n);case"<":c=i[Yu(d,1,-1)];break;default:var p=+d;if(p===0)return l;if(p>o){var m=GL(p/10);return m===0?l:m<=o?r[m-1]===void 0?Wu(d,1):r[m-1]+Wu(d,1):l}c=r[p-1]}return c===void 0?"":c})}});var cv=h(()=>{"use strict";var zL=K(),KL=ke(),Xu=J(),uv=Tt(),XL=W(),JL=fr(),ZL=ev(),Hr=Bi(),e$=ai(),t$=sv(),r$=ov(),i$=ae(),a$=qe(),s$=i$("replace"),n$=TypeError,Ku=Xu("".indexOf),o$=Xu("".replace),lv=Xu("".slice),u$=Math.max;zL({target:"String",proto:!0},{replaceAll:function(e,t){var r=uv(this),i,s,n,o,u,l,d,c,p,m,f=0,b="";if(!JL(e)){if(i=ZL(e),i&&(s=Hr(uv(t$(e))),!~Ku(s,"g")))throw new n$("`.replaceAll` does not allow non-global regexes");if(n=e$(e,s$),n)return KL(n,e,r,t);if(a$&&i)return o$(Hr(r),e,t)}for(o=Hr(r),u=Hr(e),l=XL(t),l||(t=Hr(t)),d=u.length,c=u$(1,d),p=Ku(o,u);p!==-1;)m=l?Hr(t(u,p,o)):r$(u,o,p,[],void 0,t),b+=lv(o,f,p)+m,f=p+d,p=p+c>o.length?-1:Ku(o,u,p+c);return f<o.length&&(b+=lv(o,f)),b}})});var pv=h((iU,dv)=>{"use strict";Xg();Jg();cv();var l$=It();dv.exports=l$("String","replaceAll")});var mv=h((aU,hv)=>{"use strict";var c$=pv();hv.exports=c$});var bv=h((sU,fv)=>{"use strict";var d$=mv();fv.exports=d$});var vv=h((nU,gv)=>{"use strict";var p$=ui(),h$=Bi(),m$=Tt(),f$=RangeError;gv.exports=function(e){var t=h$(m$(this)),r="",i=p$(e);if(i<0||i===1/0)throw new f$("Wrong number of repetitions");for(;i>0;(i>>>=1)&&(t+=t))i&1&&(r+=t);return r}});var Ev=h((oU,Iv)=>{"use strict";var Tv=J(),b$=zn(),Sv=Bi(),g$=vv(),v$=Tt(),S$=Tv(g$),y$=Tv("".slice),T$=Math.ceil,yv=function(a){return function(e,t,r){var i=Sv(v$(e)),s=b$(t),n=i.length,o=r===void 0?" ":Sv(r),u,l;return s<=n||o===""?i:(u=s-n,l=S$(o,T$(u/o.length)),l.length>u&&(l=y$(l,0,u)),a?i+l:l+i)}};Iv.exports={start:yv(!1),end:yv(!0)}});var Pv=h((uU,xv)=>{"use strict";var I$=jt();xv.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(I$)});var kv=h(()=>{"use strict";var E$=K(),x$=Ev().start,P$=Pv();E$({target:"String",proto:!0,forced:P$},{padStart:function(e){return x$(this,e,arguments.length>1?arguments[1]:void 0)}})});var Av=h((dU,wv)=>{"use strict";kv();var k$=It();wv.exports=k$("String","padStart")});var Lv=h((pU,Rv)=>{"use strict";var w$=Av();Rv.exports=w$});var Mv=h((hU,$v)=>{"use strict";var A$=Lv();$v.exports=A$});var _l="2.0.124-dev.3f8d0805.0";var me=(i=>(i.STOPPED="stopped",i.READY="ready",i.PLAYING="playing",i.PAUSED="paused",i))(me||{}),yt=(P=>(P.MPEG="MPEG",P.DASH="DASH",P.DASH_SEP="DASH_SEP",P.DASH_SEP_VK="DASH_SEP",P.DASH_WEBM="DASH_WEBM",P.DASH_WEBM_AV1="DASH_WEBM_AV1",P.DASH_STREAMS="DASH_STREAMS",P.DASH_WEBM_VK="DASH_WEBM",P.DASH_ONDEMAND="DASH_ONDEMAND",P.DASH_ONDEMAND_VK="DASH_ONDEMAND",P.DASH_LIVE="DASH_LIVE",P.DASH_LIVE_CMAF="DASH_LIVE_CMAF",P.DASH_LIVE_WEBM="DASH_LIVE_WEBM",P.HLS="HLS",P.HLS_ONDEMAND="HLS_ONDEMAND",P.HLS_JS="HLS",P.HLS_LIVE="HLS_LIVE",P.HLS_LIVE_CMAF="HLS_LIVE_CMAF",P.WEB_RTC_LIVE="WEB_RTC_LIVE",P))(yt||{});var Ua=(i=>(i.NOT_AVAILABLE="NOT_AVAILABLE",i.AVAILABLE="AVAILABLE",i.CONNECTING="CONNECTING",i.CONNECTED="CONNECTED",i))(Ua||{}),vn=(r=>(r.HTTP1="http1",r.HTTP2="http2",r.QUIC="quic",r))(vn||{});var Sn=(n=>(n.NONE="none",n.INLINE="inline",n.FULLSCREEN="fullscreen",n.SECOND_SCREEN="second_screen",n.PIP="pip",n.INVISIBLE="invisible",n))(Sn||{});var ly=D(He(),1);import{assertNever as Bd,assertNonNullable as qI,isNonNullable as Wa,ValueSubject as Xn,Subject as UI,Subscription as HI,merge as jI,observableFrom as GI,fromEvent as Md,map as Dd,tap as Cd,filterChanged as QI,isNullable as Jn,ErrorCategory as Vd}from"@vkontakte/videoplayer-shared";var $d=a=>new Promise((e,t)=>{let r=document.createElement("script");r.setAttribute("src",a),r.onload=()=>e(),r.onerror=i=>t(i),document.body.appendChild(r)});var Ya=class{constructor(e){this.connection$=new Xn(void 0);this.castState$=new Xn("NOT_AVAILABLE");this.errorEvent$=new UI;this.realCastState$=new Xn("NOT_AVAILABLE");this.subscription=new HI;this.isDestroyed=!1;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 r=Wa(window.chrome?.cast),i=!!window.__onGCastApiAvailable;r?this.initializeCastApi():(window.__onGCastApiAvailable=s=>{delete window.__onGCastApiAvailable,s&&!this.isDestroyed&&this.initializeCastApi()},i||$d("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:Vd.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(){Wa(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();Jn(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();Jn(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.isDestroyed=!0,this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),r=cast.framework.CastContext.getInstance();this.subscription.add(Md(r,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(i=>{switch(i.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=r.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 Bd(i.sessionState)}})).add(jI(Md(r,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(Cd(i=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(i)}`})}),Dd(i=>i.castState)),GI([r.getCastState()])).pipe(QI(),Dd(WI),Cd(i=>{this.log({message:`realCastState$: ${i}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(i=>{let s=i==="CONNECTED",n=Wa(this.connection$.getValue());if(s&&!n){let o=r.getCurrentSession();qI(o);let u=o.getCastDevice(),l=o.getMediaSession()?.media?.contentId;(Jn(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(i==="CONNECTED"?Wa(this.connection$.getValue())?"CONNECTED":"AVAILABLE":i)}))}initializeCastApi(){let e,t,r;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,r=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:r}),this.initListeners()}catch(i){this.errorEvent$.next({id:"ChromecastInitializer",category:Vd.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:i})}}},WI=a=>{switch(a){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 Bd(a)}};var Rl=D(He(),1),HS=D(xr(),1),jS=D(ko(),1);var Ff=D(Is(),1);import{assertNever as $f}from"@vkontakte/videoplayer-shared";var se=(a,e=0,t=0)=>{switch(t){case 0:return a.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return a;let r=new URL(a);return r.searchParams.append("playback_shift",e.toFixed(0)),r.toString()}case 2:{let r=new URL(a);return!r.searchParams.get("offset_p")&&e===0?a:(r.searchParams.set("offset_p",e.toFixed(0)),r.toString())}default:$f(t)}return a},Es=(a,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(a);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(a);return Number(t.searchParams.get("offset_p")??0)}default:$f(e)}};var T=(a,e,t=!1)=>{let r=a.getTransition();(t||!r||r.to===e)&&a.setState(e)};import{isNonNullable as tA,Subject as xs,merge as Mf}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new xs;this.transitionEnded$=new xs;this.transitionUpdated$=new xs;this.forceChanged$=new xs;this.stateChangeStarted$=Mf(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=Mf(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,r=this.state;this.transition=void 0,this.prevState=r,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:r,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,r=this.state;r===e||tA(t)&&t.to===e||(this.prevState=r,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:r,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as rA}from"@vkontakte/videoplayer-shared";var Df=a=>{switch(a){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 rA(a)}};import{assertNever as Cr,assertNonNullable as Xt,debounce as Cf,ErrorCategory as Vf,fromEvent as Jt,isNonNullable as Bf,map as Of,merge as _f,observableFrom as iA,Subject as aA,Subscription as pu,timeout as sA,getHighestQuality as nA}from"@vkontakte/videoplayer-shared";var oA=5,uA=5,lA=500,Nf=7e3,Ii=class{constructor(e){this.subscription=new pu;this.loadMediaTimeoutSubscription=new pu;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),r=this.params.desiredState.playbackState.getState(),i=this.params.desiredState.playbackState.getTransition(),s=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${r}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(s)};`}),r==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(i?.to!=="paused"&&s.state==="requested"&&e!=="stopped"){this.seek(s.position/1e3);return}switch(r){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Cr(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:Cr(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:Cr(e)}break}default:Cr(r)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(Df(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 pu;this.subscription.add(e),this.subscription.add(_f(this.videoState.stateChangeStarted$.pipe(Of(i=>`stateChangeStarted$ ${JSON.stringify(i)}`)),this.videoState.stateChangeEnded$.pipe(Of(i=>`stateChangeEnded$ ${JSON.stringify(i)}`))).subscribe(i=>this.log({message:`[videoState] ${i}`})));let t=(i,s)=>this.subscription.add(i.subscribe(s));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let i=new aA;e.add(i.pipe(Cf(lA)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let s=NaN;e.add(Jt(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)>oA)&&i.next(o),s=o})),e.add(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(n=>{this.logRemoteEvent(n),this.params.output.duration$.next(n.value)}))}t(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),i=>{this.logRemoteEvent(i),i.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),i=>{this.logRemoteEvent(i),i.value?this.handleRemotePause():this.handleRemotePlay()}),t(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),i=>{this.logRemoteEvent(i);let{remotePlayer:s}=this.params.connection,n=i.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<uA&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),T(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:Cr(n)}}),t(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),i=>{this.logRemoteEvent(i),this.handleRemoteVolumeChange({volume:i.value})}),t(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),i=>{this.logRemoteEvent(i),this.handleRemoteVolumeChange({muted:i.value})});let r=_f(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,iA(["init"])).pipe(Cf(0));t(r,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"),T(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),T(this.params.desiredState.playbackState,"playing"));let r=this.params.output.isLive$.getValue();this.params.output.duration$.next(r?0:t.duration),this.params.output.position$.next(r?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),r=this.createLoadRequest(t);this.loadMedia(r)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),T(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),T(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&T(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),r={volume:e.volume??t.volume,muted:e.muted??t.muted};(r.volume!==t.volume||r.muted!==r.muted)&&this.params.output.volume$.next(r)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:r}=this.params.connection;t.currentTime=e,r.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,r,i,s;switch(e){case"MPEG":{let l=t[e];Xt(l);let d=nA(Object.keys(l));Xt(d);let c=l[d];Xt(c),r=c,i="video/mp4",s=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let l=t[e];Xt(l),r=l.url,i="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];Xt(l),r=l.url,i="application/dash+xml",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let l=t[e];Xt(l),r=l.url,i="application/dash+xml",s=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let l=t[e];Xt(l),r=se(l.url),i="application/x-mpegurl",s=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let l="Unsupported format for Chromecast",d=new Error(l);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:Vf.VIDEO_PIPELINE,message:l,thrown:d}),d}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return Cr(e)}let n=new chrome.cast.media.MediaInfo(this.params.meta.videoId??r,i);n.contentUrl=r,n.streamType=s,n.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:u}=this.params.meta;return Bf(o)&&(n.metadata.title=o),Bf(u)&&(n.metadata.subtitle=u),n}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let r=this.params.desiredState.seekState.getState();return r.state==="applying"||r.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:r.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),r=new Promise((i,s)=>{this.loadMediaTimeoutSubscription.add(sA(Nf).subscribe(()=>s(`timeout(${Nf})`)))});(0,Ff.default)(Promise.race([t,r]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},i=>{let s=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${i}`;this.log({message:s}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:Vf.VIDEO_PIPELINE,message:s,thrown:i})}),()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};var Mu=D(He(),1);import{clearVideoElement as Uf}from"@vkontakte/videoplayer-shared";import{clearVideoElement as cA}from"@vkontakte/videoplayer-shared";var qf=a=>{try{a.pause(),a.playbackRate=0,cA(a),a.remove()}catch(e){console.error(e)}};import{fromEvent as dA,Subscription as pA}from"@vkontakte/videoplayer-shared";var hu=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)}},mu=window.WeakMap?new WeakMap:new hu,fu=window.WeakMap?new WeakMap:new Map,hA=(a,e=20)=>{let t=0;return dA(a,"ratechange").subscribe(r=>{t++,t>=e&&(a.currentTime=a.currentTime,t=0)})},fe=(a,{audioVideoSyncRate:e})=>{let t=a.querySelector("video"),r=!!t;t?Uf(t):(t=document.createElement("video"),a.appendChild(t)),mu.set(t,r);let i=new pA;return i.add(hA(t,e)),fu.set(t,i),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.setAttribute("x-yandex-pip","false"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},be=a=>{fu.get(a)?.unsubscribe(),fu.delete(a);let t=mu.get(a);mu.delete(a),t?Uf(a):qf(a)};var gu=D(Vr(),1);import{assertNonNullable as Ei,isNonNullable as tt,isNullable as TA,fromEvent as Br,merge as zf,observableFrom as Kf,filterChanged as Xf,map as xi,Subject as Jf,Subscription as IA,ValueSubject as EA,ErrorCategory as xA}from"@vkontakte/videoplayer-shared";import{isNonNullable as bu,isNullable as SA,Subscription as yA}from"@vkontakte/videoplayer-shared";var Ps=(a,e,t,{equal:r=(n,o)=>n===o,changed$:i,onError:s}={})=>{let n=a.getState(),o=e(),u=SA(i),l=new yA;return i&&l.add(i.subscribe(d=>{let c=a.getState();r(d,c)&&a.setState(d)},s)),r(o,n)||(t(n),u&&a.setState(n)),l.add(a.stateChangeStarted$.subscribe(d=>{t(d.to),u&&a.setState(d.to)},s)),l},et=(a,e,t)=>Ps(e,()=>a.loop,r=>{bu(r)&&(a.loop=r)},{onError:t}),ge=(a,e,t,r)=>Ps(e,()=>({muted:a.muted,volume:a.volume}),i=>{bu(i)&&(a.muted=i.muted,a.volume=i.volume)},{equal:(i,s)=>i===s||i?.muted===s?.muted&&i?.volume===s?.volume,changed$:t,onError:r}),$e=(a,e,t,r)=>Ps(e,()=>a.playbackRate,i=>{bu(i)&&(a.playbackRate=i)},{changed$:t,onError:r}),xt=Ps;var PA=a=>["__",a.language,a.label].join("|"),kA=(a,e)=>{if(a.id===e)return!0;let[t,r,i]=e.split("|");return a.language===r&&a.label===i},vu=class a{constructor(e){this.available$=new Jf;this.current$=new EA(void 0);this.error$=new Jf;this.subscription=new IA;this.externalTracks=new Map;this.internalTracks=new Map;this.baseURL=e}connect(e,t,r){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let i=s=>{this.error$.next({id:"TextTracksManager",category:xA.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:s})};this.subscription.add(this.available$.subscribe(r.availableTextTracks$)),this.subscription.add(this.current$.subscribe(r.currentTextTrack$)),this.subscription.add(this.error$.subscribe(r.error$)),this.subscription.add(xt(t.internalTextTracks,()=>(0,gu.default)(this.internalTracks),s=>{tt(s)&&this.setInternal(s)},{equal:(s,n)=>tt(s)&&tt(n)&&s.length===n.length&&s.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(xi(s=>s.filter(({type:n})=>n==="internal"))),onError:i})),this.subscription.add(xt(t.externalTextTracks,()=>(0,gu.default)(this.externalTracks),s=>{tt(s)&&this.setExternal(s)},{equal:(s,n)=>tt(s)&&tt(n)&&s.length===n.length&&s.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(xi(s=>s.filter(({type:n})=>n==="external"))),onError:i})),this.subscription.add(xt(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:i})),this.subscription.add(xt(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let s of this.htmlTextTracksAsArray())this.applyCueSettings(s.cues),this.applyCueSettings(s.activeCues)}))}subscribe(){Ei(this.video);let{textTracks:e}=this.video;this.subscription.add(Br(e,"addtrack").subscribe(()=>{let r=this.current$.getValue();r&&this.select(r)})),this.subscription.add(zf(Br(e,"addtrack"),Br(e,"removetrack"),Kf(["init"])).pipe(xi(()=>this.htmlTextTracksAsArray().map(r=>this.htmlTextTrackToITextTrack(r))),Xf((r,i)=>r.length===i.length&&r.every(({id:s},n)=>s===i[n].id))).subscribe(this.available$)),this.subscription.add(zf(Br(e,"change"),Kf(["init"])).pipe(xi(()=>this.htmlTextTracksAsArray().find(({mode:r})=>r==="showing")),xi(r=>r&&this.htmlTextTrackToITextTrack(r).id),Xf()).subscribe(this.current$));let t=r=>this.applyCueSettings(r.target?.activeCues??null);this.subscription.add(Br(e,"addtrack").subscribe(r=>{r.track?.addEventListener("cuechange",t);let i=s=>{let n=s.target?.cues??null;n&&n.length&&(this.applyCueSettings(s.target?.cues??null),s.target?.removeEventListener("cuechange",i))};r.track?.addEventListener("cuechange",i)})),this.subscription.add(Br(e,"removetrack").subscribe(r=>{r.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let r of Array.from(e)){let i=r;tt(t.align)&&(i.align=t.align),tt(t.position)&&(i.position=t.position),tt(t.size)&&(i.size=t.size),tt(t.line)&&(i.line=t.line)}}htmlTextTracksAsArray(e=!1){Ei(this.video);let t=[...this.video.textTracks];return e?t:t.filter(a.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:r}=e,i=e.id?e.id:PA(e),s=this.externalTracks.has(i),n=(s?this.externalTracks.get(i)?.isAuto:this.internalTracks.get(i)?.isAuto)??i.includes("auto");return s?{id:i,type:"external",isAuto:n,language:t,label:r,url:this.externalTracks.get(i)?.url}:{id:i,type:"internal",isAuto:n,language:t,label:r,url:this.internalTracks.get(i)?.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(r=>r.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:r,language:i,isAuto:s})=>!this.internalTracks.has(r)&&!t.some(([,n])=>n.language===i&&n.isAuto===s)).forEach(r=>this.attach(r)),Array.from(this.internalTracks).filter(([r])=>!e.find(i=>i.id===r)).forEach(([,r])=>this.detach(r))}select(e){Ei(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(TA(e)||!kA(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){Ei(this.video);let t=document.createElement("track");this.baseURL?t.setAttribute("src",new URL(e.url,this.baseURL).toString()):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){Ei(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),r=>r.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)}},Me=vu;var dt=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 Zf=a=>{let e=a;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Su=a=>{let e=Zf(a);return!!(e&&e.fullscreenElement&&e.fullscreenElement===a)},eb=a=>{let e=Zf(a);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===a)};import{fromEvent as De,map as Pt,merge as rb,filterChanged as AA,isNonNullable as ib,Subject as RA,filter as ab,mapTo as sb,combine as LA,once as $A,ErrorCategory as MA,ValueSubject as nb,clientChecker as DA}from"@vkontakte/videoplayer-shared";var wA=3,tb=(a,e,t=wA)=>{let r=0,i=0;for(let s=0;s<a.length;s++){let n=a.start(s),o=a.end(s);if(n<=e&&e<=o){if(r=n,i=o,!t)return{from:r,to:i};for(let u=s-1;u>=0;u--)a.end(u)+t>=r&&(r=a.start(u));for(let u=s+1;u<a.length;u++)a.start(u)-t<=i&&(i=a.end(u))}}return{from:r,to:i}};var ve=a=>{let e=P=>De(a,P).pipe(sb(void 0)),r=rb(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(P=>De(a,P))).pipe(Pt(P=>P.type==="ended"?a.readyState<2:a.readyState<3),AA()),i=rb(De(a,"progress"),De(a,"timeupdate")).pipe(Pt(()=>tb(a.buffered,a.currentTime))),s=DA.isSafari?LA({play:e("play").pipe($A()),playing:e("playing")}).pipe(sb(void 0)):e("playing"),n=De(a,"volumechange").pipe(Pt(()=>({muted:a.muted,volume:a.volume}))),o=De(a,"ratechange").pipe(Pt(()=>a.playbackRate)),u=De(a,"error").pipe(ab(()=>!!(a.error||a.played.length)),Pt(()=>{let P=a.error;return{id:P?`MediaError#${P.code}`:"HtmlVideoError",category:MA.VIDEO_PIPELINE,message:P?P.message:"Error event from HTML video element",thrown:a.error??void 0}})),l=De(a,"timeupdate").pipe(Pt(()=>a.currentTime)),d=new RA,c=.3,p;l.subscribe(P=>{a.loop&&ib(p)&&ib(P)&&p>=a.duration-c&&P<=c&&d.next(p),p=P});let m=e("pause").pipe(ab(()=>!a.error&&p!==a.duration)),f=De(a,"enterpictureinpicture"),b=De(a,"leavepictureinpicture"),g=new nb(eb(a));f.subscribe(()=>g.next(!0)),b.subscribe(()=>g.next(!1));let v=new nb(Su(a));return De(a,"fullscreenchange").pipe(Pt(()=>Su(a))).subscribe(v),{playing$:s,pause$:m,canplay$:e("canplay"),ended$:e("ended"),looped$:d,error$:u,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:l,durationChange$:De(a,"durationchange").pipe(Pt(()=>a.duration)),isBuffering$:r,currentBuffer$:i,volumeState$:n,playbackRateState$:o,inPiP$:g,inFullscreen$:v,enterPip$:f,leavePip$:b}};import{VideoQuality as kt}from"@vkontakte/videoplayer-shared";var wt=a=>{switch(a){case"mobile":return kt.Q_144P;case"lowest":return kt.Q_240P;case"low":return kt.Q_360P;case"sd":case"medium":return kt.Q_480P;case"hd":case"high":return kt.Q_720P;case"fullhd":case"full":return kt.Q_1080P;case"quadhd":case"quad":return kt.Q_1440P;case"ultrahd":case"ultra":return kt.Q_2160P}};var At=D(Or(),1),Sb=D(He(),1),ks=D(xr(),1);import{isNonNullable as Z,isNullable as Tu,now as yb,isHigher as Iu,isHigherOrEqual as Eu,isInvariantQuality as bb,isLower as gb,isLowerOrEqual as xu,videoSizeToQuality as UA,assertNotEmptyArray as Tb,assertNonNullable as HA}from"@vkontakte/videoplayer-shared";var yu=!1,pt={},hb=a=>{yu=a},mb=()=>{pt={}},fb=a=>{a(pt)},Pi=(a,e)=>{yu&&(pt.meta=pt.meta??{},pt.meta[a]=e)},ce=class{constructor(e){this.name=e}next(e){if(!yu)return;pt.series=pt.series??{};let t=pt.series[this.name]??[];t.push([Date.now(),e]),pt.series[this.name]=t}};var jA=new ce("best_bitrate"),Ib=(a,e,t)=>(e-t)*Math.pow(2,-10*a)+t;var Pu=a=>(e,t)=>a*(Number(e.bitrate)-Number(t.bitrate)),ki=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=yb()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},Eb='Assertion "ABR Tracks is empty array" failed',ws=(a,e,t,r)=>{let i=[...e].sort(Pu(1)),s=[...t].sort(Pu(1)),n=s.filter(u=>Z(u.bitrate)&&Z(a.bitrate)?a.bitrate/u.bitrate>r:!0),o=(0,At.default)(s,Math.round(s.length*i.indexOf(a)/(i.length+1)))??(0,At.default)(s,-1);return o&&(0,Sb.default)(n,o)?o:n.length?(0,At.default)(n,-1):(0,At.default)(s,0)},vb=a=>"quality"in a,xb=(a,e,t,r)=>{let i=Z(r?.last?.bitrate)&&Z(t?.bitrate)&&r.last.bitrate<t.bitrate?a.trackCooldownIncreaseQuality:a.trackCooldownDecreaseQuality,s=t&&r&&r.history[t.id]&&yb()-r.history[t.id]<=i&&(!r.last||t.id!==r.last.id);if(t?.id&&r&&!s&&r.recordSelection(t),s&&r?.last){let n=r.last;r?.recordSwitch(n);let o=vb(n)?"video":"audio",u=vb(n)?n.quality:n.bitrate;return e({message:`
6
+ var my=Object.create;var Ol=Object.defineProperty;var fy=Object.getOwnPropertyDescriptor;var by=Object.getOwnPropertyNames;var gy=Object.getPrototypeOf,vy=Object.prototype.hasOwnProperty;var h=(a,e)=>()=>(e||a((e={exports:{}}).exports,e),e.exports);var Sy=(a,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of by(e))!vy.call(a,i)&&i!==t&&Ol(a,i,{get:()=>e[i],enumerable:!(r=fy(e,i))||r.enumerable});return a};var D=(a,e,t)=>(t=a!=null?my(gy(a)):{},Sy(e||!a||!a.__esModule?Ol(t,"default",{value:a,enumerable:!0}):t,a));var Y=h((yn,Nl)=>{"use strict";var Zr=function(a){return a&&a.Math===Math&&a};Nl.exports=Zr(typeof globalThis=="object"&&globalThis)||Zr(typeof window=="object"&&window)||Zr(typeof self=="object"&&self)||Zr(typeof global=="object"&&global)||Zr(typeof yn=="object"&&yn)||function(){return this}()||Function("return this")()});var ie=h((YD,Fl)=>{"use strict";Fl.exports=function(a){try{return!!a()}catch{return!0}}});var ei=h((zD,ql)=>{"use strict";var yy=ie();ql.exports=!yy(function(){var a=function(){}.bind();return typeof a!="function"||a.hasOwnProperty("prototype")})});var Tn=h((KD,Gl)=>{"use strict";var Ty=ei(),jl=Function.prototype,Ul=jl.apply,Hl=jl.call;Gl.exports=typeof Reflect=="object"&&Reflect.apply||(Ty?Hl.bind(Ul):function(){return Hl.apply(Ul,arguments)})});var J=h((XD,Yl)=>{"use strict";var Ql=ei(),Wl=Function.prototype,In=Wl.call,Iy=Ql&&Wl.bind.bind(In,In);Yl.exports=Ql?Iy:function(a){return function(){return In.apply(a,arguments)}}});var Ut=h((JD,Kl)=>{"use strict";var zl=J(),Ey=zl({}.toString),xy=zl("".slice);Kl.exports=function(a){return xy(Ey(a),8,-1)}});var En=h((ZD,Xl)=>{"use strict";var Py=Ut(),ky=J();Xl.exports=function(a){if(Py(a)==="Function")return ky(a)}});var W=h((e0,Jl)=>{"use strict";var xn=typeof document=="object"&&document.all;Jl.exports=typeof xn>"u"&&xn!==void 0?function(a){return typeof a=="function"||a===xn}:function(a){return typeof a=="function"}});var Pe=h((t0,Zl)=>{"use strict";var wy=ie();Zl.exports=!wy(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var ke=h((r0,ec)=>{"use strict";var Ay=ei(),Ha=Function.prototype.call;ec.exports=Ay?Ha.bind(Ha):function(){return Ha.apply(Ha,arguments)}});var Pn=h(ic=>{"use strict";var tc={}.propertyIsEnumerable,rc=Object.getOwnPropertyDescriptor,Ry=rc&&!tc.call({1:2},1);ic.f=Ry?function(e){var t=rc(this,e);return!!t&&t.enumerable}:tc});var ti=h((a0,ac)=>{"use strict";ac.exports=function(a,e){return{enumerable:!(a&1),configurable:!(a&2),writable:!(a&4),value:e}}});var nc=h((s0,sc)=>{"use strict";var Ly=J(),$y=ie(),My=Ut(),kn=Object,Dy=Ly("".split);sc.exports=$y(function(){return!kn("z").propertyIsEnumerable(0)})?function(a){return My(a)==="String"?Dy(a,""):kn(a)}:kn});var fr=h((n0,oc)=>{"use strict";oc.exports=function(a){return a==null}});var Tt=h((o0,uc)=>{"use strict";var Cy=fr(),Vy=TypeError;uc.exports=function(a){if(Cy(a))throw new Vy("Can't call method on "+a);return a}});var Ht=h((u0,lc)=>{"use strict";var By=nc(),Oy=Tt();lc.exports=function(a){return By(Oy(a))}});var we=h((l0,cc)=>{"use strict";var _y=W();cc.exports=function(a){return typeof a=="object"?a!==null:_y(a)}});var br=h((c0,dc)=>{"use strict";dc.exports={}});var ut=h((d0,hc)=>{"use strict";var wn=br(),An=Y(),Ny=W(),pc=function(a){return Ny(a)?a:void 0};hc.exports=function(a,e){return arguments.length<2?pc(wn[a])||pc(An[a]):wn[a]&&wn[a][e]||An[a]&&An[a][e]}});var ri=h((p0,mc)=>{"use strict";var Fy=J();mc.exports=Fy({}.isPrototypeOf)});var jt=h((h0,gc)=>{"use strict";var qy=Y(),fc=qy.navigator,bc=fc&&fc.userAgent;gc.exports=bc?String(bc):""});var Ln=h((m0,Ec)=>{"use strict";var Ic=Y(),Rn=jt(),vc=Ic.process,Sc=Ic.Deno,yc=vc&&vc.versions||Sc&&Sc.version,Tc=yc&&yc.v8,Fe,ja;Tc&&(Fe=Tc.split("."),ja=Fe[0]>0&&Fe[0]<4?1:+(Fe[0]+Fe[1]));!ja&&Rn&&(Fe=Rn.match(/Edge\/(\d+)/),(!Fe||Fe[1]>=74)&&(Fe=Rn.match(/Chrome\/(\d+)/),Fe&&(ja=+Fe[1])));Ec.exports=ja});var $n=h((f0,Pc)=>{"use strict";var xc=Ln(),Uy=ie(),Hy=Y(),jy=Hy.String;Pc.exports=!!Object.getOwnPropertySymbols&&!Uy(function(){var a=Symbol("symbol detection");return!jy(a)||!(Object(a)instanceof Symbol)||!Symbol.sham&&xc&&xc<41})});var Mn=h((b0,kc)=>{"use strict";var Gy=$n();kc.exports=Gy&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var Dn=h((g0,wc)=>{"use strict";var Qy=ut(),Wy=W(),Yy=ri(),zy=Mn(),Ky=Object;wc.exports=zy?function(a){return typeof a=="symbol"}:function(a){var e=Qy("Symbol");return Wy(e)&&Yy(e.prototype,Ky(a))}});var ii=h((v0,Ac)=>{"use strict";var Xy=String;Ac.exports=function(a){try{return Xy(a)}catch{return"Object"}}});var Je=h((S0,Rc)=>{"use strict";var Jy=W(),Zy=ii(),eT=TypeError;Rc.exports=function(a){if(Jy(a))return a;throw new eT(Zy(a)+" is not a function")}});var ai=h((y0,Lc)=>{"use strict";var tT=Je(),rT=fr();Lc.exports=function(a,e){var t=a[e];return rT(t)?void 0:tT(t)}});var Mc=h((T0,$c)=>{"use strict";var Cn=ke(),Vn=W(),Bn=we(),iT=TypeError;$c.exports=function(a,e){var t,r;if(e==="string"&&Vn(t=a.toString)&&!Bn(r=Cn(t,a))||Vn(t=a.valueOf)&&!Bn(r=Cn(t,a))||e!=="string"&&Vn(t=a.toString)&&!Bn(r=Cn(t,a)))return r;throw new iT("Can't convert object to primitive value")}});var qe=h((I0,Dc)=>{"use strict";Dc.exports=!0});var Bc=h((E0,Vc)=>{"use strict";var Cc=Y(),aT=Object.defineProperty;Vc.exports=function(a,e){try{aT(Cc,a,{value:e,configurable:!0,writable:!0})}catch{Cc[a]=e}return e}});var si=h((x0,Nc)=>{"use strict";var sT=qe(),nT=Y(),oT=Bc(),Oc="__core-js_shared__",_c=Nc.exports=nT[Oc]||oT(Oc,{});(_c.versions||(_c.versions=[])).push({version:"3.38.0",mode:sT?"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 On=h((P0,qc)=>{"use strict";var Fc=si();qc.exports=function(a,e){return Fc[a]||(Fc[a]=e||{})}});var gr=h((k0,Uc)=>{"use strict";var uT=Tt(),lT=Object;Uc.exports=function(a){return lT(uT(a))}});var Ue=h((w0,Hc)=>{"use strict";var cT=J(),dT=gr(),pT=cT({}.hasOwnProperty);Hc.exports=Object.hasOwn||function(e,t){return pT(dT(e),t)}});var _n=h((A0,jc)=>{"use strict";var hT=J(),mT=0,fT=Math.random(),bT=hT(1 .toString);jc.exports=function(a){return"Symbol("+(a===void 0?"":a)+")_"+bT(++mT+fT,36)}});var ae=h((R0,Qc)=>{"use strict";var gT=Y(),vT=On(),Gc=Ue(),ST=_n(),yT=$n(),TT=Mn(),vr=gT.Symbol,Nn=vT("wks"),IT=TT?vr.for||vr:vr&&vr.withoutSetter||ST;Qc.exports=function(a){return Gc(Nn,a)||(Nn[a]=yT&&Gc(vr,a)?vr[a]:IT("Symbol."+a)),Nn[a]}});var Kc=h((L0,zc)=>{"use strict";var ET=ke(),Wc=we(),Yc=Dn(),xT=ai(),PT=Mc(),kT=ae(),wT=TypeError,AT=kT("toPrimitive");zc.exports=function(a,e){if(!Wc(a)||Yc(a))return a;var t=xT(a,AT),r;if(t){if(e===void 0&&(e="default"),r=ET(t,a,e),!Wc(r)||Yc(r))return r;throw new wT("Can't convert object to primitive value")}return e===void 0&&(e="number"),PT(a,e)}});var Fn=h(($0,Xc)=>{"use strict";var RT=Kc(),LT=Dn();Xc.exports=function(a){var e=RT(a,"string");return LT(e)?e:e+""}});var Ga=h((M0,Zc)=>{"use strict";var $T=Y(),Jc=we(),qn=$T.document,MT=Jc(qn)&&Jc(qn.createElement);Zc.exports=function(a){return MT?qn.createElement(a):{}}});var Un=h((D0,ed)=>{"use strict";var DT=Pe(),CT=ie(),VT=Ga();ed.exports=!DT&&!CT(function(){return Object.defineProperty(VT("div"),"a",{get:function(){return 7}}).a!==7})});var id=h(rd=>{"use strict";var BT=Pe(),OT=ke(),_T=Pn(),NT=ti(),FT=Ht(),qT=Fn(),UT=Ue(),HT=Un(),td=Object.getOwnPropertyDescriptor;rd.f=BT?td:function(e,t){if(e=FT(e),t=qT(t),HT)try{return td(e,t)}catch{}if(UT(e,t))return NT(!OT(_T.f,e,t),e[t])}});var Hn=h((V0,ad)=>{"use strict";var jT=ie(),GT=W(),QT=/#|\.prototype\./,ni=function(a,e){var t=YT[WT(a)];return t===KT?!0:t===zT?!1:GT(e)?jT(e):!!e},WT=ni.normalize=function(a){return String(a).replace(QT,".").toLowerCase()},YT=ni.data={},zT=ni.NATIVE="N",KT=ni.POLYFILL="P";ad.exports=ni});var Sr=h((B0,nd)=>{"use strict";var sd=En(),XT=Je(),JT=ei(),ZT=sd(sd.bind);nd.exports=function(a,e){return XT(a),e===void 0?a:JT?ZT(a,e):function(){return a.apply(e,arguments)}}});var jn=h((O0,od)=>{"use strict";var eI=Pe(),tI=ie();od.exports=eI&&tI(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Ze=h((_0,ud)=>{"use strict";var rI=we(),iI=String,aI=TypeError;ud.exports=function(a){if(rI(a))return a;throw new aI(iI(a)+" is not an object")}});var Gt=h(cd=>{"use strict";var sI=Pe(),nI=Un(),oI=jn(),Qa=Ze(),ld=Fn(),uI=TypeError,Gn=Object.defineProperty,lI=Object.getOwnPropertyDescriptor,Qn="enumerable",Wn="configurable",Yn="writable";cd.f=sI?oI?function(e,t,r){if(Qa(e),t=ld(t),Qa(r),typeof e=="function"&&t==="prototype"&&"value"in r&&Yn in r&&!r[Yn]){var i=lI(e,t);i&&i[Yn]&&(e[t]=r.value,r={configurable:Wn in r?r[Wn]:i[Wn],enumerable:Qn in r?r[Qn]:i[Qn],writable:!1})}return Gn(e,t,r)}:Gn:function(e,t,r){if(Qa(e),t=ld(t),Qa(r),nI)try{return Gn(e,t,r)}catch{}if("get"in r||"set"in r)throw new uI("Accessors not supported");return"value"in r&&(e[t]=r.value),e}});var yr=h((F0,dd)=>{"use strict";var cI=Pe(),dI=Gt(),pI=ti();dd.exports=cI?function(a,e,t){return dI.f(a,e,pI(1,t))}:function(a,e,t){return a[e]=t,a}});var K=h((q0,hd)=>{"use strict";var oi=Y(),hI=Tn(),mI=En(),fI=W(),bI=id().f,gI=Hn(),Tr=br(),vI=Sr(),Ir=yr(),pd=Ue();si();var SI=function(a){var e=function(t,r,i){if(this instanceof e){switch(arguments.length){case 0:return new a;case 1:return new a(t);case 2:return new a(t,r)}return new a(t,r,i)}return hI(a,this,arguments)};return e.prototype=a.prototype,e};hd.exports=function(a,e){var t=a.target,r=a.global,i=a.stat,s=a.proto,n=r?oi:i?oi[t]:oi[t]&&oi[t].prototype,o=r?Tr:Tr[t]||Ir(Tr,t,{})[t],u=o.prototype,l,d,c,p,m,f,b,g,v;for(p in e)l=gI(r?p:t+(i?".":"#")+p,a.forced),d=!l&&n&&pd(n,p),f=o[p],d&&(a.dontCallGetSet?(v=bI(n,p),b=v&&v.value):b=n[p]),m=d&&b?b:e[p],!(!l&&!s&&typeof f==typeof m)&&(a.bind&&d?g=vI(m,oi):a.wrap&&d?g=SI(m):s&&fI(m)?g=mI(m):g=m,(a.sham||m&&m.sham||f&&f.sham)&&Ir(g,"sham",!0),Ir(o,p,g),s&&(c=t+"Prototype",pd(Tr,c)||Ir(Tr,c,{}),Ir(Tr[c],p,m),a.real&&u&&(l||!u[p])&&Ir(u,p,m)))}});var fd=h((U0,md)=>{"use strict";var yI=Math.ceil,TI=Math.floor;md.exports=Math.trunc||function(e){var t=+e;return(t>0?TI:yI)(t)}});var ui=h((H0,bd)=>{"use strict";var II=fd();bd.exports=function(a){var e=+a;return e!==e||e===0?0:II(e)}});var vd=h((j0,gd)=>{"use strict";var EI=ui(),xI=Math.max,PI=Math.min;gd.exports=function(a,e){var t=EI(a);return t<0?xI(t+e,0):PI(t,e)}});var zn=h((G0,Sd)=>{"use strict";var kI=ui(),wI=Math.min;Sd.exports=function(a){var e=kI(a);return e>0?wI(e,9007199254740991):0}});var Er=h((Q0,yd)=>{"use strict";var AI=zn();yd.exports=function(a){return AI(a.length)}});var Kn=h((W0,Id)=>{"use strict";var RI=Ht(),LI=vd(),$I=Er(),Td=function(a){return function(e,t,r){var i=RI(e),s=$I(i);if(s===0)return!a&&-1;var n=LI(r,s),o;if(a&&t!==t){for(;s>n;)if(o=i[n++],o!==o)return!0}else for(;s>n;n++)if((a||n in i)&&i[n]===t)return a||n||0;return!a&&-1}};Id.exports={includes:Td(!0),indexOf:Td(!1)}});var li=h((Y0,Ed)=>{"use strict";Ed.exports=function(){}});var xd=h(()=>{"use strict";var MI=K(),DI=Kn().includes,CI=ie(),VI=li(),BI=CI(function(){return!Array(1).includes()});MI({target:"Array",proto:!0,forced:BI},{includes:function(e){return DI(this,e,arguments.length>1?arguments[1]:void 0)}});VI("includes")});var It=h((X0,Pd)=>{"use strict";var OI=ut();Pd.exports=OI});var wd=h((J0,kd)=>{"use strict";xd();var _I=It();kd.exports=_I("Array","includes")});var Rd=h((Z0,Ad)=>{"use strict";var NI=wd();Ad.exports=NI});var He=h((eC,Ld)=>{"use strict";var FI=Rd();Ld.exports=FI});var za=h((pC,_d)=>{"use strict";var YI=On(),zI=_n(),Od=YI("keys");_d.exports=function(a){return Od[a]||(Od[a]=zI(a))}});var Fd=h((hC,Nd)=>{"use strict";var KI=ie();Nd.exports=!KI(function(){function a(){}return a.prototype.constructor=null,Object.getPrototypeOf(new a)!==a.prototype})});var Ka=h((mC,Ud)=>{"use strict";var XI=Ue(),JI=W(),ZI=gr(),eE=za(),tE=Fd(),qd=eE("IE_PROTO"),Zn=Object,rE=Zn.prototype;Ud.exports=tE?Zn.getPrototypeOf:function(a){var e=ZI(a);if(XI(e,qd))return e[qd];var t=e.constructor;return JI(t)&&e instanceof t?t.prototype:e instanceof Zn?rE:null}});var Xa=h((fC,Hd)=>{"use strict";Hd.exports={}});var Qd=h((bC,Gd)=>{"use strict";var iE=J(),eo=Ue(),aE=Ht(),sE=Kn().indexOf,nE=Xa(),jd=iE([].push);Gd.exports=function(a,e){var t=aE(a),r=0,i=[],s;for(s in t)!eo(nE,s)&&eo(t,s)&&jd(i,s);for(;e.length>r;)eo(t,s=e[r++])&&(~sE(i,s)||jd(i,s));return i}});var to=h((gC,Wd)=>{"use strict";Wd.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var ro=h((vC,Yd)=>{"use strict";var oE=Qd(),uE=to();Yd.exports=Object.keys||function(e){return oE(e,uE)}});var io=h((SC,Zd)=>{"use strict";var Kd=Pe(),lE=ie(),Xd=J(),cE=Ka(),dE=ro(),pE=Ht(),hE=Pn().f,Jd=Xd(hE),mE=Xd([].push),fE=Kd&&lE(function(){var a=Object.create(null);return a[2]=2,!Jd(a,2)}),zd=function(a){return function(e){for(var t=pE(e),r=dE(t),i=fE&&cE(t)===null,s=r.length,n=0,o=[],u;s>n;)u=r[n++],(!Kd||(i?u in t:Jd(t,u)))&&mE(o,a?[u,t[u]]:t[u]);return o}};Zd.exports={entries:zd(!0),values:zd(!1)}});var ep=h(()=>{"use strict";var bE=K(),gE=io().entries;bE({target:"Object",stat:!0},{entries:function(e){return gE(e)}})});var rp=h((IC,tp)=>{"use strict";ep();var vE=br();tp.exports=vE.Object.entries});var ap=h((EC,ip)=>{"use strict";var SE=rp();ip.exports=SE});var xr=h((xC,sp)=>{"use strict";var yE=ap();sp.exports=yE});var Qt=h((PC,np)=>{"use strict";np.exports={}});var lp=h((kC,up)=>{"use strict";var TE=Y(),IE=W(),op=TE.WeakMap;up.exports=IE(op)&&/native code/.test(String(op))});var oo=h((wC,pp)=>{"use strict";var EE=lp(),dp=Y(),xE=we(),PE=yr(),ao=Ue(),so=si(),kE=za(),wE=Xa(),cp="Object already initialized",no=dp.TypeError,AE=dp.WeakMap,Ja,ci,Za,RE=function(a){return Za(a)?ci(a):Ja(a,{})},LE=function(a){return function(e){var t;if(!xE(e)||(t=ci(e)).type!==a)throw new no("Incompatible receiver, "+a+" required");return t}};EE||so.state?(je=so.state||(so.state=new AE),je.get=je.get,je.has=je.has,je.set=je.set,Ja=function(a,e){if(je.has(a))throw new no(cp);return e.facade=a,je.set(a,e),e},ci=function(a){return je.get(a)||{}},Za=function(a){return je.has(a)}):(Wt=kE("state"),wE[Wt]=!0,Ja=function(a,e){if(ao(a,Wt))throw new no(cp);return e.facade=a,PE(a,Wt,e),e},ci=function(a){return ao(a,Wt)?a[Wt]:{}},Za=function(a){return ao(a,Wt)});var je,Wt;pp.exports={set:Ja,get:ci,has:Za,enforce:RE,getterFor:LE}});var co=h((AC,mp)=>{"use strict";var uo=Pe(),$E=Ue(),hp=Function.prototype,ME=uo&&Object.getOwnPropertyDescriptor,lo=$E(hp,"name"),DE=lo&&function(){}.name==="something",CE=lo&&(!uo||uo&&ME(hp,"name").configurable);mp.exports={EXISTS:lo,PROPER:DE,CONFIGURABLE:CE}});var bp=h(fp=>{"use strict";var VE=Pe(),BE=jn(),OE=Gt(),_E=Ze(),NE=Ht(),FE=ro();fp.f=VE&&!BE?Object.defineProperties:function(e,t){_E(e);for(var r=NE(t),i=FE(t),s=i.length,n=0,o;s>n;)OE.f(e,o=i[n++],r[o]);return e}});var po=h((LC,gp)=>{"use strict";var qE=ut();gp.exports=qE("document","documentElement")});var bo=h(($C,xp)=>{"use strict";var UE=Ze(),HE=bp(),vp=to(),jE=Xa(),GE=po(),QE=Ga(),WE=za(),Sp=">",yp="<",mo="prototype",fo="script",Ip=WE("IE_PROTO"),ho=function(){},Ep=function(a){return yp+fo+Sp+a+yp+"/"+fo+Sp},Tp=function(a){a.write(Ep("")),a.close();var e=a.parentWindow.Object;return a=null,e},YE=function(){var a=QE("iframe"),e="java"+fo+":",t;return a.style.display="none",GE.appendChild(a),a.src=String(e),t=a.contentWindow.document,t.open(),t.write(Ep("document.F=Object")),t.close(),t.F},es,ts=function(){try{es=new ActiveXObject("htmlfile")}catch{}ts=typeof document<"u"?document.domain&&es?Tp(es):YE():Tp(es);for(var a=vp.length;a--;)delete ts[mo][vp[a]];return ts()};jE[Ip]=!0;xp.exports=Object.create||function(e,t){var r;return e!==null?(ho[mo]=UE(e),r=new ho,ho[mo]=null,r[Ip]=e):r=ts(),t===void 0?r:HE.f(r,t)}});var Pr=h((MC,Pp)=>{"use strict";var zE=yr();Pp.exports=function(a,e,t,r){return r&&r.enumerable?a[e]=t:zE(a,e,t),a}});var yo=h((DC,Ap)=>{"use strict";var KE=ie(),XE=W(),JE=we(),ZE=bo(),kp=Ka(),ex=Pr(),tx=ae(),rx=qe(),So=tx("iterator"),wp=!1,lt,go,vo;[].keys&&(vo=[].keys(),"next"in vo?(go=kp(kp(vo)),go!==Object.prototype&&(lt=go)):wp=!0);var ix=!JE(lt)||KE(function(){var a={};return lt[So].call(a)!==a});ix?lt={}:rx&&(lt=ZE(lt));XE(lt[So])||ex(lt,So,function(){return this});Ap.exports={IteratorPrototype:lt,BUGGY_SAFARI_ITERATORS:wp}});var rs=h((CC,Lp)=>{"use strict";var ax=ae(),sx=ax("toStringTag"),Rp={};Rp[sx]="z";Lp.exports=String(Rp)==="[object z]"});var di=h((VC,$p)=>{"use strict";var nx=rs(),ox=W(),is=Ut(),ux=ae(),lx=ux("toStringTag"),cx=Object,dx=is(function(){return arguments}())==="Arguments",px=function(a,e){try{return a[e]}catch{}};$p.exports=nx?is:function(a){var e,t,r;return a===void 0?"Undefined":a===null?"Null":typeof(t=px(e=cx(a),lx))=="string"?t:dx?is(e):(r=is(e))==="Object"&&ox(e.callee)?"Arguments":r}});var Dp=h((BC,Mp)=>{"use strict";var hx=rs(),mx=di();Mp.exports=hx?{}.toString:function(){return"[object "+mx(this)+"]"}});var pi=h((OC,Vp)=>{"use strict";var fx=rs(),bx=Gt().f,gx=yr(),vx=Ue(),Sx=Dp(),yx=ae(),Cp=yx("toStringTag");Vp.exports=function(a,e,t,r){var i=t?a:a&&a.prototype;i&&(vx(i,Cp)||bx(i,Cp,{configurable:!0,value:e}),r&&!fx&&gx(i,"toString",Sx))}});var Op=h((_C,Bp)=>{"use strict";var Tx=yo().IteratorPrototype,Ix=bo(),Ex=ti(),xx=pi(),Px=Qt(),kx=function(){return this};Bp.exports=function(a,e,t,r){var i=e+" Iterator";return a.prototype=Ix(Tx,{next:Ex(+!r,t)}),xx(a,i,!1,!0),Px[i]=kx,a}});var Np=h((NC,_p)=>{"use strict";var wx=J(),Ax=Je();_p.exports=function(a,e,t){try{return wx(Ax(Object.getOwnPropertyDescriptor(a,e)[t]))}catch{}}});var qp=h((FC,Fp)=>{"use strict";var Rx=we();Fp.exports=function(a){return Rx(a)||a===null}});var Hp=h((qC,Up)=>{"use strict";var Lx=qp(),$x=String,Mx=TypeError;Up.exports=function(a){if(Lx(a))return a;throw new Mx("Can't set "+$x(a)+" as a prototype")}});var To=h((UC,jp)=>{"use strict";var Dx=Np(),Cx=we(),Vx=Tt(),Bx=Hp();jp.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var a=!1,e={},t;try{t=Dx(Object.prototype,"__proto__","set"),t(e,[]),a=e instanceof Array}catch{}return function(i,s){return Vx(i),Bx(s),Cx(i)&&(a?t(i,s):i.__proto__=s),i}}():void 0)});var th=h((HC,eh)=>{"use strict";var Ox=K(),_x=ke(),as=qe(),Jp=co(),Nx=W(),Fx=Op(),Gp=Ka(),Qp=To(),qx=pi(),Ux=yr(),Io=Pr(),Hx=ae(),Wp=Qt(),Zp=yo(),jx=Jp.PROPER,Gx=Jp.CONFIGURABLE,Yp=Zp.IteratorPrototype,ss=Zp.BUGGY_SAFARI_ITERATORS,hi=Hx("iterator"),zp="keys",mi="values",Kp="entries",Xp=function(){return this};eh.exports=function(a,e,t,r,i,s,n){Fx(t,e,r);var o=function(v){if(v===i&&p)return p;if(!ss&&v&&v in d)return d[v];switch(v){case zp:return function(){return new t(this,v)};case mi:return function(){return new t(this,v)};case Kp:return function(){return new t(this,v)}}return function(){return new t(this)}},u=e+" Iterator",l=!1,d=a.prototype,c=d[hi]||d["@@iterator"]||i&&d[i],p=!ss&&c||o(i),m=e==="Array"&&d.entries||c,f,b,g;if(m&&(f=Gp(m.call(new a)),f!==Object.prototype&&f.next&&(!as&&Gp(f)!==Yp&&(Qp?Qp(f,Yp):Nx(f[hi])||Io(f,hi,Xp)),qx(f,u,!0,!0),as&&(Wp[u]=Xp))),jx&&i===mi&&c&&c.name!==mi&&(!as&&Gx?Ux(d,"name",mi):(l=!0,p=function(){return _x(c,this)})),i)if(b={values:o(mi),keys:s?p:o(zp),entries:o(Kp)},n)for(g in b)(ss||l||!(g in d))&&Io(d,g,b[g]);else Ox({target:e,proto:!0,forced:ss||l},b);return(!as||n)&&d[hi]!==p&&Io(d,hi,p,{name:i}),Wp[e]=p,b}});var ih=h((jC,rh)=>{"use strict";rh.exports=function(a,e){return{value:a,done:e}}});var xo=h((GC,uh)=>{"use strict";var Qx=Ht(),Eo=li(),ah=Qt(),nh=oo(),Wx=Gt().f,Yx=th(),ns=ih(),zx=qe(),Kx=Pe(),oh="Array Iterator",Xx=nh.set,Jx=nh.getterFor(oh);uh.exports=Yx(Array,"Array",function(a,e){Xx(this,{type:oh,target:Qx(a),index:0,kind:e})},function(){var a=Jx(this),e=a.target,t=a.index++;if(!e||t>=e.length)return a.target=void 0,ns(void 0,!0);switch(a.kind){case"keys":return ns(t,!1);case"values":return ns(e[t],!1)}return ns([t,e[t]],!1)},"values");var sh=ah.Arguments=ah.Array;Eo("keys");Eo("values");Eo("entries");if(!zx&&Kx&&sh.name!=="values")try{Wx(sh,"name",{value:"values"})}catch{}});var ch=h((QC,lh)=>{"use strict";var Zx=ae(),eP=Qt(),tP=Zx("iterator"),rP=Array.prototype;lh.exports=function(a){return a!==void 0&&(eP.Array===a||rP[tP]===a)}});var Po=h((WC,ph)=>{"use strict";var iP=di(),dh=ai(),aP=fr(),sP=Qt(),nP=ae(),oP=nP("iterator");ph.exports=function(a){if(!aP(a))return dh(a,oP)||dh(a,"@@iterator")||sP[iP(a)]}});var mh=h((YC,hh)=>{"use strict";var uP=ke(),lP=Je(),cP=Ze(),dP=ii(),pP=Po(),hP=TypeError;hh.exports=function(a,e){var t=arguments.length<2?pP(a):e;if(lP(t))return cP(uP(t,a));throw new hP(dP(a)+" is not iterable")}});var gh=h((zC,bh)=>{"use strict";var mP=ke(),fh=Ze(),fP=ai();bh.exports=function(a,e,t){var r,i;fh(a);try{if(r=fP(a,"return"),!r){if(e==="throw")throw t;return t}r=mP(r,a)}catch(s){i=!0,r=s}if(e==="throw")throw t;if(i)throw r;return fh(r),t}});var us=h((KC,Th)=>{"use strict";var bP=Sr(),gP=ke(),vP=Ze(),SP=ii(),yP=ch(),TP=Er(),vh=ri(),IP=mh(),EP=Po(),Sh=gh(),xP=TypeError,os=function(a,e){this.stopped=a,this.result=e},yh=os.prototype;Th.exports=function(a,e,t){var r=t&&t.that,i=!!(t&&t.AS_ENTRIES),s=!!(t&&t.IS_RECORD),n=!!(t&&t.IS_ITERATOR),o=!!(t&&t.INTERRUPTED),u=bP(e,r),l,d,c,p,m,f,b,g=function(k){return l&&Sh(l,"normal",k),new os(!0,k)},v=function(k){return i?(vP(k),o?u(k[0],k[1],g):u(k[0],k[1])):o?u(k,g):u(k)};if(s)l=a.iterator;else if(n)l=a;else{if(d=EP(a),!d)throw new xP(SP(a)+" is not iterable");if(yP(d)){for(c=0,p=TP(a);p>c;c++)if(m=v(a[c]),m&&vh(yh,m))return m;return new os(!1)}l=IP(a,d)}for(f=s?a.next:l.next;!(b=gP(f,l)).done;){try{m=v(b.value)}catch(k){Sh(l,"throw",k)}if(typeof m=="object"&&m&&vh(yh,m))return m}return new os(!1)}});var Eh=h((XC,Ih)=>{"use strict";var PP=Pe(),kP=Gt(),wP=ti();Ih.exports=function(a,e,t){PP?kP.f(a,e,wP(0,t)):a[e]=t}});var xh=h(()=>{"use strict";var AP=K(),RP=us(),LP=Eh();AP({target:"Object",stat:!0},{fromEntries:function(e){var t={};return RP(e,function(r,i){LP(t,r,i)},{AS_ENTRIES:!0}),t}})});var kh=h((eV,Ph)=>{"use strict";xo();xh();var $P=br();Ph.exports=$P.Object.fromEntries});var Ah=h((tV,wh)=>{"use strict";wh.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 Lh=h(()=>{"use strict";xo();var MP=Ah(),DP=Y(),CP=pi(),Rh=Qt();for(ls in MP)CP(DP[ls],ls),Rh[ls]=Rh.Array;var ls});var Mh=h((aV,$h)=>{"use strict";var VP=kh();Lh();$h.exports=VP});var ko=h((sV,Dh)=>{"use strict";var BP=Mh();Dh.exports=BP});var Ch=h(()=>{"use strict"});var wo=h((uV,Vh)=>{"use strict";var fi=Y(),OP=jt(),_P=Ut(),cs=function(a){return OP.slice(0,a.length)===a};Vh.exports=function(){return cs("Bun/")?"BUN":cs("Cloudflare-Workers")?"CLOUDFLARE":cs("Deno/")?"DENO":cs("Node.js/")?"NODE":fi.Bun&&typeof Bun.version=="string"?"BUN":fi.Deno&&typeof Deno.version=="object"?"DENO":_P(fi.process)==="process"?"NODE":fi.window&&fi.document?"BROWSER":"REST"}()});var ds=h((lV,Bh)=>{"use strict";var NP=wo();Bh.exports=NP==="NODE"});var _h=h((cV,Oh)=>{"use strict";var FP=Gt();Oh.exports=function(a,e,t){return FP.f(a,e,t)}});var qh=h((dV,Fh)=>{"use strict";var qP=ut(),UP=_h(),HP=ae(),jP=Pe(),Nh=HP("species");Fh.exports=function(a){var e=qP(a);jP&&e&&!e[Nh]&&UP(e,Nh,{configurable:!0,get:function(){return this}})}});var Hh=h((pV,Uh)=>{"use strict";var GP=ri(),QP=TypeError;Uh.exports=function(a,e){if(GP(e,a))return a;throw new QP("Incorrect invocation")}});var Ro=h((hV,jh)=>{"use strict";var WP=J(),YP=W(),Ao=si(),zP=WP(Function.toString);YP(Ao.inspectSource)||(Ao.inspectSource=function(a){return zP(a)});jh.exports=Ao.inspectSource});var $o=h((mV,zh)=>{"use strict";var KP=J(),XP=ie(),Gh=W(),JP=di(),ZP=ut(),ek=Ro(),Qh=function(){},Wh=ZP("Reflect","construct"),Lo=/^\s*(?:class|function)\b/,tk=KP(Lo.exec),rk=!Lo.test(Qh),bi=function(e){if(!Gh(e))return!1;try{return Wh(Qh,[],e),!0}catch{return!1}},Yh=function(e){if(!Gh(e))return!1;switch(JP(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return rk||!!tk(Lo,ek(e))}catch{return!0}};Yh.sham=!0;zh.exports=!Wh||XP(function(){var a;return bi(bi.call)||!bi(Object)||!bi(function(){a=!0})||a})?Yh:bi});var Xh=h((fV,Kh)=>{"use strict";var ik=$o(),ak=ii(),sk=TypeError;Kh.exports=function(a){if(ik(a))return a;throw new sk(ak(a)+" is not a constructor")}});var Mo=h((bV,Zh)=>{"use strict";var Jh=Ze(),nk=Xh(),ok=fr(),uk=ae(),lk=uk("species");Zh.exports=function(a,e){var t=Jh(a).constructor,r;return t===void 0||ok(r=Jh(t)[lk])?e:nk(r)}});var tm=h((gV,em)=>{"use strict";var ck=J();em.exports=ck([].slice)});var im=h((vV,rm)=>{"use strict";var dk=TypeError;rm.exports=function(a,e){if(a<e)throw new dk("Not enough arguments");return a}});var Do=h((SV,am)=>{"use strict";var pk=jt();am.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(pk)});var Uo=h((yV,hm)=>{"use strict";var Ae=Y(),hk=Tn(),mk=Sr(),sm=W(),fk=Ue(),pm=ie(),nm=po(),bk=tm(),om=Ga(),gk=im(),vk=Do(),Sk=ds(),No=Ae.setImmediate,Fo=Ae.clearImmediate,yk=Ae.process,Co=Ae.Dispatch,Tk=Ae.Function,um=Ae.MessageChannel,Ik=Ae.String,Vo=0,gi={},lm="onreadystatechange",vi,Yt,Bo,Oo;pm(function(){vi=Ae.location});var qo=function(a){if(fk(gi,a)){var e=gi[a];delete gi[a],e()}},_o=function(a){return function(){qo(a)}},cm=function(a){qo(a.data)},dm=function(a){Ae.postMessage(Ik(a),vi.protocol+"//"+vi.host)};(!No||!Fo)&&(No=function(e){gk(arguments.length,1);var t=sm(e)?e:Tk(e),r=bk(arguments,1);return gi[++Vo]=function(){hk(t,void 0,r)},Yt(Vo),Vo},Fo=function(e){delete gi[e]},Sk?Yt=function(a){yk.nextTick(_o(a))}:Co&&Co.now?Yt=function(a){Co.now(_o(a))}:um&&!vk?(Bo=new um,Oo=Bo.port2,Bo.port1.onmessage=cm,Yt=mk(Oo.postMessage,Oo)):Ae.addEventListener&&sm(Ae.postMessage)&&!Ae.importScripts&&vi&&vi.protocol!=="file:"&&!pm(dm)?(Yt=dm,Ae.addEventListener("message",cm,!1)):lm in om("script")?Yt=function(a){nm.appendChild(om("script"))[lm]=function(){nm.removeChild(this),qo(a)}}:Yt=function(a){setTimeout(_o(a),0)});hm.exports={set:No,clear:Fo}});var bm=h((TV,fm)=>{"use strict";var mm=Y(),Ek=Pe(),xk=Object.getOwnPropertyDescriptor;fm.exports=function(a){if(!Ek)return mm[a];var e=xk(mm,a);return e&&e.value}});var Ho=h((IV,vm)=>{"use strict";var gm=function(){this.head=null,this.tail=null};gm.prototype={add:function(a){var e={item:a,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var a=this.head;if(a){var e=this.head=a.next;return e===null&&(this.tail=null),a.item}}};vm.exports=gm});var ym=h((EV,Sm)=>{"use strict";var Pk=jt();Sm.exports=/ipad|iphone|ipod/i.test(Pk)&&typeof Pebble<"u"});var Im=h((xV,Tm)=>{"use strict";var kk=jt();Tm.exports=/web0s(?!.*chrome)/i.test(kk)});var Rm=h((PV,Am)=>{"use strict";var wr=Y(),wk=bm(),Em=Sr(),jo=Uo().set,Ak=Ho(),Rk=Do(),Lk=ym(),$k=Im(),Go=ds(),xm=wr.MutationObserver||wr.WebKitMutationObserver,Pm=wr.document,km=wr.process,ps=wr.Promise,Yo=wk("queueMicrotask"),kr,Qo,Wo,hs,wm;Yo||(Si=new Ak,yi=function(){var a,e;for(Go&&(a=km.domain)&&a.exit();e=Si.get();)try{e()}catch(t){throw Si.head&&kr(),t}a&&a.enter()},!Rk&&!Go&&!$k&&xm&&Pm?(Qo=!0,Wo=Pm.createTextNode(""),new xm(yi).observe(Wo,{characterData:!0}),kr=function(){Wo.data=Qo=!Qo}):!Lk&&ps&&ps.resolve?(hs=ps.resolve(void 0),hs.constructor=ps,wm=Em(hs.then,hs),kr=function(){wm(yi)}):Go?kr=function(){km.nextTick(yi)}:(jo=Em(jo,wr),kr=function(){jo(yi)}),Yo=function(a){Si.head||kr(),Si.add(a)});var Si,yi;Am.exports=Yo});var $m=h((kV,Lm)=>{"use strict";Lm.exports=function(a,e){try{arguments.length===1?console.error(a):console.error(a,e)}catch{}}});var ms=h((wV,Mm)=>{"use strict";Mm.exports=function(a){try{return{error:!1,value:a()}}catch(e){return{error:!0,value:e}}}});var zt=h((AV,Dm)=>{"use strict";var Mk=Y();Dm.exports=Mk.Promise});var Ar=h((RV,Om)=>{"use strict";var Dk=Y(),Ti=zt(),Ck=W(),Vk=Hn(),Bk=Ro(),Ok=ae(),Cm=wo(),_k=qe(),zo=Ln(),Vm=Ti&&Ti.prototype,Nk=Ok("species"),Ko=!1,Bm=Ck(Dk.PromiseRejectionEvent),Fk=Vk("Promise",function(){var a=Bk(Ti),e=a!==String(Ti);if(!e&&zo===66||_k&&!(Vm.catch&&Vm.finally))return!0;if(!zo||zo<51||!/native code/.test(a)){var t=new Ti(function(s){s(1)}),r=function(s){s(function(){},function(){})},i=t.constructor={};if(i[Nk]=r,Ko=t.then(function(){})instanceof r,!Ko)return!0}return!e&&(Cm==="BROWSER"||Cm==="DENO")&&!Bm});Om.exports={CONSTRUCTOR:Fk,REJECTION_EVENT:Bm,SUBCLASSING:Ko}});var Rr=h((LV,Nm)=>{"use strict";var _m=Je(),qk=TypeError,Uk=function(a){var e,t;this.promise=new a(function(r,i){if(e!==void 0||t!==void 0)throw new qk("Bad Promise constructor");e=r,t=i}),this.resolve=_m(e),this.reject=_m(t)};Nm.exports.f=function(a){return new Uk(a)}});var sf=h(()=>{"use strict";var Hk=K(),jk=qe(),vs=ds(),Et=Y(),Dr=ke(),Fm=Pr(),qm=To(),Gk=pi(),Qk=qh(),Wk=Je(),gs=W(),Yk=we(),zk=Hh(),Kk=Mo(),Qm=Uo().set,tu=Rm(),Xk=$m(),Jk=ms(),Zk=Ho(),Wm=oo(),Ss=zt(),ru=Ar(),Ym=Rr(),ys="Promise",zm=ru.CONSTRUCTOR,ew=ru.REJECTION_EVENT,tw=ru.SUBCLASSING,Xo=Wm.getterFor(ys),rw=Wm.set,Lr=Ss&&Ss.prototype,Kt=Ss,fs=Lr,Km=Et.TypeError,Jo=Et.document,iu=Et.process,Zo=Ym.f,iw=Zo,aw=!!(Jo&&Jo.createEvent&&Et.dispatchEvent),Xm="unhandledrejection",sw="rejectionhandled",Um=0,Jm=1,nw=2,au=1,Zm=2,bs,Hm,ow,jm,ef=function(a){var e;return Yk(a)&&gs(e=a.then)?e:!1},tf=function(a,e){var t=e.value,r=e.state===Jm,i=r?a.ok:a.fail,s=a.resolve,n=a.reject,o=a.domain,u,l,d;try{i?(r||(e.rejection===Zm&&lw(e),e.rejection=au),i===!0?u=t:(o&&o.enter(),u=i(t),o&&(o.exit(),d=!0)),u===a.promise?n(new Km("Promise-chain cycle")):(l=ef(u))?Dr(l,u,s,n):s(u)):n(t)}catch(c){o&&!d&&o.exit(),n(c)}},rf=function(a,e){a.notified||(a.notified=!0,tu(function(){for(var t=a.reactions,r;r=t.get();)tf(r,a);a.notified=!1,e&&!a.rejection&&uw(a)}))},af=function(a,e,t){var r,i;aw?(r=Jo.createEvent("Event"),r.promise=e,r.reason=t,r.initEvent(a,!1,!0),Et.dispatchEvent(r)):r={promise:e,reason:t},!ew&&(i=Et["on"+a])?i(r):a===Xm&&Xk("Unhandled promise rejection",t)},uw=function(a){Dr(Qm,Et,function(){var e=a.facade,t=a.value,r=Gm(a),i;if(r&&(i=Jk(function(){vs?iu.emit("unhandledRejection",t,e):af(Xm,e,t)}),a.rejection=vs||Gm(a)?Zm:au,i.error))throw i.value})},Gm=function(a){return a.rejection!==au&&!a.parent},lw=function(a){Dr(Qm,Et,function(){var e=a.facade;vs?iu.emit("rejectionHandled",e):af(sw,e,a.value)})},$r=function(a,e,t){return function(r){a(e,r,t)}},Mr=function(a,e,t){a.done||(a.done=!0,t&&(a=t),a.value=e,a.state=nw,rf(a,!0))},eu=function(a,e,t){if(!a.done){a.done=!0,t&&(a=t);try{if(a.facade===e)throw new Km("Promise can't be resolved itself");var r=ef(e);r?tu(function(){var i={done:!1};try{Dr(r,e,$r(eu,i,a),$r(Mr,i,a))}catch(s){Mr(i,s,a)}}):(a.value=e,a.state=Jm,rf(a,!1))}catch(i){Mr({done:!1},i,a)}}};if(zm&&(Kt=function(e){zk(this,fs),Wk(e),Dr(bs,this);var t=Xo(this);try{e($r(eu,t),$r(Mr,t))}catch(r){Mr(t,r)}},fs=Kt.prototype,bs=function(e){rw(this,{type:ys,done:!1,notified:!1,parent:!1,reactions:new Zk,rejection:!1,state:Um,value:void 0})},bs.prototype=Fm(fs,"then",function(e,t){var r=Xo(this),i=Zo(Kk(this,Kt));return r.parent=!0,i.ok=gs(e)?e:!0,i.fail=gs(t)&&t,i.domain=vs?iu.domain:void 0,r.state===Um?r.reactions.add(i):tu(function(){tf(i,r)}),i.promise}),Hm=function(){var a=new bs,e=Xo(a);this.promise=a,this.resolve=$r(eu,e),this.reject=$r(Mr,e)},Ym.f=Zo=function(a){return a===Kt||a===ow?new Hm(a):iw(a)},!jk&&gs(Ss)&&Lr!==Object.prototype)){jm=Lr.then,tw||Fm(Lr,"then",function(e,t){var r=this;return new Kt(function(i,s){Dr(jm,r,i,s)}).then(e,t)},{unsafe:!0});try{delete Lr.constructor}catch{}qm&&qm(Lr,fs)}Hk({global:!0,constructor:!0,wrap:!0,forced:zm},{Promise:Kt});Gk(Kt,ys,!1,!0);Qk(ys)});var cf=h((DV,lf)=>{"use strict";var cw=ae(),of=cw("iterator"),uf=!1;try{nf=0,su={next:function(){return{done:!!nf++}},return:function(){uf=!0}},su[of]=function(){return this},Array.from(su,function(){throw 2})}catch{}var nf,su;lf.exports=function(a,e){try{if(!e&&!uf)return!1}catch{return!1}var t=!1;try{var r={};r[of]=function(){return{next:function(){return{done:t=!0}}}},a(r)}catch{}return t}});var nu=h((CV,df)=>{"use strict";var dw=zt(),pw=cf(),hw=Ar().CONSTRUCTOR;df.exports=hw||!pw(function(a){dw.all(a).then(void 0,function(){})})});var pf=h(()=>{"use strict";var mw=K(),fw=ke(),bw=Je(),gw=Rr(),vw=ms(),Sw=us(),yw=nu();mw({target:"Promise",stat:!0,forced:yw},{all:function(e){var t=this,r=gw.f(t),i=r.resolve,s=r.reject,n=vw(function(){var o=bw(t.resolve),u=[],l=0,d=1;Sw(e,function(c){var p=l++,m=!1;d++,fw(o,t,c).then(function(f){m||(m=!0,u[p]=f,--d||i(u))},s)}),--d||i(u)});return n.error&&s(n.value),r.promise}})});var mf=h(()=>{"use strict";var Tw=K(),Iw=qe(),Ew=Ar().CONSTRUCTOR,uu=zt(),xw=ut(),Pw=W(),kw=Pr(),hf=uu&&uu.prototype;Tw({target:"Promise",proto:!0,forced:Ew,real:!0},{catch:function(a){return this.then(void 0,a)}});!Iw&&Pw(uu)&&(ou=xw("Promise").prototype.catch,hf.catch!==ou&&kw(hf,"catch",ou,{unsafe:!0}));var ou});var ff=h(()=>{"use strict";var ww=K(),Aw=ke(),Rw=Je(),Lw=Rr(),$w=ms(),Mw=us(),Dw=nu();ww({target:"Promise",stat:!0,forced:Dw},{race:function(e){var t=this,r=Lw.f(t),i=r.reject,s=$w(function(){var n=Rw(t.resolve);Mw(e,function(o){Aw(n,t,o).then(r.resolve,i)})});return s.error&&i(s.value),r.promise}})});var bf=h(()=>{"use strict";var Cw=K(),Vw=Rr(),Bw=Ar().CONSTRUCTOR;Cw({target:"Promise",stat:!0,forced:Bw},{reject:function(e){var t=Vw.f(this),r=t.reject;return r(e),t.promise}})});var lu=h((HV,gf)=>{"use strict";var Ow=Ze(),_w=we(),Nw=Rr();gf.exports=function(a,e){if(Ow(a),_w(e)&&e.constructor===a)return e;var t=Nw.f(a),r=t.resolve;return r(e),t.promise}});var yf=h(()=>{"use strict";var Fw=K(),qw=ut(),vf=qe(),Uw=zt(),Sf=Ar().CONSTRUCTOR,Hw=lu(),jw=qw("Promise"),Gw=vf&&!Sf;Fw({target:"Promise",stat:!0,forced:vf||Sf},{resolve:function(e){return Hw(Gw&&this===jw?Uw:this,e)}})});var Tf=h(()=>{"use strict";sf();pf();mf();ff();bf();yf()});var Pf=h(()=>{"use strict";var Qw=K(),Ww=qe(),Ts=zt(),Yw=ie(),Ef=ut(),xf=W(),zw=Mo(),If=lu(),Kw=Pr(),du=Ts&&Ts.prototype,Xw=!!Ts&&Yw(function(){du.finally.call({then:function(){}},function(){})});Qw({target:"Promise",proto:!0,real:!0,forced:Xw},{finally:function(a){var e=zw(this,Ef("Promise")),t=xf(a);return this.then(t?function(r){return If(e,a()).then(function(){return r})}:a,t?function(r){return If(e,a()).then(function(){throw r})}:a)}});!Ww&&xf(Ts)&&(cu=Ef("Promise").prototype.finally,du.finally!==cu&&Kw(du,"finally",cu,{unsafe:!0}));var cu});var wf=h((KV,kf)=>{"use strict";Ch();Tf();Pf();var Jw=It();kf.exports=Jw("Promise","finally")});var Rf=h((XV,Af)=>{"use strict";var Zw=wf();Af.exports=Zw});var Is=h((JV,Lf)=>{"use strict";var eA=Rf();Lf.exports=eA});var Hf=h(()=>{"use strict";var mA=K(),fA=io().values;mA({target:"Object",stat:!0},{values:function(e){return fA(e)}})});var Gf=h((BB,jf)=>{"use strict";Hf();var bA=br();jf.exports=bA.Object.values});var Wf=h((OB,Qf)=>{"use strict";var gA=Gf();Qf.exports=gA});var Vr=h((_B,Yf)=>{"use strict";var vA=Wf();Yf.exports=vA});var ob=h(()=>{"use strict";var CA=K(),VA=gr(),BA=Er(),OA=ui(),_A=li();CA({target:"Array",proto:!0},{at:function(e){var t=VA(this),r=BA(t),i=OA(e),s=i>=0?i:r+i;return s<0||s>=r?void 0:t[s]}});_A("at")});var lb=h((pO,ub)=>{"use strict";ob();var NA=It();ub.exports=NA("Array","at")});var db=h((hO,cb)=>{"use strict";var FA=lb();cb.exports=FA});var Or=h((mO,pb)=>{"use strict";var qA=db();pb.exports=qA});var Cu=h((F_,Ub)=>{"use strict";var IR=Ut();Ub.exports=Array.isArray||function(e){return IR(e)==="Array"}});var jb=h((q_,Hb)=>{"use strict";var ER=TypeError,xR=9007199254740991;Hb.exports=function(a){if(a>xR)throw ER("Maximum allowed index exceeded");return a}});var Wb=h((U_,Qb)=>{"use strict";var PR=Cu(),kR=Er(),wR=jb(),AR=Sr(),Gb=function(a,e,t,r,i,s,n,o){for(var u=i,l=0,d=n?AR(n,o):!1,c,p;l<r;)l in t&&(c=d?d(t[l],l,e):t[l],s>0&&PR(c)?(p=kR(c),u=Gb(a,e,c,p,u,s-1)-1):(wR(u+1),a[u]=c),u++),l++;return u};Qb.exports=Gb});var Xb=h((H_,Kb)=>{"use strict";var Yb=Cu(),RR=$o(),LR=we(),$R=ae(),MR=$R("species"),zb=Array;Kb.exports=function(a){var e;return Yb(a)&&(e=a.constructor,RR(e)&&(e===zb||Yb(e.prototype))?e=void 0:LR(e)&&(e=e[MR],e===null&&(e=void 0))),e===void 0?zb:e}});var Zb=h((j_,Jb)=>{"use strict";var DR=Xb();Jb.exports=function(a,e){return new(DR(a))(e===0?0:e)}});var eg=h(()=>{"use strict";var CR=K(),VR=Wb(),BR=Je(),OR=gr(),_R=Er(),NR=Zb();CR({target:"Array",proto:!0},{flatMap:function(e){var t=OR(this),r=_R(t),i;return BR(e),i=NR(t,0),i.length=VR(i,t,t,r,0,1,e,arguments.length>1?arguments[1]:void 0),i}})});var tg=h(()=>{"use strict";var FR=li();FR("flatMap")});var ig=h((z_,rg)=>{"use strict";eg();tg();var qR=It();rg.exports=qR("Array","flatMap")});var sg=h((K_,ag)=>{"use strict";var UR=ig();ag.exports=UR});var Vu=h((X_,ng)=>{"use strict";var HR=sg();ng.exports=HR});var Bi=h((oN,bg)=>{"use strict";var XR=di(),JR=String;bg.exports=function(a){if(XR(a)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return JR(a)}});var Ou=h((uN,gg)=>{"use strict";gg.exports=`
7
+ \v\f\r \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF`});var yg=h((lN,Sg)=>{"use strict";var ZR=J(),eL=Tt(),tL=Bi(),Nu=Ou(),vg=ZR("".replace),rL=RegExp("^["+Nu+"]+"),iL=RegExp("(^|[^"+Nu+"])["+Nu+"]+$"),_u=function(a){return function(e){var t=tL(eL(e));return a&1&&(t=vg(t,rL,"")),a&2&&(t=vg(t,iL,"$1")),t}};Sg.exports={start:_u(1),end:_u(2),trim:_u(3)}});var xg=h((cN,Eg)=>{"use strict";var aL=co().PROPER,sL=ie(),Tg=Ou(),Ig="\u200B\x85\u180E";Eg.exports=function(a){return sL(function(){return!!Tg[a]()||Ig[a]()!==Ig||aL&&Tg[a].name!==a})}});var Fu=h((dN,Pg)=>{"use strict";var nL=yg().start,oL=xg();Pg.exports=oL("trimStart")?function(){return nL(this)}:"".trimStart});var wg=h(()=>{"use strict";var uL=K(),kg=Fu();uL({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==kg},{trimLeft:kg})});var Rg=h(()=>{"use strict";wg();var lL=K(),Ag=Fu();lL({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==Ag},{trimStart:Ag})});var $g=h((bN,Lg)=>{"use strict";Rg();var cL=It();Lg.exports=cL("String","trimLeft")});var Dg=h((gN,Mg)=>{"use strict";var dL=$g();Mg.exports=dL});var Vg=h((vN,Cg)=>{"use strict";var pL=Dg();Cg.exports=pL});var Xg=h(()=>{"use strict"});var Jg=h(()=>{"use strict"});var ev=h((Xq,Zg)=>{"use strict";var VL=we(),BL=Ut(),OL=ae(),_L=OL("match");Zg.exports=function(a){var e;return VL(a)&&((e=a[_L])!==void 0?!!e:BL(a)==="RegExp")}});var rv=h((Jq,tv)=>{"use strict";var NL=Ze();tv.exports=function(){var a=NL(this),e="";return a.hasIndices&&(e+="d"),a.global&&(e+="g"),a.ignoreCase&&(e+="i"),a.multiline&&(e+="m"),a.dotAll&&(e+="s"),a.unicode&&(e+="u"),a.unicodeSets&&(e+="v"),a.sticky&&(e+="y"),e}});var sv=h((Zq,av)=>{"use strict";var FL=ke(),qL=Ue(),UL=ri(),HL=rv(),iv=RegExp.prototype;av.exports=function(a){var e=a.flags;return e===void 0&&!("flags"in iv)&&!qL(a,"flags")&&UL(iv,a)?FL(HL,a):e}});var ov=h((eU,nv)=>{"use strict";var zu=J(),jL=gr(),GL=Math.floor,Wu=zu("".charAt),QL=zu("".replace),Yu=zu("".slice),WL=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,YL=/\$([$&'`]|\d{1,2})/g;nv.exports=function(a,e,t,r,i,s){var n=t+a.length,o=r.length,u=YL;return i!==void 0&&(i=jL(i),u=WL),QL(s,u,function(l,d){var c;switch(Wu(d,0)){case"$":return"$";case"&":return a;case"`":return Yu(e,0,t);case"'":return Yu(e,n);case"<":c=i[Yu(d,1,-1)];break;default:var p=+d;if(p===0)return l;if(p>o){var m=GL(p/10);return m===0?l:m<=o?r[m-1]===void 0?Wu(d,1):r[m-1]+Wu(d,1):l}c=r[p-1]}return c===void 0?"":c})}});var cv=h(()=>{"use strict";var zL=K(),KL=ke(),Xu=J(),uv=Tt(),XL=W(),JL=fr(),ZL=ev(),Hr=Bi(),e$=ai(),t$=sv(),r$=ov(),i$=ae(),a$=qe(),s$=i$("replace"),n$=TypeError,Ku=Xu("".indexOf),o$=Xu("".replace),lv=Xu("".slice),u$=Math.max;zL({target:"String",proto:!0},{replaceAll:function(e,t){var r=uv(this),i,s,n,o,u,l,d,c,p,m,f=0,b="";if(!JL(e)){if(i=ZL(e),i&&(s=Hr(uv(t$(e))),!~Ku(s,"g")))throw new n$("`.replaceAll` does not allow non-global regexes");if(n=e$(e,s$),n)return KL(n,e,r,t);if(a$&&i)return o$(Hr(r),e,t)}for(o=Hr(r),u=Hr(e),l=XL(t),l||(t=Hr(t)),d=u.length,c=u$(1,d),p=Ku(o,u);p!==-1;)m=l?Hr(t(u,p,o)):r$(u,o,p,[],void 0,t),b+=lv(o,f,p)+m,f=p+d,p=p+c>o.length?-1:Ku(o,u,p+c);return f<o.length&&(b+=lv(o,f)),b}})});var pv=h((iU,dv)=>{"use strict";Xg();Jg();cv();var l$=It();dv.exports=l$("String","replaceAll")});var mv=h((aU,hv)=>{"use strict";var c$=pv();hv.exports=c$});var bv=h((sU,fv)=>{"use strict";var d$=mv();fv.exports=d$});var vv=h((nU,gv)=>{"use strict";var p$=ui(),h$=Bi(),m$=Tt(),f$=RangeError;gv.exports=function(e){var t=h$(m$(this)),r="",i=p$(e);if(i<0||i===1/0)throw new f$("Wrong number of repetitions");for(;i>0;(i>>>=1)&&(t+=t))i&1&&(r+=t);return r}});var Ev=h((oU,Iv)=>{"use strict";var Tv=J(),b$=zn(),Sv=Bi(),g$=vv(),v$=Tt(),S$=Tv(g$),y$=Tv("".slice),T$=Math.ceil,yv=function(a){return function(e,t,r){var i=Sv(v$(e)),s=b$(t),n=i.length,o=r===void 0?" ":Sv(r),u,l;return s<=n||o===""?i:(u=s-n,l=S$(o,T$(u/o.length)),l.length>u&&(l=y$(l,0,u)),a?i+l:l+i)}};Iv.exports={start:yv(!1),end:yv(!0)}});var Pv=h((uU,xv)=>{"use strict";var I$=jt();xv.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(I$)});var kv=h(()=>{"use strict";var E$=K(),x$=Ev().start,P$=Pv();E$({target:"String",proto:!0,forced:P$},{padStart:function(e){return x$(this,e,arguments.length>1?arguments[1]:void 0)}})});var Av=h((dU,wv)=>{"use strict";kv();var k$=It();wv.exports=k$("String","padStart")});var Lv=h((pU,Rv)=>{"use strict";var w$=Av();Rv.exports=w$});var Mv=h((hU,$v)=>{"use strict";var A$=Lv();$v.exports=A$});var _l="2.0.124-dev.4a771da1.0";var me=(i=>(i.STOPPED="stopped",i.READY="ready",i.PLAYING="playing",i.PAUSED="paused",i))(me||{}),yt=(P=>(P.MPEG="MPEG",P.DASH="DASH",P.DASH_SEP="DASH_SEP",P.DASH_SEP_VK="DASH_SEP",P.DASH_WEBM="DASH_WEBM",P.DASH_WEBM_AV1="DASH_WEBM_AV1",P.DASH_STREAMS="DASH_STREAMS",P.DASH_WEBM_VK="DASH_WEBM",P.DASH_ONDEMAND="DASH_ONDEMAND",P.DASH_ONDEMAND_VK="DASH_ONDEMAND",P.DASH_LIVE="DASH_LIVE",P.DASH_LIVE_CMAF="DASH_LIVE_CMAF",P.DASH_LIVE_WEBM="DASH_LIVE_WEBM",P.HLS="HLS",P.HLS_ONDEMAND="HLS_ONDEMAND",P.HLS_JS="HLS",P.HLS_LIVE="HLS_LIVE",P.HLS_LIVE_CMAF="HLS_LIVE_CMAF",P.WEB_RTC_LIVE="WEB_RTC_LIVE",P))(yt||{});var Ua=(i=>(i.NOT_AVAILABLE="NOT_AVAILABLE",i.AVAILABLE="AVAILABLE",i.CONNECTING="CONNECTING",i.CONNECTED="CONNECTED",i))(Ua||{}),vn=(r=>(r.HTTP1="http1",r.HTTP2="http2",r.QUIC="quic",r))(vn||{});var Sn=(n=>(n.NONE="none",n.INLINE="inline",n.FULLSCREEN="fullscreen",n.SECOND_SCREEN="second_screen",n.PIP="pip",n.INVISIBLE="invisible",n))(Sn||{});var ly=D(He(),1);import{assertNever as Bd,assertNonNullable as qI,isNonNullable as Wa,ValueSubject as Xn,Subject as UI,Subscription as HI,merge as jI,observableFrom as GI,fromEvent as Md,map as Dd,tap as Cd,filterChanged as QI,isNullable as Jn,ErrorCategory as Vd}from"@vkontakte/videoplayer-shared";var $d=a=>new Promise((e,t)=>{let r=document.createElement("script");r.setAttribute("src",a),r.onload=()=>e(),r.onerror=i=>t(i),document.body.appendChild(r)});var Ya=class{constructor(e){this.connection$=new Xn(void 0);this.castState$=new Xn("NOT_AVAILABLE");this.errorEvent$=new UI;this.realCastState$=new Xn("NOT_AVAILABLE");this.subscription=new HI;this.isDestroyed=!1;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 r=Wa(window.chrome?.cast),i=!!window.__onGCastApiAvailable;r?this.initializeCastApi():(window.__onGCastApiAvailable=s=>{delete window.__onGCastApiAvailable,s&&!this.isDestroyed&&this.initializeCastApi()},i||$d("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:Vd.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(){Wa(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();Jn(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();Jn(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.isDestroyed=!0,this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),r=cast.framework.CastContext.getInstance();this.subscription.add(Md(r,cast.framework.CastContextEventType.SESSION_STATE_CHANGED).subscribe(i=>{switch(i.sessionState){case cast.framework.SessionState.SESSION_STARTED:case cast.framework.SessionState.SESSION_STARTING:case cast.framework.SessionState.SESSION_RESUMED:this.contentId=r.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 Bd(i.sessionState)}})).add(jI(Md(r,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(Cd(i=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(i)}`})}),Dd(i=>i.castState)),GI([r.getCastState()])).pipe(QI(),Dd(WI),Cd(i=>{this.log({message:`realCastState$: ${i}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(i=>{let s=i==="CONNECTED",n=Wa(this.connection$.getValue());if(s&&!n){let o=r.getCurrentSession();qI(o);let u=o.getCastDevice(),l=o.getMediaSession()?.media?.contentId;(Jn(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(i==="CONNECTED"?Wa(this.connection$.getValue())?"CONNECTED":"AVAILABLE":i)}))}initializeCastApi(){let e,t,r;try{e=cast.framework.CastContext.getInstance(),t=chrome.cast.media.DEFAULT_MEDIA_RECEIVER_APP_ID,r=chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}catch{return}try{e.setOptions({receiverApplicationId:this.params.receiverApplicationId??t,autoJoinPolicy:r}),this.initListeners()}catch(i){this.errorEvent$.next({id:"ChromecastInitializer",category:Vd.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:i})}}},WI=a=>{switch(a){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 Bd(a)}};var Rl=D(He(),1),HS=D(xr(),1),jS=D(ko(),1);var Ff=D(Is(),1);import{assertNever as $f}from"@vkontakte/videoplayer-shared";var se=(a,e=0,t=0)=>{switch(t){case 0:return a.replace("_offset_p",e===0?"":"_"+e.toFixed(0));case 1:{if(e===0)return a;let r=new URL(a);return r.searchParams.append("playback_shift",e.toFixed(0)),r.toString()}case 2:{let r=new URL(a);return!r.searchParams.get("offset_p")&&e===0?a:(r.searchParams.set("offset_p",e.toFixed(0)),r.toString())}default:$f(t)}return a},Es=(a,e)=>{switch(e){case 0:return NaN;case 1:{let t=new URL(a);return Number(t.searchParams.get("playback_shift"))}case 2:{let t=new URL(a);return Number(t.searchParams.get("offset_p")??0)}default:$f(e)}};var T=(a,e,t=!1)=>{let r=a.getTransition();(t||!r||r.to===e)&&a.setState(e)};import{isNonNullable as tA,Subject as xs,merge as Mf}from"@vkontakte/videoplayer-shared";var $=class{constructor(e){this.transitionStarted$=new xs;this.transitionEnded$=new xs;this.transitionUpdated$=new xs;this.forceChanged$=new xs;this.stateChangeStarted$=Mf(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=Mf(this.transitionEnded$,this.forceChanged$);this.state=e,this.prevState=void 0}setState(e){let t=this.transition,r=this.state;this.transition=void 0,this.prevState=r,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:r,to:e,canceledTransition:t})}startTransitionTo(e){let t=this.transition,r=this.state;r===e||tA(t)&&t.to===e||(this.prevState=r,this.state=e,t?(this.transition={from:t.from,to:e,canceledTransition:t},this.transitionUpdated$.next(this.transition)):(this.transition={from:r,to:e},this.transitionStarted$.next(this.transition)))}getTransition(){return this.transition}getState(){return this.state}getPrevState(){return this.prevState}};import{assertNever as rA}from"@vkontakte/videoplayer-shared";var Df=a=>{switch(a){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 rA(a)}};import{assertNever as Cr,assertNonNullable as Xt,debounce as Cf,ErrorCategory as Vf,fromEvent as Jt,isNonNullable as Bf,map as Of,merge as _f,observableFrom as iA,Subject as aA,Subscription as pu,timeout as sA,getHighestQuality as nA}from"@vkontakte/videoplayer-shared";var oA=5,uA=5,lA=500,Nf=7e3,Ii=class{constructor(e){this.subscription=new pu;this.loadMediaTimeoutSubscription=new pu;this.videoState=new $("stopped");this.syncPlayback=()=>{let e=this.videoState.getState(),t=this.videoState.getTransition(),r=this.params.desiredState.playbackState.getState(),i=this.params.desiredState.playbackState.getTransition(),s=this.params.desiredState.seekState.getState();if(this.log({message:`[syncPlayback] videoState: ${e}; videoTransition: ${JSON.stringify(t)}; desiredPlaybackState: ${r}; desiredPlaybackStateTransition: ${this.params.desiredState.playbackState.getTransition()}; seekState: ${JSON.stringify(s)};`}),r==="stopped"){e!=="stopped"&&(this.videoState.startTransitionTo("stopped"),this.stop());return}if(!t){if(i?.to!=="paused"&&s.state==="requested"&&e!=="stopped"){this.seek(s.position/1e3);return}switch(r){case"ready":{switch(e){case"playing":case"paused":case"ready":break;case"stopped":this.videoState.startTransitionTo("ready"),this.prepare();break;default:Cr(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:Cr(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:Cr(e)}break}default:Cr(r)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(Df(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 pu;this.subscription.add(e),this.subscription.add(_f(this.videoState.stateChangeStarted$.pipe(Of(i=>`stateChangeStarted$ ${JSON.stringify(i)}`)),this.videoState.stateChangeEnded$.pipe(Of(i=>`stateChangeEnded$ ${JSON.stringify(i)}`))).subscribe(i=>this.log({message:`[videoState] ${i}`})));let t=(i,s)=>this.subscription.add(i.subscribe(s));if(this.params.output.isLive$.getValue())this.params.output.position$.next(0),this.params.output.duration$.next(0);else{let i=new aA;e.add(i.pipe(Cf(lA)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let s=NaN;e.add(Jt(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)>oA)&&i.next(o),s=o})),e.add(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(n=>{this.logRemoteEvent(n),this.params.output.duration$.next(n.value)}))}t(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),i=>{this.logRemoteEvent(i),i.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),i=>{this.logRemoteEvent(i),i.value?this.handleRemotePause():this.handleRemotePlay()}),t(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.PLAYER_STATE_CHANGED),i=>{this.logRemoteEvent(i);let{remotePlayer:s}=this.params.connection,n=i.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<uA&&this.params.output.endedEvent$.next(),this.handleRemoteStop(),T(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:Cr(n)}}),t(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),i=>{this.logRemoteEvent(i),this.handleRemoteVolumeChange({volume:i.value})}),t(Jt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),i=>{this.logRemoteEvent(i),this.handleRemoteVolumeChange({muted:i.value})});let r=_f(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,iA(["init"])).pipe(Cf(0));t(r,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"),T(this.params.desiredState.playbackState,"paused")):(this.videoState.setState("playing"),T(this.params.desiredState.playbackState,"playing"));let r=this.params.output.isLive$.getValue();this.params.output.duration$.next(r?0:t.duration),this.params.output.position$.next(r?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),r=this.createLoadRequest(t);this.loadMedia(r)}handleRemotePause(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="paused"||e==="playing")&&(this.videoState.setState("paused"),T(this.params.desiredState.playbackState,"paused"))}handleRemotePlay(){let e=this.videoState.getState();(this.videoState.getTransition()?.to==="playing"||e==="paused")&&(this.videoState.setState("playing"),T(this.params.desiredState.playbackState,"playing"))}handleRemoteReady(){this.videoState.getTransition()?.to==="ready"&&this.videoState.setState("ready"),this.params.desiredState.playbackState.getTransition()?.to==="ready"&&T(this.params.desiredState.playbackState,"ready")}handleRemoteStop(){this.videoState.getState()!=="stopped"&&this.videoState.setState("stopped")}handleRemoteVolumeChange(e){let t=this.params.output.volume$.getValue(),r={volume:e.volume??t.volume,muted:e.muted??t.muted};(r.volume!==t.volume||r.muted!==r.muted)&&this.params.output.volume$.next(r)}seek(e){this.params.output.willSeekEvent$.next();let{remotePlayer:t,remotePlayerController:r}=this.params.connection;t.currentTime=e,r.seek()}stop(){let{remotePlayerController:e}=this.params.connection;e.stop()}createMediaInfo(e){let t=this.params.source,r,i,s;switch(e){case"MPEG":{let l=t[e];Xt(l);let d=nA(Object.keys(l));Xt(d);let c=l[d];Xt(c),r=c,i="video/mp4",s=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let l=t[e];Xt(l),r=l.url,i="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];Xt(l),r=l.url,i="application/dash+xml",s=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let l=t[e];Xt(l),r=l.url,i="application/dash+xml",s=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let l=t[e];Xt(l),r=se(l.url),i="application/x-mpegurl",s=chrome.cast.media.StreamType.LIVE;break}case"DASH_LIVE":case"WEB_RTC_LIVE":{let l="Unsupported format for Chromecast",d=new Error(l);throw this.params.output.error$.next({id:"ChromecastProvider.createMediaInfo()",category:Vf.VIDEO_PIPELINE,message:l,thrown:d}),d}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return Cr(e)}let n=new chrome.cast.media.MediaInfo(this.params.meta.videoId??r,i);n.contentUrl=r,n.streamType=s,n.metadata=new chrome.cast.media.GenericMediaMetadata;let{title:o,subtitle:u}=this.params.meta;return Bf(o)&&(n.metadata.title=o),Bf(u)&&(n.metadata.subtitle=u),n}createLoadRequest(e){let t=new chrome.cast.media.LoadRequest(e);t.autoplay=!1;let r=this.params.desiredState.seekState.getState();return r.state==="applying"||r.state==="requested"?t.currentTime=this.params.output.isLive$.getValue()?0:r.position/1e3:t.currentTime=0,t}loadMedia(e){let t=this.params.connection.session.loadMedia(e),r=new Promise((i,s)=>{this.loadMediaTimeoutSubscription.add(sA(Nf).subscribe(()=>s(`timeout(${Nf})`)))});(0,Ff.default)(Promise.race([t,r]).then(()=>{this.log({message:`[loadMedia] completed, format: ${this.params.format}`}),this.params.desiredState.seekState.getState().state==="applying"&&this.params.output.seekedEvent$.next(),this.handleRemoteReady()},i=>{let s=`[prepare] loadMedia failed, format: ${this.params.format}, reason: ${i}`;this.log({message:s}),this.params.output.error$.next({id:"ChromecastProvider.loadMedia",category:Vf.VIDEO_PIPELINE,message:s,thrown:i})}),()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};var Mu=D(He(),1);import{clearVideoElement as Uf}from"@vkontakte/videoplayer-shared";import{clearVideoElement as cA}from"@vkontakte/videoplayer-shared";var qf=a=>{try{a.pause(),a.playbackRate=0,cA(a),a.remove()}catch(e){console.error(e)}};import{fromEvent as dA,Subscription as pA}from"@vkontakte/videoplayer-shared";var hu=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)}},mu=window.WeakMap?new WeakMap:new hu,fu=window.WeakMap?new WeakMap:new Map,hA=(a,e=20)=>{let t=0;return dA(a,"ratechange").subscribe(r=>{t++,t>=e&&(a.currentTime=a.currentTime,t=0)})},fe=(a,{audioVideoSyncRate:e})=>{let t=a.querySelector("video"),r=!!t;t?Uf(t):(t=document.createElement("video"),a.appendChild(t)),mu.set(t,r);let i=new pA;return i.add(hA(t,e)),fu.set(t,i),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.setAttribute("x-yandex-pip","false"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},be=a=>{fu.get(a)?.unsubscribe(),fu.delete(a);let t=mu.get(a);mu.delete(a),t?Uf(a):qf(a)};var gu=D(Vr(),1);import{assertNonNullable as Ei,isNonNullable as tt,isNullable as TA,fromEvent as Br,merge as zf,observableFrom as Kf,filterChanged as Xf,map as xi,Subject as Jf,Subscription as IA,ValueSubject as EA,ErrorCategory as xA}from"@vkontakte/videoplayer-shared";import{isNonNullable as bu,isNullable as SA,Subscription as yA}from"@vkontakte/videoplayer-shared";var Ps=(a,e,t,{equal:r=(n,o)=>n===o,changed$:i,onError:s}={})=>{let n=a.getState(),o=e(),u=SA(i),l=new yA;return i&&l.add(i.subscribe(d=>{let c=a.getState();r(d,c)&&a.setState(d)},s)),r(o,n)||(t(n),u&&a.setState(n)),l.add(a.stateChangeStarted$.subscribe(d=>{t(d.to),u&&a.setState(d.to)},s)),l},et=(a,e,t)=>Ps(e,()=>a.loop,r=>{bu(r)&&(a.loop=r)},{onError:t}),ge=(a,e,t,r)=>Ps(e,()=>({muted:a.muted,volume:a.volume}),i=>{bu(i)&&(a.muted=i.muted,a.volume=i.volume)},{equal:(i,s)=>i===s||i?.muted===s?.muted&&i?.volume===s?.volume,changed$:t,onError:r}),$e=(a,e,t,r)=>Ps(e,()=>a.playbackRate,i=>{bu(i)&&(a.playbackRate=i)},{changed$:t,onError:r}),xt=Ps;var PA=a=>["__",a.language,a.label].join("|"),kA=(a,e)=>{if(a.id===e)return!0;let[t,r,i]=e.split("|");return a.language===r&&a.label===i},vu=class a{constructor(e){this.available$=new Jf;this.current$=new EA(void 0);this.error$=new Jf;this.subscription=new IA;this.externalTracks=new Map;this.internalTracks=new Map;this.baseURL=e}connect(e,t,r){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let i=s=>{this.error$.next({id:"TextTracksManager",category:xA.WTF,message:"Generic HtmlVideoTextTrackManager error",thrown:s})};this.subscription.add(this.available$.subscribe(r.availableTextTracks$)),this.subscription.add(this.current$.subscribe(r.currentTextTrack$)),this.subscription.add(this.error$.subscribe(r.error$)),this.subscription.add(xt(t.internalTextTracks,()=>(0,gu.default)(this.internalTracks),s=>{tt(s)&&this.setInternal(s)},{equal:(s,n)=>tt(s)&&tt(n)&&s.length===n.length&&s.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(xi(s=>s.filter(({type:n})=>n==="internal"))),onError:i})),this.subscription.add(xt(t.externalTextTracks,()=>(0,gu.default)(this.externalTracks),s=>{tt(s)&&this.setExternal(s)},{equal:(s,n)=>tt(s)&&tt(n)&&s.length===n.length&&s.every(({id:o},u)=>o===n[u].id),changed$:this.available$.pipe(xi(s=>s.filter(({type:n})=>n==="external"))),onError:i})),this.subscription.add(xt(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:i})),this.subscription.add(xt(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let s of this.htmlTextTracksAsArray())this.applyCueSettings(s.cues),this.applyCueSettings(s.activeCues)}))}subscribe(){Ei(this.video);let{textTracks:e}=this.video;this.subscription.add(Br(e,"addtrack").subscribe(()=>{let r=this.current$.getValue();r&&this.select(r)})),this.subscription.add(zf(Br(e,"addtrack"),Br(e,"removetrack"),Kf(["init"])).pipe(xi(()=>this.htmlTextTracksAsArray().map(r=>this.htmlTextTrackToITextTrack(r))),Xf((r,i)=>r.length===i.length&&r.every(({id:s},n)=>s===i[n].id))).subscribe(this.available$)),this.subscription.add(zf(Br(e,"change"),Kf(["init"])).pipe(xi(()=>this.htmlTextTracksAsArray().find(({mode:r})=>r==="showing")),xi(r=>r&&this.htmlTextTrackToITextTrack(r).id),Xf()).subscribe(this.current$));let t=r=>this.applyCueSettings(r.target?.activeCues??null);this.subscription.add(Br(e,"addtrack").subscribe(r=>{r.track?.addEventListener("cuechange",t);let i=s=>{let n=s.target?.cues??null;n&&n.length&&(this.applyCueSettings(s.target?.cues??null),s.target?.removeEventListener("cuechange",i))};r.track?.addEventListener("cuechange",i)})),this.subscription.add(Br(e,"removetrack").subscribe(r=>{r.track?.removeEventListener("cuechange",t)}))}applyCueSettings(e){if(!e||!e.length)return;let t=this.cueSettings.getState();for(let r of Array.from(e)){let i=r;tt(t.align)&&(i.align=t.align),tt(t.position)&&(i.position=t.position),tt(t.size)&&(i.size=t.size),tt(t.line)&&(i.line=t.line)}}htmlTextTracksAsArray(e=!1){Ei(this.video);let t=[...this.video.textTracks];return e?t:t.filter(a.isHealthyTrack)}htmlTextTrackToITextTrack(e){let{language:t,label:r}=e,i=e.id?e.id:PA(e),s=this.externalTracks.has(i),n=(s?this.externalTracks.get(i)?.isAuto:this.internalTracks.get(i)?.isAuto)??i.includes("auto");return s?{id:i,type:"external",isAuto:n,language:t,label:r,url:this.externalTracks.get(i)?.url}:{id:i,type:"internal",isAuto:n,language:t,label:r,url:this.internalTracks.get(i)?.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(r=>r.id===t)).forEach(([,t])=>this.detach(t))}setInternal(e){let t=[...this.externalTracks];e.filter(({id:r,language:i,isAuto:s})=>!this.internalTracks.has(r)&&!t.some(([,n])=>n.language===i&&n.isAuto===s)).forEach(r=>this.attach(r)),Array.from(this.internalTracks).filter(([r])=>!e.find(i=>i.id===r)).forEach(([,r])=>this.detach(r))}select(e){Ei(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(TA(e)||!kA(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){Ei(this.video);let t=document.createElement("track");this.baseURL?t.setAttribute("src",new URL(e.url,this.baseURL).toString()):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){Ei(this.video);let t=Array.prototype.find.call(this.video.getElementsByTagName("track"),r=>r.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)}},Me=vu;var dt=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 Zf=a=>{let e=a;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},Su=a=>{let e=Zf(a);return!!(e&&e.fullscreenElement&&e.fullscreenElement===a)},eb=a=>{let e=Zf(a);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===a)};import{fromEvent as De,map as Pt,merge as rb,filterChanged as AA,isNonNullable as ib,Subject as RA,filter as ab,mapTo as sb,combine as LA,once as $A,ErrorCategory as MA,ValueSubject as nb,clientChecker as DA}from"@vkontakte/videoplayer-shared";var wA=3,tb=(a,e,t=wA)=>{let r=0,i=0;for(let s=0;s<a.length;s++){let n=a.start(s),o=a.end(s);if(n<=e&&e<=o){if(r=n,i=o,!t)return{from:r,to:i};for(let u=s-1;u>=0;u--)a.end(u)+t>=r&&(r=a.start(u));for(let u=s+1;u<a.length;u++)a.start(u)-t<=i&&(i=a.end(u))}}return{from:r,to:i}};var ve=a=>{let e=P=>De(a,P).pipe(sb(void 0)),r=rb(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(P=>De(a,P))).pipe(Pt(P=>P.type==="ended"?a.readyState<2:a.readyState<3),AA()),i=rb(De(a,"progress"),De(a,"timeupdate")).pipe(Pt(()=>tb(a.buffered,a.currentTime))),s=DA.isSafari?LA({play:e("play").pipe($A()),playing:e("playing")}).pipe(sb(void 0)):e("playing"),n=De(a,"volumechange").pipe(Pt(()=>({muted:a.muted,volume:a.volume}))),o=De(a,"ratechange").pipe(Pt(()=>a.playbackRate)),u=De(a,"error").pipe(ab(()=>!!(a.error||a.played.length)),Pt(()=>{let P=a.error;return{id:P?`MediaError#${P.code}`:"HtmlVideoError",category:MA.VIDEO_PIPELINE,message:P?P.message:"Error event from HTML video element",thrown:a.error??void 0}})),l=De(a,"timeupdate").pipe(Pt(()=>a.currentTime)),d=new RA,c=.3,p;l.subscribe(P=>{a.loop&&ib(p)&&ib(P)&&p>=a.duration-c&&P<=c&&d.next(p),p=P});let m=e("pause").pipe(ab(()=>!a.error&&p!==a.duration)),f=De(a,"enterpictureinpicture"),b=De(a,"leavepictureinpicture"),g=new nb(eb(a));f.subscribe(()=>g.next(!0)),b.subscribe(()=>g.next(!1));let v=new nb(Su(a));return De(a,"fullscreenchange").pipe(Pt(()=>Su(a))).subscribe(v),{playing$:s,pause$:m,canplay$:e("canplay"),ended$:e("ended"),looped$:d,error$:u,seeked$:e("seeked"),seeking$:e("seeking"),progress$:e("progress"),loadStart$:e("loadstart"),loadedMetadata$:e("loadedmetadata"),loadedData$:e("loadeddata"),timeUpdate$:l,durationChange$:De(a,"durationchange").pipe(Pt(()=>a.duration)),isBuffering$:r,currentBuffer$:i,volumeState$:n,playbackRateState$:o,inPiP$:g,inFullscreen$:v,enterPip$:f,leavePip$:b}};import{VideoQuality as kt}from"@vkontakte/videoplayer-shared";var wt=a=>{switch(a){case"mobile":return kt.Q_144P;case"lowest":return kt.Q_240P;case"low":return kt.Q_360P;case"sd":case"medium":return kt.Q_480P;case"hd":case"high":return kt.Q_720P;case"fullhd":case"full":return kt.Q_1080P;case"quadhd":case"quad":return kt.Q_1440P;case"ultrahd":case"ultra":return kt.Q_2160P}};var At=D(Or(),1),Sb=D(He(),1),ks=D(xr(),1);import{isNonNullable as Z,isNullable as Tu,now as yb,isHigher as Iu,isHigherOrEqual as Eu,isInvariantQuality as bb,isLower as gb,isLowerOrEqual as xu,videoSizeToQuality as UA,assertNotEmptyArray as Tb,assertNonNullable as HA}from"@vkontakte/videoplayer-shared";var yu=!1,pt={},hb=a=>{yu=a},mb=()=>{pt={}},fb=a=>{a(pt)},Pi=(a,e)=>{yu&&(pt.meta=pt.meta??{},pt.meta[a]=e)},ce=class{constructor(e){this.name=e}next(e){if(!yu)return;pt.series=pt.series??{};let t=pt.series[this.name]??[];t.push([Date.now(),e]),pt.series[this.name]=t}};var jA=new ce("best_bitrate"),Ib=(a,e,t)=>(e-t)*Math.pow(2,-10*a)+t;var Pu=a=>(e,t)=>a*(Number(e.bitrate)-Number(t.bitrate)),ki=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=yb()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},Eb='Assertion "ABR Tracks is empty array" failed',ws=(a,e,t,r)=>{let i=[...e].sort(Pu(1)),s=[...t].sort(Pu(1)),n=s.filter(u=>Z(u.bitrate)&&Z(a.bitrate)?a.bitrate/u.bitrate>r:!0),o=(0,At.default)(s,Math.round(s.length*i.indexOf(a)/(i.length+1)))??(0,At.default)(s,-1);return o&&(0,Sb.default)(n,o)?o:n.length?(0,At.default)(n,-1):(0,At.default)(s,0)},vb=a=>"quality"in a,xb=(a,e,t,r)=>{let i=Z(r?.last?.bitrate)&&Z(t?.bitrate)&&r.last.bitrate<t.bitrate?a.trackCooldownIncreaseQuality:a.trackCooldownDecreaseQuality,s=t&&r&&r.history[t.id]&&yb()-r.history[t.id]<=i&&(!r.last||t.id!==r.last.id);if(t?.id&&r&&!s&&r.recordSelection(t),s&&r?.last){let n=r.last;r?.recordSwitch(n);let o=vb(n)?"video":"audio",u=vb(n)?n.quality:n.bitrate;return e({message:`
8
8
  [last ${o} selected] ${u}
9
9
  `}),n}return r?.recordSwitch(t),t},GA=(a,e)=>Math.log(e)/Math.log(a),Rt=(a,{container:e,estimatedThroughput:t,tuning:r,limits:i,reserve:s=0,forwardBufferHealth:n,playbackRate:o,current:u,history:l,visible:d,droppedVideoMaxQualityLimit:c,stallsVideoMaxQualityLimit:p,stallsPredictedThroughput:m,abrLogger:f})=>{Tb(a,Eb);let b=r.containerSizeFactor;if(r.usePixelRatio&&window.devicePixelRatio){let S=window.devicePixelRatio;if(r.pixelRatioMultiplier)b*=r.pixelRatioMultiplier*(S-1)+1;else{let x=r.pixelRatioLogBase,[q=0,xe=0,Ve=0]=r.pixelRatioLogCoefficients,w=GA(x,q*S+xe)+Ve;Number.isFinite(w)&&(b*=w)}}let g=r.limitByContainer&&e&&e.width>0&&e.height>0?{width:e.width*b,height:e.height*b}:void 0,v=r.considerPlaybackRate&&Z(o)?o:1,k=a.filter(S=>!bb(S.quality)).sort((S,x)=>Iu(S.quality,x.quality)?-1:1),P=(0,At.default)(k,-1)?.quality,L=(0,At.default)(k,0)?.quality,y=Tu(i)||Z(i.min)&&Z(i.max)&&gb(i.max,i.min)||Z(i.min)&&L&&Iu(i.min,L)||Z(i.max)&&P&&gb(i.max,P),I=v*Ib(n??.5,r.bitrateFactorAtEmptyBuffer,r.bitrateFactorAtFullBuffer),R={},F=k.filter(S=>{let x=!0;if(g)if(S.size)x=S.size.width<=g.width&&S.size.height<=g.height;else{let H=g&&UA(g);x=H?xu(S.quality,H):!0}if(!x)return R[S.quality]="FitsContainer",!1;let q=m||t;if(!(Z(q)&&isFinite(q)&&Z(S.bitrate)?q-s>=S.bitrate*I:!0))return R[S.quality]="FitsThroughput",!1;if(r.lazyQualitySwitch&&Z(r.minBufferToSwitchUp)&&u&&!bb(u.quality)&&(n??0)<r.minBufferToSwitchUp&&Iu(S.quality,u.quality))return R[S.quality]="Buffer",!1;if(!!c&&Eu(S.quality,c))return R[S.quality]="DroppedFramesLimit",!1;if(!!p&&Eu(S.quality,p))return R[S.quality]="StallsLimit",!1;let O=y||(Tu(i.max)||xu(S.quality,i.max))&&(Tu(i.min)||Eu(S.quality,i.min)),A=Z(d)&&!d?xu(S.quality,r.backgroundVideoQualityLimit):!0;return!O||!A?(R[S.quality]="FitsQualityLimits",!1):!0})[0];F&&F.bitrate&&jA.next(F.bitrate);let U=F??(0,At.default)(k,-1)??a[0];return U.quality!==l?.last?.quality&&f({message:`
10
10
  [VIDEO TRACKS ABR]
package/evergreen.esm.js CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * @vkontakte/videoplayer-core v2.0.124-dev.3f8d0805.0
3
- * Mon, 03 Feb 2025 20:30:22 GMT
2
+ * @vkontakte/videoplayer-core v2.0.124-dev.4a771da1.0
3
+ * Mon, 03 Feb 2025 10:59:56 GMT
4
4
  * https://st.mycdn.me/static/vkontakte-videoplayer/2-0-124/doc/
5
5
  */
6
- var ns="2.0.124-dev.3f8d0805.0";var se=(r=>(r.STOPPED="stopped",r.READY="ready",r.PLAYING="playing",r.PAUSED="paused",r))(se||{}),Xe=(x=>(x.MPEG="MPEG",x.DASH="DASH",x.DASH_SEP="DASH_SEP",x.DASH_SEP_VK="DASH_SEP",x.DASH_WEBM="DASH_WEBM",x.DASH_WEBM_AV1="DASH_WEBM_AV1",x.DASH_STREAMS="DASH_STREAMS",x.DASH_WEBM_VK="DASH_WEBM",x.DASH_ONDEMAND="DASH_ONDEMAND",x.DASH_ONDEMAND_VK="DASH_ONDEMAND",x.DASH_LIVE="DASH_LIVE",x.DASH_LIVE_CMAF="DASH_LIVE_CMAF",x.DASH_LIVE_WEBM="DASH_LIVE_WEBM",x.HLS="HLS",x.HLS_ONDEMAND="HLS_ONDEMAND",x.HLS_JS="HLS",x.HLS_LIVE="HLS_LIVE",x.HLS_LIVE_CMAF="HLS_LIVE_CMAF",x.WEB_RTC_LIVE="WEB_RTC_LIVE",x))(Xe||{});var or=(r=>(r.NOT_AVAILABLE="NOT_AVAILABLE",r.AVAILABLE="AVAILABLE",r.CONNECTING="CONNECTING",r.CONNECTED="CONNECTED",r))(or||{}),Jr=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Jr||{});var Zr=(s=>(s.NONE="none",s.INLINE="inline",s.FULLSCREEN="fullscreen",s.SECOND_SCREEN="second_screen",s.PIP="pip",s.INVISIBLE="invisible",s))(Zr||{});import{assertNever as ps,assertNonNullable as Xo,isNonNullable as ur,ValueSubject as ea,Subject as Jo,Subscription as Zo,merge as eu,observableFrom as tu,fromEvent as us,map as ls,tap as ds,filterChanged as iu,isNullable as ta,ErrorCategory as cs}from"@vkontakte/videoplayer-shared/evergreen";var os=n=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=()=>e(),i.onerror=r=>t(r),document.body.appendChild(i)});var lr=class{constructor(e){this.connection$=new ea(void 0);this.castState$=new ea("NOT_AVAILABLE");this.errorEvent$=new Jo;this.realCastState$=new ea("NOT_AVAILABLE");this.subscription=new Zo;this.isDestroyed=!1;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=ur(window.chrome?.cast),r=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=a=>{delete window.__onGCastApiAvailable,a&&!this.isDestroyed&&this.initializeCastApi()},r||os("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:cs.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(){ur(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();ta(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();ta(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.isDestroyed=!0,this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(us(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 ps(r.sessionState)}})).add(eu(us(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(ds(r=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(r)}`})}),ls(r=>r.castState)),tu([i.getCastState()])).pipe(iu(),ls(ru),ds(r=>{this.log({message:`realCastState$: ${r}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(r=>{let a=r==="CONNECTED",s=ur(this.connection$.getValue());if(a&&!s){let o=i.getCurrentSession();Xo(o);let u=o.getCastDevice(),l=o.getMediaSession()?.media?.contentId;(ta(l)||l===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"?ur(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:cs.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:r})}}},ru=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 ps(n)}};import{assertNever as hs}from"@vkontakte/videoplayer-shared/evergreen";var X=(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:hs(t)}return n},dr=(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:hs(e)}};var y=(n,e,t=!1)=>{let i=n.getTransition();(t||!i||i.to===e)&&n.setState(e)};import{isNonNullable as au,Subject as cr,merge as ms}from"@vkontakte/videoplayer-shared/evergreen";var $=class{constructor(e){this.transitionStarted$=new cr;this.transitionEnded$=new cr;this.transitionUpdated$=new cr;this.forceChanged$=new cr;this.stateChangeStarted$=ms(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=ms(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||au(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 su}from"@vkontakte/videoplayer-shared/evergreen";var fs=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 su(n)}};import{assertNever as Dt,assertNonNullable as ft,debounce as bs,ErrorCategory as gs,fromEvent as bt,isNonNullable as Ss,map as vs,merge as ys,observableFrom as nu,Subject as ou,Subscription as ia,timeout as uu,getHighestQuality as lu}from"@vkontakte/videoplayer-shared/evergreen";var du=5,cu=5,pu=500,Ts=7e3,Gt=class{constructor(e){this.subscription=new ia;this.loadMediaTimeoutSubscription=new ia;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:Dt(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:Dt(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:Dt(e)}break}default:Dt(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(fs(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 ia;this.subscription.add(e),this.subscription.add(ys(this.videoState.stateChangeStarted$.pipe(vs(r=>`stateChangeStarted$ ${JSON.stringify(r)}`)),this.videoState.stateChangeEnded$.pipe(vs(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 ou;e.add(r.pipe(bs(pu)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let a=NaN;e.add(bt(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)>du)&&r.next(o),a=o})),e.add(bt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(s=>{this.logRemoteEvent(s),this.params.output.duration$.next(s.value)}))}t(bt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(bt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemotePause():this.handleRemotePlay()}),t(bt(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<cu&&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:Dt(s)}}),t(bt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({volume:r.value})}),t(bt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({muted:r.value})});let i=ys(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,nu(["init"])).pipe(bs(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 l=t[e];ft(l);let c=lu(Object.keys(l));ft(c);let d=l[c];ft(d),i=d,r="video/mp4",a=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let l=t[e];ft(l),i=l.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 l=t[e];ft(l),i=l.url,r="application/dash+xml",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let l=t[e];ft(l),i=l.url,r="application/dash+xml",a=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let l=t[e];ft(l),i=X(l.url),r="application/x-mpegurl",a=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:gs.VIDEO_PIPELINE,message:l,thrown:c}),c}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return Dt(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 Ss(o)&&(s.metadata.title=o),Ss(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(uu(Ts).subscribe(()=>a(`timeout(${Ts})`)))});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:gs.VIDEO_PIPELINE,message:a,thrown:r})}).finally(()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as Es}from"@vkontakte/videoplayer-shared/evergreen";import{clearVideoElement as hu}from"@vkontakte/videoplayer-shared/evergreen";var Is=n=>{try{n.pause(),n.playbackRate=0,hu(n),n.remove()}catch(e){console.error(e)}};import{fromEvent as mu,Subscription as fu}from"@vkontakte/videoplayer-shared/evergreen";var ra=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)}},aa=window.WeakMap?new WeakMap:new ra,sa=window.WeakMap?new WeakMap:new Map,bu=(n,e=20)=>{let t=0;return mu(n,"ratechange").subscribe(i=>{t++,t>=e&&(n.currentTime=n.currentTime,t=0)})},ne=(n,{audioVideoSyncRate:e})=>{let t=n.querySelector("video"),i=!!t;t?Es(t):(t=document.createElement("video"),n.appendChild(t)),aa.set(t,i);let r=new fu;return r.add(bu(t,e)),sa.set(t,r),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.setAttribute("x-yandex-pip","false"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},oe=n=>{sa.get(n)?.unsubscribe(),sa.delete(n);let t=aa.get(n);aa.delete(n),t?Es(n):Is(n)};import{assertNonNullable as Yt,isNonNullable as Ce,isNullable as vu,fromEvent as Ct,merge as xs,observableFrom as ks,filterChanged as Ps,map as zt,Subject as As,Subscription as yu,ValueSubject as Tu,ErrorCategory as Iu}from"@vkontakte/videoplayer-shared/evergreen";import{isNonNullable as na,isNullable as gu,Subscription as Su}from"@vkontakte/videoplayer-shared/evergreen";var pr=(n,e,t,{equal:i=(s,o)=>s===o,changed$:r,onError:a}={})=>{let s=n.getState(),o=e(),u=gu(r),l=new Su;return r&&l.add(r.subscribe(c=>{let d=n.getState();i(c,d)&&n.setState(c)},a)),i(o,s)||(t(s),u&&n.setState(s)),l.add(n.stateChangeStarted$.subscribe(c=>{t(c.to),u&&n.setState(c.to)},a)),l},De=(n,e,t)=>pr(e,()=>n.loop,i=>{na(i)&&(n.loop=i)},{onError:t}),ue=(n,e,t,i)=>pr(e,()=>({muted:n.muted,volume:n.volume}),r=>{na(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}),Se=(n,e,t,i)=>pr(e,()=>n.playbackRate,r=>{na(r)&&(n.playbackRate=r)},{changed$:t,onError:i}),Je=pr;var Eu=n=>["__",n.language,n.label].join("|"),xu=(n,e)=>{if(n.id===e)return!0;let[t,i,r]=e.split("|");return n.language===i&&n.label===r},oa=class n{constructor(e){this.available$=new As;this.current$=new Tu(void 0);this.error$=new As;this.subscription=new yu;this.externalTracks=new Map;this.internalTracks=new Map;this.baseURL=e}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let r=a=>{this.error$.next({id:"TextTracksManager",category:Iu.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(Je(t.internalTextTracks,()=>Object.values(this.internalTracks),a=>{Ce(a)&&this.setInternal(a)},{equal:(a,s)=>Ce(a)&&Ce(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(zt(a=>a.filter(({type:s})=>s==="internal"))),onError:r})),this.subscription.add(Je(t.externalTextTracks,()=>Object.values(this.externalTracks),a=>{Ce(a)&&this.setExternal(a)},{equal:(a,s)=>Ce(a)&&Ce(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(zt(a=>a.filter(({type:s})=>s==="external"))),onError:r})),this.subscription.add(Je(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(Je(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let a of this.htmlTextTracksAsArray())this.applyCueSettings(a.cues),this.applyCueSettings(a.activeCues)}))}subscribe(){Yt(this.video);let{textTracks:e}=this.video;this.subscription.add(Ct(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(xs(Ct(e,"addtrack"),Ct(e,"removetrack"),ks(["init"])).pipe(zt(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),Ps((i,r)=>i.length===r.length&&i.every(({id:a},s)=>a===r[s].id))).subscribe(this.available$)),this.subscription.add(xs(Ct(e,"change"),ks(["init"])).pipe(zt(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),zt(i=>i&&this.htmlTextTrackToITextTrack(i).id),Ps()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(Ct(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(Ct(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;Ce(t.align)&&(r.align=t.align),Ce(t.position)&&(r.position=t.position),Ce(t.size)&&(r.size=t.size),Ce(t.line)&&(r.line=t.line)}}htmlTextTracksAsArray(e=!1){Yt(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:Eu(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){Yt(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(vu(e)||!xu(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){Yt(this.video);let t=document.createElement("track");this.baseURL?t.setAttribute("src",new URL(e.url,this.baseURL).toString()):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){Yt(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)}},ve=oa;var He=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 ws=n=>{let e=n;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},ua=n=>{let e=ws(n);return!!(e&&e.fullscreenElement&&e.fullscreenElement===n)},$s=n=>{let e=ws(n);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===n)};import{fromEvent as ye,map as Ze,merge as Ms,filterChanged as Pu,isNonNullable as Rs,Subject as Au,filter as Ds,mapTo as Cs,combine as wu,once as $u,ErrorCategory as Lu,ValueSubject as Vs,clientChecker as Mu}from"@vkontakte/videoplayer-shared/evergreen";var ku=3,Ls=(n,e,t=ku)=>{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 le=n=>{let e=x=>ye(n,x).pipe(Cs(void 0)),i=Ms(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(x=>ye(n,x))).pipe(Ze(x=>x.type==="ended"?n.readyState<2:n.readyState<3),Pu()),r=Ms(ye(n,"progress"),ye(n,"timeupdate")).pipe(Ze(()=>Ls(n.buffered,n.currentTime))),a=Mu.isSafari?wu({play:e("play").pipe($u()),playing:e("playing")}).pipe(Cs(void 0)):e("playing"),s=ye(n,"volumechange").pipe(Ze(()=>({muted:n.muted,volume:n.volume}))),o=ye(n,"ratechange").pipe(Ze(()=>n.playbackRate)),u=ye(n,"error").pipe(Ds(()=>!!(n.error||n.played.length)),Ze(()=>{let x=n.error;return{id:x?`MediaError#${x.code}`:"HtmlVideoError",category:Lu.VIDEO_PIPELINE,message:x?x.message:"Error event from HTML video element",thrown:n.error??void 0}})),l=ye(n,"timeupdate").pipe(Ze(()=>n.currentTime)),c=new Au,d=.3,p;l.subscribe(x=>{n.loop&&Rs(p)&&Rs(x)&&p>=n.duration-d&&x<=d&&c.next(p),p=x});let h=e("pause").pipe(Ds(()=>!n.error&&p!==n.duration)),m=ye(n,"enterpictureinpicture"),f=ye(n,"leavepictureinpicture"),g=new Vs($s(n));m.subscribe(()=>g.next(!0)),f.subscribe(()=>g.next(!1));let v=new Vs(ua(n));return ye(n,"fullscreenchange").pipe(Ze(()=>ua(n))).subscribe(v),{playing$:a,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$:ye(n,"durationchange").pipe(Ze(()=>n.duration)),isBuffering$:i,currentBuffer$:r,volumeState$:s,playbackRateState$:o,inPiP$:g,inFullscreen$:v,enterPip$:m,leavePip$:f}};import{VideoQuality as et}from"@vkontakte/videoplayer-shared/evergreen";var tt=n=>{switch(n){case"mobile":return et.Q_144P;case"lowest":return et.Q_240P;case"low":return et.Q_360P;case"sd":case"medium":return et.Q_480P;case"hd":case"high":return et.Q_720P;case"fullhd":case"full":return et.Q_1080P;case"quadhd":case"quad":return et.Q_1440P;case"ultrahd":case"ultra":return et.Q_2160P}};import{isNonNullable as G,isNullable as da,now as Hs,isHigher as ca,isHigherOrEqual as pa,isInvariantQuality as _s,isLower as Fs,isLowerOrEqual as ha,videoSizeToQuality as Ru,assertNotEmptyArray as Qs,assertNonNullable as Du}from"@vkontakte/videoplayer-shared/evergreen";var la=!1,Qe={},Bs=n=>{la=n},Os=()=>{Qe={}},Ns=n=>{n(Qe)},Kt=(n,e)=>{la&&(Qe.meta=Qe.meta??{},Qe.meta[n]=e)},te=class{constructor(e){this.name=e}next(e){if(!la)return;Qe.series=Qe.series??{};let t=Qe.series[this.name]??[];t.push([Date.now(),e]),Qe.series[this.name]=t}};var Cu=new te("best_bitrate"),js=(n,e,t)=>(e-t)*Math.pow(2,-10*n)+t;var ma=n=>(e,t)=>n*(Number(e.bitrate)-Number(t.bitrate)),Xt=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=Hs()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},qs='Assertion "ABR Tracks is empty array" failed',hr=(n,e,t,i)=>{let r=[...e].sort(ma(1)),a=[...t].sort(ma(1)),s=a.filter(u=>G(u.bitrate)&&G(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)},Us=n=>"quality"in n,Ws=(n,e,t,i)=>{let r=G(i?.last?.bitrate)&&G(t?.bitrate)&&i.last.bitrate<t.bitrate?n.trackCooldownIncreaseQuality:n.trackCooldownDecreaseQuality,a=t&&i&&i.history[t.id]&&Hs()-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=Us(s)?"video":"audio",u=Us(s)?s.quality:s.bitrate;return e({message:`
6
+ var ns="2.0.124-dev.4a771da1.0";var se=(r=>(r.STOPPED="stopped",r.READY="ready",r.PLAYING="playing",r.PAUSED="paused",r))(se||{}),Xe=(x=>(x.MPEG="MPEG",x.DASH="DASH",x.DASH_SEP="DASH_SEP",x.DASH_SEP_VK="DASH_SEP",x.DASH_WEBM="DASH_WEBM",x.DASH_WEBM_AV1="DASH_WEBM_AV1",x.DASH_STREAMS="DASH_STREAMS",x.DASH_WEBM_VK="DASH_WEBM",x.DASH_ONDEMAND="DASH_ONDEMAND",x.DASH_ONDEMAND_VK="DASH_ONDEMAND",x.DASH_LIVE="DASH_LIVE",x.DASH_LIVE_CMAF="DASH_LIVE_CMAF",x.DASH_LIVE_WEBM="DASH_LIVE_WEBM",x.HLS="HLS",x.HLS_ONDEMAND="HLS_ONDEMAND",x.HLS_JS="HLS",x.HLS_LIVE="HLS_LIVE",x.HLS_LIVE_CMAF="HLS_LIVE_CMAF",x.WEB_RTC_LIVE="WEB_RTC_LIVE",x))(Xe||{});var or=(r=>(r.NOT_AVAILABLE="NOT_AVAILABLE",r.AVAILABLE="AVAILABLE",r.CONNECTING="CONNECTING",r.CONNECTED="CONNECTED",r))(or||{}),Jr=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.QUIC="quic",i))(Jr||{});var Zr=(s=>(s.NONE="none",s.INLINE="inline",s.FULLSCREEN="fullscreen",s.SECOND_SCREEN="second_screen",s.PIP="pip",s.INVISIBLE="invisible",s))(Zr||{});import{assertNever as ps,assertNonNullable as Xo,isNonNullable as ur,ValueSubject as ea,Subject as Jo,Subscription as Zo,merge as eu,observableFrom as tu,fromEvent as us,map as ls,tap as ds,filterChanged as iu,isNullable as ta,ErrorCategory as cs}from"@vkontakte/videoplayer-shared/evergreen";var os=n=>new Promise((e,t)=>{let i=document.createElement("script");i.setAttribute("src",n),i.onload=()=>e(),i.onerror=r=>t(r),document.body.appendChild(i)});var lr=class{constructor(e){this.connection$=new ea(void 0);this.castState$=new ea("NOT_AVAILABLE");this.errorEvent$=new Jo;this.realCastState$=new ea("NOT_AVAILABLE");this.subscription=new Zo;this.isDestroyed=!1;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=ur(window.chrome?.cast),r=!!window.__onGCastApiAvailable;i?this.initializeCastApi():(window.__onGCastApiAvailable=a=>{delete window.__onGCastApiAvailable,a&&!this.isDestroyed&&this.initializeCastApi()},r||os("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1").catch(()=>this.errorEvent$.next({id:"ChromecastLoading",category:cs.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(){ur(this.connection$.getValue())?this.disconnect():this.connect()}setVolume(e){let t=this.connection$.getValue();ta(t)||(t.remotePlayer.volumeLevel=e,t.remotePlayerController.setVolumeLevel())}setMuted(e){let t=this.connection$.getValue();ta(t)||e!==t.remotePlayer.isMuted&&t.remotePlayerController.muteOrUnmute()}destroy(){this.isDestroyed=!0,this.subscription.unsubscribe()}initListeners(){let e=new cast.framework.RemotePlayer,t=new cast.framework.RemotePlayerController(e),i=cast.framework.CastContext.getInstance();this.subscription.add(us(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 ps(r.sessionState)}})).add(eu(us(i,cast.framework.CastContextEventType.CAST_STATE_CHANGED).pipe(ds(r=>{this.log({message:`[cast.framework.RemotePlayerEventType.CAST_STATE_CHANGED]: ${JSON.stringify(r)}`})}),ls(r=>r.castState)),tu([i.getCastState()])).pipe(iu(),ls(ru),ds(r=>{this.log({message:`realCastState$: ${r}`})})).subscribe(this.realCastState$)).add(this.realCastState$.subscribe(r=>{let a=r==="CONNECTED",s=ur(this.connection$.getValue());if(a&&!s){let o=i.getCurrentSession();Xo(o);let u=o.getCastDevice(),l=o.getMediaSession()?.media?.contentId;(ta(l)||l===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"?ur(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:cs.EXTERNAL_API,message:"[initializeCastApi] failed",thrown:r})}}},ru=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 ps(n)}};import{assertNever as hs}from"@vkontakte/videoplayer-shared/evergreen";var X=(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:hs(t)}return n},dr=(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:hs(e)}};var y=(n,e,t=!1)=>{let i=n.getTransition();(t||!i||i.to===e)&&n.setState(e)};import{isNonNullable as au,Subject as cr,merge as ms}from"@vkontakte/videoplayer-shared/evergreen";var $=class{constructor(e){this.transitionStarted$=new cr;this.transitionEnded$=new cr;this.transitionUpdated$=new cr;this.forceChanged$=new cr;this.stateChangeStarted$=ms(this.transitionStarted$,this.transitionUpdated$);this.stateChangeEnded$=ms(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||au(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 su}from"@vkontakte/videoplayer-shared/evergreen";var fs=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 su(n)}};import{assertNever as Dt,assertNonNullable as ft,debounce as bs,ErrorCategory as gs,fromEvent as bt,isNonNullable as Ss,map as vs,merge as ys,observableFrom as nu,Subject as ou,Subscription as ia,timeout as uu,getHighestQuality as lu}from"@vkontakte/videoplayer-shared/evergreen";var du=5,cu=5,pu=500,Ts=7e3,Gt=class{constructor(e){this.subscription=new ia;this.loadMediaTimeoutSubscription=new ia;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:Dt(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:Dt(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:Dt(e)}break}default:Dt(i)}}};this.params=e,this.log=this.params.dependencies.logger.createComponentLog("ChromecastProvider"),this.log({message:`constructor, format: ${e.format}`}),this.params.output.isLive$.next(fs(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 ia;this.subscription.add(e),this.subscription.add(ys(this.videoState.stateChangeStarted$.pipe(vs(r=>`stateChangeStarted$ ${JSON.stringify(r)}`)),this.videoState.stateChangeEnded$.pipe(vs(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 ou;e.add(r.pipe(bs(pu)).subscribe(()=>{this.params.output.seekedEvent$.next()}));let a=NaN;e.add(bt(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)>du)&&r.next(o),a=o})),e.add(bt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.DURATION_CHANGED).subscribe(s=>{this.logRemoteEvent(s),this.params.output.duration$.next(s.value)}))}t(bt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MEDIA_LOADED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemoteReady():(this.handleRemoteStop(),e.unsubscribe())}),t(bt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_PAUSED_CHANGED),r=>{this.logRemoteEvent(r),r.value?this.handleRemotePause():this.handleRemotePlay()}),t(bt(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<cu&&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:Dt(s)}}),t(bt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.VOLUME_LEVEL_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({volume:r.value})}),t(bt(this.params.connection.remotePlayerController,cast.framework.RemotePlayerEventType.IS_MUTED_CHANGED),r=>{this.logRemoteEvent(r),this.handleRemoteVolumeChange({muted:r.value})});let i=ys(this.params.desiredState.playbackState.stateChangeStarted$,this.params.desiredState.seekState.stateChangeEnded$,this.videoState.stateChangeEnded$,nu(["init"])).pipe(bs(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 l=t[e];ft(l);let c=lu(Object.keys(l));ft(c);let d=l[c];ft(d),i=d,r="video/mp4",a=chrome.cast.media.StreamType.BUFFERED;break}case"HLS":case"HLS_ONDEMAND":{let l=t[e];ft(l),i=l.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 l=t[e];ft(l),i=l.url,r="application/dash+xml",a=chrome.cast.media.StreamType.BUFFERED;break}case"DASH_LIVE_CMAF":{let l=t[e];ft(l),i=l.url,r="application/dash+xml",a=chrome.cast.media.StreamType.LIVE;break}case"HLS_LIVE":case"HLS_LIVE_CMAF":{let l=t[e];ft(l),i=X(l.url),r="application/x-mpegurl",a=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:gs.VIDEO_PIPELINE,message:l,thrown:c}),c}case"DASH":case"DASH_LIVE_WEBM":throw new Error(`${e} is no longer supported`);default:return Dt(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 Ss(o)&&(s.metadata.title=o),Ss(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(uu(Ts).subscribe(()=>a(`timeout(${Ts})`)))});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:gs.VIDEO_PIPELINE,message:a,thrown:r})}).finally(()=>{this.loadMediaTimeoutSubscription.unsubscribe()})}logRemoteEvent(e){this.log({message:`[remoteEvent] ${JSON.stringify(e)}`})}};import{clearVideoElement as Es}from"@vkontakte/videoplayer-shared/evergreen";import{clearVideoElement as hu}from"@vkontakte/videoplayer-shared/evergreen";var Is=n=>{try{n.pause(),n.playbackRate=0,hu(n),n.remove()}catch(e){console.error(e)}};import{fromEvent as mu,Subscription as fu}from"@vkontakte/videoplayer-shared/evergreen";var ra=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)}},aa=window.WeakMap?new WeakMap:new ra,sa=window.WeakMap?new WeakMap:new Map,bu=(n,e=20)=>{let t=0;return mu(n,"ratechange").subscribe(i=>{t++,t>=e&&(n.currentTime=n.currentTime,t=0)})},ne=(n,{audioVideoSyncRate:e})=>{let t=n.querySelector("video"),i=!!t;t?Es(t):(t=document.createElement("video"),n.appendChild(t)),aa.set(t,i);let r=new fu;return r.add(bu(t,e)),sa.set(t,r),t.setAttribute("crossorigin","anonymous"),t.setAttribute("playsinline","playsinline"),t.setAttribute("x-yandex-pip","false"),t.controls=!1,t.setAttribute("poster","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),t},oe=n=>{sa.get(n)?.unsubscribe(),sa.delete(n);let t=aa.get(n);aa.delete(n),t?Es(n):Is(n)};import{assertNonNullable as Yt,isNonNullable as Ce,isNullable as vu,fromEvent as Ct,merge as xs,observableFrom as ks,filterChanged as Ps,map as zt,Subject as As,Subscription as yu,ValueSubject as Tu,ErrorCategory as Iu}from"@vkontakte/videoplayer-shared/evergreen";import{isNonNullable as na,isNullable as gu,Subscription as Su}from"@vkontakte/videoplayer-shared/evergreen";var pr=(n,e,t,{equal:i=(s,o)=>s===o,changed$:r,onError:a}={})=>{let s=n.getState(),o=e(),u=gu(r),l=new Su;return r&&l.add(r.subscribe(c=>{let d=n.getState();i(c,d)&&n.setState(c)},a)),i(o,s)||(t(s),u&&n.setState(s)),l.add(n.stateChangeStarted$.subscribe(c=>{t(c.to),u&&n.setState(c.to)},a)),l},De=(n,e,t)=>pr(e,()=>n.loop,i=>{na(i)&&(n.loop=i)},{onError:t}),ue=(n,e,t,i)=>pr(e,()=>({muted:n.muted,volume:n.volume}),r=>{na(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}),Se=(n,e,t,i)=>pr(e,()=>n.playbackRate,r=>{na(r)&&(n.playbackRate=r)},{changed$:t,onError:i}),Je=pr;var Eu=n=>["__",n.language,n.label].join("|"),xu=(n,e)=>{if(n.id===e)return!0;let[t,i,r]=e.split("|");return n.language===i&&n.label===r},oa=class n{constructor(e){this.available$=new As;this.current$=new Tu(void 0);this.error$=new As;this.subscription=new yu;this.externalTracks=new Map;this.internalTracks=new Map;this.baseURL=e}connect(e,t,i){this.video=e,this.cueSettings=t.textTrackCuesSettings,this.subscribe();let r=a=>{this.error$.next({id:"TextTracksManager",category:Iu.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(Je(t.internalTextTracks,()=>Object.values(this.internalTracks),a=>{Ce(a)&&this.setInternal(a)},{equal:(a,s)=>Ce(a)&&Ce(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(zt(a=>a.filter(({type:s})=>s==="internal"))),onError:r})),this.subscription.add(Je(t.externalTextTracks,()=>Object.values(this.externalTracks),a=>{Ce(a)&&this.setExternal(a)},{equal:(a,s)=>Ce(a)&&Ce(s)&&a.length===s.length&&a.every(({id:o},u)=>o===s[u].id),changed$:this.available$.pipe(zt(a=>a.filter(({type:s})=>s==="external"))),onError:r})),this.subscription.add(Je(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(Je(t.textTrackCuesSettings,()=>({}),()=>{if(this.video)for(let a of this.htmlTextTracksAsArray())this.applyCueSettings(a.cues),this.applyCueSettings(a.activeCues)}))}subscribe(){Yt(this.video);let{textTracks:e}=this.video;this.subscription.add(Ct(e,"addtrack").subscribe(()=>{let i=this.current$.getValue();i&&this.select(i)})),this.subscription.add(xs(Ct(e,"addtrack"),Ct(e,"removetrack"),ks(["init"])).pipe(zt(()=>this.htmlTextTracksAsArray().map(i=>this.htmlTextTrackToITextTrack(i))),Ps((i,r)=>i.length===r.length&&i.every(({id:a},s)=>a===r[s].id))).subscribe(this.available$)),this.subscription.add(xs(Ct(e,"change"),ks(["init"])).pipe(zt(()=>this.htmlTextTracksAsArray().find(({mode:i})=>i==="showing")),zt(i=>i&&this.htmlTextTrackToITextTrack(i).id),Ps()).subscribe(this.current$));let t=i=>this.applyCueSettings(i.target?.activeCues??null);this.subscription.add(Ct(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(Ct(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;Ce(t.align)&&(r.align=t.align),Ce(t.position)&&(r.position=t.position),Ce(t.size)&&(r.size=t.size),Ce(t.line)&&(r.line=t.line)}}htmlTextTracksAsArray(e=!1){Yt(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:Eu(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){Yt(this.video);for(let t of this.htmlTextTracksAsArray(!0))t.mode="showing";for(let t of this.htmlTextTracksAsArray(!0))(vu(e)||!xu(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){Yt(this.video);let t=document.createElement("track");this.baseURL?t.setAttribute("src",new URL(e.url,this.baseURL).toString()):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){Yt(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)}},ve=oa;var He=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 ws=n=>{let e=n;for(;!(e instanceof Document)&&!(e instanceof ShadowRoot)&&e!==null;)e=e?.parentNode;return e??void 0},ua=n=>{let e=ws(n);return!!(e&&e.fullscreenElement&&e.fullscreenElement===n)},$s=n=>{let e=ws(n);return!!(e&&e.pictureInPictureElement&&e.pictureInPictureElement===n)};import{fromEvent as ye,map as Ze,merge as Ms,filterChanged as Pu,isNonNullable as Rs,Subject as Au,filter as Ds,mapTo as Cs,combine as wu,once as $u,ErrorCategory as Lu,ValueSubject as Vs,clientChecker as Mu}from"@vkontakte/videoplayer-shared/evergreen";var ku=3,Ls=(n,e,t=ku)=>{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 le=n=>{let e=x=>ye(n,x).pipe(Cs(void 0)),i=Ms(...["waiting","pause","canplay","play","canplaythrough","playing","seeking","seeked","ended"].map(x=>ye(n,x))).pipe(Ze(x=>x.type==="ended"?n.readyState<2:n.readyState<3),Pu()),r=Ms(ye(n,"progress"),ye(n,"timeupdate")).pipe(Ze(()=>Ls(n.buffered,n.currentTime))),a=Mu.isSafari?wu({play:e("play").pipe($u()),playing:e("playing")}).pipe(Cs(void 0)):e("playing"),s=ye(n,"volumechange").pipe(Ze(()=>({muted:n.muted,volume:n.volume}))),o=ye(n,"ratechange").pipe(Ze(()=>n.playbackRate)),u=ye(n,"error").pipe(Ds(()=>!!(n.error||n.played.length)),Ze(()=>{let x=n.error;return{id:x?`MediaError#${x.code}`:"HtmlVideoError",category:Lu.VIDEO_PIPELINE,message:x?x.message:"Error event from HTML video element",thrown:n.error??void 0}})),l=ye(n,"timeupdate").pipe(Ze(()=>n.currentTime)),c=new Au,d=.3,p;l.subscribe(x=>{n.loop&&Rs(p)&&Rs(x)&&p>=n.duration-d&&x<=d&&c.next(p),p=x});let h=e("pause").pipe(Ds(()=>!n.error&&p!==n.duration)),m=ye(n,"enterpictureinpicture"),f=ye(n,"leavepictureinpicture"),g=new Vs($s(n));m.subscribe(()=>g.next(!0)),f.subscribe(()=>g.next(!1));let v=new Vs(ua(n));return ye(n,"fullscreenchange").pipe(Ze(()=>ua(n))).subscribe(v),{playing$:a,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$:ye(n,"durationchange").pipe(Ze(()=>n.duration)),isBuffering$:i,currentBuffer$:r,volumeState$:s,playbackRateState$:o,inPiP$:g,inFullscreen$:v,enterPip$:m,leavePip$:f}};import{VideoQuality as et}from"@vkontakte/videoplayer-shared/evergreen";var tt=n=>{switch(n){case"mobile":return et.Q_144P;case"lowest":return et.Q_240P;case"low":return et.Q_360P;case"sd":case"medium":return et.Q_480P;case"hd":case"high":return et.Q_720P;case"fullhd":case"full":return et.Q_1080P;case"quadhd":case"quad":return et.Q_1440P;case"ultrahd":case"ultra":return et.Q_2160P}};import{isNonNullable as G,isNullable as da,now as Hs,isHigher as ca,isHigherOrEqual as pa,isInvariantQuality as _s,isLower as Fs,isLowerOrEqual as ha,videoSizeToQuality as Ru,assertNotEmptyArray as Qs,assertNonNullable as Du}from"@vkontakte/videoplayer-shared/evergreen";var la=!1,Qe={},Bs=n=>{la=n},Os=()=>{Qe={}},Ns=n=>{n(Qe)},Kt=(n,e)=>{la&&(Qe.meta=Qe.meta??{},Qe.meta[n]=e)},te=class{constructor(e){this.name=e}next(e){if(!la)return;Qe.series=Qe.series??{};let t=Qe.series[this.name]??[];t.push([Date.now(),e]),Qe.series[this.name]=t}};var Cu=new te("best_bitrate"),js=(n,e,t)=>(e-t)*Math.pow(2,-10*n)+t;var ma=n=>(e,t)=>n*(Number(e.bitrate)-Number(t.bitrate)),Xt=class{constructor(){this.history={}}recordSelection(e){this.history[e.id]=Hs()}recordSwitch(e){this.last=e}clear(){this.last=void 0,this.history={}}},qs='Assertion "ABR Tracks is empty array" failed',hr=(n,e,t,i)=>{let r=[...e].sort(ma(1)),a=[...t].sort(ma(1)),s=a.filter(u=>G(u.bitrate)&&G(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)},Us=n=>"quality"in n,Ws=(n,e,t,i)=>{let r=G(i?.last?.bitrate)&&G(t?.bitrate)&&i.last.bitrate<t.bitrate?n.trackCooldownIncreaseQuality:n.trackCooldownDecreaseQuality,a=t&&i&&i.history[t.id]&&Hs()-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=Us(s)?"video":"audio",u=Us(s)?s.quality:s.bitrate;return e({message:`
7
7
  [last ${o} selected] ${u}
8
8
  `}),s}return i?.recordSwitch(t),t},Vu=(n,e)=>Math.log(e)/Math.log(n),it=(n,{container:e,estimatedThroughput:t,tuning:i,limits:r,reserve:a=0,forwardBufferHealth:s,playbackRate:o,current:u,history:l,visible:c,droppedVideoMaxQualityLimit:d,stallsVideoMaxQualityLimit:p,stallsPredictedThroughput:h,abrLogger:m})=>{Qs(n,qs);let f=i.containerSizeFactor;if(i.usePixelRatio&&window.devicePixelRatio){let b=window.devicePixelRatio;if(i.pixelRatioMultiplier)f*=i.pixelRatioMultiplier*(b-1)+1;else{let E=i.pixelRatioLogBase,[_=0,fe=0,Ie=0]=i.pixelRatioLogCoefficients,k=Vu(E,_*b+fe)+Ie;Number.isFinite(k)&&(f*=k)}}let g=i.limitByContainer&&e&&e.width>0&&e.height>0?{width:e.width*f,height:e.height*f}:void 0,v=i.considerPlaybackRate&&G(o)?o:1,R=n.filter(b=>!_s(b.quality)).sort((b,E)=>ca(b.quality,E.quality)?-1:1),x=R.at(-1)?.quality,w=R.at(0)?.quality,S=da(r)||G(r.min)&&G(r.max)&&Fs(r.max,r.min)||G(r.min)&&w&&ca(r.min,w)||G(r.max)&&x&&Fs(r.max,x),T=v*js(s??.5,i.bitrateFactorAtEmptyBuffer,i.bitrateFactorAtFullBuffer),A={},N=R.filter(b=>{let E=!0;if(g)if(b.size)E=b.size.width<=g.width&&b.size.height<=g.height;else{let U=g&&Ru(g);E=U?ha(b.quality,U):!0}if(!E)return A[b.quality]="FitsContainer",!1;let _=h||t;if(!(G(_)&&isFinite(_)&&G(b.bitrate)?_-a>=b.bitrate*T:!0))return A[b.quality]="FitsThroughput",!1;if(i.lazyQualitySwitch&&G(i.minBufferToSwitchUp)&&u&&!_s(u.quality)&&(s??0)<i.minBufferToSwitchUp&&ca(b.quality,u.quality))return A[b.quality]="Buffer",!1;if(!!d&&pa(b.quality,d))return A[b.quality]="DroppedFramesLimit",!1;if(!!p&&pa(b.quality,p))return A[b.quality]="StallsLimit",!1;let V=S||(da(r.max)||ha(b.quality,r.max))&&(da(r.min)||pa(b.quality,r.min)),P=G(c)&&!c?ha(b.quality,i.backgroundVideoQualityLimit):!0;return!V||!P?(A[b.quality]="FitsQualityLimits",!1):!0})[0];N&&N.bitrate&&Cu.next(N.bitrate);let F=N??R.at(-1)??n[0];return F.quality!==l?.last?.quality&&m({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.124-dev.3f8d0805.0",
3
+ "version": "2.0.124-dev.4a771da1.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.53-dev.0120da43.0",
52
+ "@vkontakte/videoplayer-shared": "1.0.53-dev.c7109e14.0",
53
53
  "hls.js": "~1.4.7"
54
54
  }
55
55
  }